mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 03:32:04 +02:00
* retrieve stack size correctly
git-svn-id: trunk@21928 -
This commit is contained in:
parent
f6f6df2780
commit
0e9139c914
@ -491,11 +491,76 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;assembler;
|
||||
asm
|
||||
movq %gs:(8),%rax
|
||||
subq %gs:(16),%rax
|
||||
end;
|
||||
function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;
|
||||
type
|
||||
tdosheader = packed record
|
||||
e_magic : word;
|
||||
e_cblp : word;
|
||||
e_cp : word;
|
||||
e_crlc : word;
|
||||
e_cparhdr : word;
|
||||
e_minalloc : word;
|
||||
e_maxalloc : word;
|
||||
e_ss : word;
|
||||
e_sp : word;
|
||||
e_csum : word;
|
||||
e_ip : word;
|
||||
e_cs : word;
|
||||
e_lfarlc : word;
|
||||
e_ovno : word;
|
||||
e_res : array[0..3] of word;
|
||||
e_oemid : word;
|
||||
e_oeminfo : word;
|
||||
e_res2 : array[0..9] of word;
|
||||
e_lfanew : longint;
|
||||
end;
|
||||
tpeheader = packed record
|
||||
PEMagic : longint;
|
||||
Machine : word;
|
||||
NumberOfSections : word;
|
||||
TimeDateStamp : longint;
|
||||
PointerToSymbolTable : longint;
|
||||
NumberOfSymbols : longint;
|
||||
SizeOfOptionalHeader : word;
|
||||
Characteristics : word;
|
||||
Magic : word;
|
||||
MajorLinkerVersion : byte;
|
||||
MinorLinkerVersion : byte;
|
||||
SizeOfCode : longint;
|
||||
SizeOfInitializedData : longint;
|
||||
SizeOfUninitializedData : longint;
|
||||
AddressOfEntryPoint : longint;
|
||||
BaseOfCode : longint;
|
||||
{$ifdef win32}
|
||||
BaseOfData : longint;
|
||||
{$endif win32}
|
||||
ImageBase : PtrInt;
|
||||
SectionAlignment : longint;
|
||||
FileAlignment : longint;
|
||||
MajorOperatingSystemVersion : word;
|
||||
MinorOperatingSystemVersion : word;
|
||||
MajorImageVersion : word;
|
||||
MinorImageVersion : word;
|
||||
MajorSubsystemVersion : word;
|
||||
MinorSubsystemVersion : word;
|
||||
Reserved1 : longint;
|
||||
SizeOfImage : longint;
|
||||
SizeOfHeaders : longint;
|
||||
CheckSum : longint;
|
||||
Subsystem : word;
|
||||
DllCharacteristics : word;
|
||||
SizeOfStackReserve : PtrInt;
|
||||
SizeOfStackCommit : PtrInt;
|
||||
SizeOfHeapReserve : PtrInt;
|
||||
SizeOfHeapCommit : PtrInt;
|
||||
LoaderFlags : longint;
|
||||
NumberOfRvaAndSizes : longint;
|
||||
DataDirectory : array[1..$80] of byte;
|
||||
end;
|
||||
begin
|
||||
result:=tpeheader((pointer(getmodulehandle(nil))+(tdosheader(pointer(getmodulehandle(nil))^).e_lfanew))^).SizeOfStackReserve;
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
st : Pointer;
|
||||
|
Loading…
Reference in New Issue
Block a user