mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 05:08:06 +02:00
+ exe386 merged into Exe
This commit is contained in:
parent
01ce604b22
commit
80d468b4fe
251
rtl/os2/exe.pas
251
rtl/os2/exe.pas
@ -1,31 +1,242 @@
|
||||
unit exe;
|
||||
unit Exe;
|
||||
|
||||
interface
|
||||
|
||||
type
|
||||
exe = record
|
||||
eid : WORD;
|
||||
elast : WORD;
|
||||
epagsiz : WORD;
|
||||
erelcnt : WORD;
|
||||
ehdrsiz : WORD;
|
||||
eminfre : WORD;
|
||||
emaxfre : WORD;
|
||||
eiSS : WORD;
|
||||
eiSP : WORD;
|
||||
enegsum : WORD;
|
||||
eiIP : WORD;
|
||||
eiCS : WORD;
|
||||
ereloff : WORD;
|
||||
eovlnum : WORD;
|
||||
ever : WORD;
|
||||
dumy : WORD;
|
||||
ebb : WORD;
|
||||
dumy2 : array[0..7-1] of WORD;
|
||||
eid : word;
|
||||
elast : word;
|
||||
epagsiz : word;
|
||||
erelcnt : word;
|
||||
ehdrsiz : word;
|
||||
eminfre : word;
|
||||
emaxfre : word;
|
||||
eiSS : word;
|
||||
eiSP : word;
|
||||
enegsum : word;
|
||||
eiIP : word;
|
||||
eiCS : word;
|
||||
ereloff : word;
|
||||
eovlnum : word;
|
||||
ever : word;
|
||||
dumy : word;
|
||||
ebb : word;
|
||||
dumy2 : array[0..6] of word;
|
||||
end;
|
||||
|
||||
const
|
||||
EXEID = $5a4d;
|
||||
EXEID = $5A4D;
|
||||
|
||||
{ Declarations specific for LX-type executables follow }
|
||||
const
|
||||
BITPERword = 16;
|
||||
BITPERBYTE = 8;
|
||||
OBJPAGELEN = 4096;
|
||||
E32MAGIC = $584C;
|
||||
E32RESBYTES1 = 0;
|
||||
E32RESBYTES2 = 0;
|
||||
E32RESBYTES3 = 24;
|
||||
E32LEBO = $00;
|
||||
E32BEBO = $01;
|
||||
E32LEWO = $00;
|
||||
E32BEWO = $01;
|
||||
E32LEVEL = 0;
|
||||
E32CPU286 = $001;
|
||||
E32CPU386 = $002;
|
||||
E32CPU486 = $003;
|
||||
|
||||
type
|
||||
e32_exe = record
|
||||
e32_magic : array[0..1] of byte;
|
||||
e32_border : byte;
|
||||
e32_worder : byte;
|
||||
e32_level : longint;
|
||||
e32_cpu : word;
|
||||
e32_os : word;
|
||||
e32_ver : longint;
|
||||
e32_mflags : longint;
|
||||
e32_mpages : longint;
|
||||
e32_startobj : longint;
|
||||
e32_eip : longint;
|
||||
e32_stackobj : longint;
|
||||
e32_esp : longint;
|
||||
e32_pagesize : longint;
|
||||
e32_pageshift : longint;
|
||||
e32_fixupsize : longint;
|
||||
e32_fixupsum : longint;
|
||||
e32_ldrsize : longint;
|
||||
e32_ldrsum : longint;
|
||||
e32_objtab : longint;
|
||||
e32_objcnt : longint;
|
||||
e32_objmap : longint;
|
||||
e32_itermap : longint;
|
||||
e32_rsrctab : longint;
|
||||
e32_rsrccnt : longint;
|
||||
e32_restab : longint;
|
||||
e32_enttab : longint;
|
||||
e32_dirtab : longint;
|
||||
e32_dircnt : longint;
|
||||
e32_fpagetab : longint;
|
||||
e32_frectab : longint;
|
||||
e32_impmod : longint;
|
||||
e32_impmodcnt : longint;
|
||||
e32_impproc : longint;
|
||||
e32_pagesum : longint;
|
||||
e32_datapage : longint;
|
||||
e32_preload : longint;
|
||||
e32_nrestab : longint;
|
||||
e32_cbnrestab : longint;
|
||||
e32_nressum : longint;
|
||||
e32_autodata : longint;
|
||||
e32_debuginfo : longint;
|
||||
e32_debuglen : longint;
|
||||
e32_instpreload : longint;
|
||||
e32_instdemand : longint;
|
||||
e32_heapsize : longint;
|
||||
e32_res3 : array[0..E32RESBYTES3-1] of byte;
|
||||
end;
|
||||
|
||||
const
|
||||
E32NOTP = $8000;
|
||||
E32NOLOAD = $2000;
|
||||
E32PMAPI = $0300;
|
||||
E32PMW = $0200;
|
||||
E32NOPMW = $0100;
|
||||
E32NOEXTFIX = $0020;
|
||||
E32NOINTFIX = $0010;
|
||||
E32LIBINIT = $0004;
|
||||
E32LIBTERM = $40000000;
|
||||
E32APPMASK = $0700;
|
||||
E32PROTDLL = $10000;
|
||||
E32DEVICE = $20000;
|
||||
E32MODEXE = $00000;
|
||||
E32MODDLL = $08000;
|
||||
E32MODPROTDLL = $18000;
|
||||
E32MODPDEV = $20000;
|
||||
E32MODVDEV = $28000;
|
||||
E32MODMASK = $38000;
|
||||
RINTSIZE16 = 8;
|
||||
RINTSIZE32 = 10;
|
||||
RORDSIZE = 8;
|
||||
RNAMSIZE16 = 8;
|
||||
RNAMSIZE32 = 10;
|
||||
RADDSIZE16 = 10;
|
||||
RADDSIZE32 = 12;
|
||||
NRSTYP = $0f;
|
||||
NRSBYT = $00;
|
||||
NRSSEG = $02;
|
||||
NRSPTR = $03;
|
||||
NRSOFF = $05;
|
||||
NRPTR48 = $06;
|
||||
NROFF32 = $07;
|
||||
NRSOFF32 = $08;
|
||||
NRSRCMASK = $0f;
|
||||
NRALIAS = $10;
|
||||
NRCHAIN = $20;
|
||||
NRRTYP = $03;
|
||||
NRRINT = $00;
|
||||
NRRORD = $01;
|
||||
NRRNAM = $02;
|
||||
NRADD = $04;
|
||||
NRRENT = $03;
|
||||
NR32BITOFF = $10;
|
||||
NR32BITADD = $20;
|
||||
NR16OBJMOD = $40;
|
||||
NR8BITORD = $80;
|
||||
PAGEPERDIR = 62;
|
||||
LG2DIR = 7;
|
||||
|
||||
type
|
||||
OBJPAGEDIR = record
|
||||
next : longint;
|
||||
ht : array[0..PAGEPERDIR-1] of word;
|
||||
end;
|
||||
|
||||
e32_obj = record
|
||||
o32_size : longint;
|
||||
o32_base : longint;
|
||||
o32_flags : longint;
|
||||
o32_pagemap : longint;
|
||||
o32_mapsize : longint;
|
||||
o32_reserved : longint;
|
||||
end;
|
||||
|
||||
const
|
||||
OBJREAD = $0001;
|
||||
OBJWRITE = $0002;
|
||||
OBJRSRC = $0008;
|
||||
OBJINVALID = $0080;
|
||||
LNKNONPERM = $0600;
|
||||
OBJNONPERM = $0000;
|
||||
OBJPERM = $0100;
|
||||
OBJRESIDENT = $0200;
|
||||
OBJCONTIG = $0300;
|
||||
OBJDYNAMIC = $0400;
|
||||
OBJTYPEMASK = $0700;
|
||||
OBJALIAS16 = $1000;
|
||||
OBJBIGDEF = $2000;
|
||||
OBJIOPL = $8000;
|
||||
NSDISCARD = $0010;
|
||||
NSMOVE = NSDISCARD;
|
||||
NSSHARED = $0020;
|
||||
NSPRELOAD = $0040;
|
||||
NSEXRD = $0004;
|
||||
NSCONFORM = $4000;
|
||||
|
||||
type
|
||||
o32_map = record
|
||||
o32_pagedataoffset : longint;
|
||||
o32_pagesize : word;
|
||||
o32_pageflags : word;
|
||||
end;
|
||||
|
||||
const
|
||||
VALID = $0000;
|
||||
ITERDATA = $0001;
|
||||
INVALID = $0002;
|
||||
ZEROED = $0003;
|
||||
RANGE = $0004;
|
||||
ITERDATA2 = $0005;
|
||||
|
||||
type
|
||||
rsrc32 = record
|
||||
_type : word;
|
||||
name : word;
|
||||
cb : longint;
|
||||
obj : word;
|
||||
offset : longint;
|
||||
end;
|
||||
|
||||
{$PACKRECORDS 1}
|
||||
|
||||
LX_Iter = record
|
||||
LX_nIter : word;
|
||||
LX_nBytes : word;
|
||||
LX_Iterdata : byte;
|
||||
end;
|
||||
|
||||
b32_bundle = record
|
||||
b32_cnt : byte;
|
||||
b32_type : byte;
|
||||
b32_obj : word;
|
||||
end;
|
||||
|
||||
{$PACKRECORDS NORMAL}
|
||||
const
|
||||
FIXENT16 = 3;
|
||||
FIXENT32 = 5;
|
||||
GATEENT16 = 5;
|
||||
FWDENT = 7;
|
||||
EMPTY = $00;
|
||||
ENTRY16 = $01;
|
||||
GATE16 = $02;
|
||||
ENTRY32 = $03;
|
||||
ENTRYFWD = $04;
|
||||
TYPEINFO = $80;
|
||||
E32EXPORT = $01;
|
||||
E32SHARED = $02;
|
||||
E32PARAMS = $f8;
|
||||
FWD_ORDINAL = $01;
|
||||
|
||||
implementation
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user