* changed the Mach-O types from packed records in to regular records and

{$packrecords c}

git-svn-id: trunk@29997 -
This commit is contained in:
Jonas Maebe 2015-02-24 20:57:33 +00:00
parent 37a7304a8f
commit 215e2cc5de

View File

@ -19,6 +19,8 @@ unit machotypes;
interface interface
{$packrecords c}
type type
TMachOMachineType = (mmtpowerpc, mmtpowerpc64, mmti386, mmtx86_64, mmtarm, mmtarm64); TMachOMachineType = (mmtpowerpc, mmtpowerpc64, mmti386, mmtx86_64, mmtarm, mmtarm64);
TMachOSubMachineTypePowerPC = (msmppc_all); TMachOSubMachineTypePowerPC = (msmppc_all);
@ -30,7 +32,7 @@ type
TSegSectName = array[0..15] of char; TSegSectName = array[0..15] of char;
type type
TMachHdr = packed record TMachHdr = record
magic : longword; magic : longword;
cputype : longint; cputype : longint;
cpusubtype : longint; cpusubtype : longint;
@ -40,14 +42,14 @@ type
flags : longword; flags : longword;
end; end;
TLoadCommand = packed record TLoadCommand = record
cmd : longword; cmd : longword;
cmdsize : longword; cmdsize : longword;
end; end;
//note: all commands don't include first two longwords //note: all commands don't include first two longwords
TSegmentCommand32 = packed record TSegmentCommand32 = record
name : TSegSectName; name : TSegSectName;
vmaddr : longword; vmaddr : longword;
vmsize : longword; vmsize : longword;
@ -59,7 +61,7 @@ type
flags : longword; flags : longword;
end; end;
TSegmentCommand64 = packed record TSegmentCommand64 = record
name : TSegSectName; name : TSegSectName;
vmaddr : qword; vmaddr : qword;
vmsize : qword; vmsize : qword;
@ -71,7 +73,7 @@ type
flags : longword; flags : longword;
end; end;
TSection32 = packed record TSection32 = record
sectname : TSegSectName; sectname : TSegSectName;
segname : TSegSectName; segname : TSegSectName;
addr : longword; addr : longword;
@ -85,7 +87,7 @@ type
reserved2 : longword; reserved2 : longword;
end; end;
TSection64 = packed record TSection64 = record
sectname : TSegSectName; sectname : TSegSectName;
segname : TSegSectName; segname : TSegSectName;
addr : qword; addr : qword;
@ -100,14 +102,14 @@ type
reserved3 : longword; reserved3 : longword;
end; end;
TSymtabCommand = packed record TSymtabCommand = record
symoff : longword; symoff : longword;
nsyms : longword; nsyms : longword;
stroff : longword; stroff : longword;
strsize : longword; strsize : longword;
end; end;
TDySymtabCommand = packed record TDySymtabCommand = record
ilocalsym : longword; ilocalsym : longword;
nlocalsym : longword; nlocalsym : longword;
iextdefsym : longword; iextdefsym : longword;
@ -128,7 +130,7 @@ type
nlocrel : longword; nlocrel : longword;
end; end;
TNList32 = packed record TNList32 = record
strx : longword; strx : longword;
_type : byte; _type : byte;
sect : byte; sect : byte;
@ -137,7 +139,7 @@ type
end; end;
PNList32 = ^TNList32; PNList32 = ^TNList32;
TNList64 = packed record TNList64 = record
strx : longword; strx : longword;
_type : byte; _type : byte;
sect : byte; sect : byte;
@ -146,7 +148,7 @@ type
end; end;
PNList64 = ^TNList64; PNList64 = ^TNList64;
TRelocationInfo = packed record TRelocationInfo = record
address : longword; address : longword;
flags : longword; flags : longword;
end; end;