mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 09:39:25 +02:00
+ imported the global memory win16 api functions
git-svn-id: trunk@31543 -
This commit is contained in:
parent
f751b18754
commit
1775725c26
rtl/win16
@ -109,6 +109,60 @@ function GetCurrentTask: HTASK; external 'KERNEL';
|
||||
procedure Yield; external 'KERNEL';
|
||||
procedure DirectedYield(Task: HTASK); external 'KERNEL';
|
||||
|
||||
{ Global memory management }
|
||||
|
||||
function GlobalDiscard(h: HGLOBAL): HGLOBAL; inline;
|
||||
|
||||
function GlobalAlloc(Flags: UINT; Bytes: DWORD): HGLOBAL; external 'KERNEL';
|
||||
function GlobalReAlloc(Mem: HGLOBAL; Bytes: DWORD; Flags: UINT): HGLOBAL; external 'KERNEL';
|
||||
function GlobalFree(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
|
||||
|
||||
function GlobalDosAlloc(Bytes: DWORD): DWORD; external 'KERNEL';
|
||||
function GlobalDosFree(Selector: UINT): UINT; external 'KERNEL';
|
||||
|
||||
function GlobalLock(Mem: HGLOBAL): FarPointer; external 'KERNEL';
|
||||
function GlobalUnlock(Mem: HGLOBAL): BOOL; external 'KERNEL';
|
||||
|
||||
function GlobalSize(Mem: HGLOBAL): DWORD; external 'KERNEL';
|
||||
function GlobalHandle(Mem: UINT): DWORD; external 'KERNEL';
|
||||
|
||||
function GlobalFlags(Mem: HGLOBAL): UINT; external 'KERNEL';
|
||||
|
||||
function GlobalWire(Mem: HGLOBAL): FarPointer; external 'KERNEL';
|
||||
function GlobalUnWire(Mem: HGLOBAL): BOOL; external 'KERNEL';
|
||||
|
||||
function GlobalPageLock(Selector: HGLOBAL): UINT; external 'KERNEL';
|
||||
function GlobalPageUnlock(Selector: HGLOBAL): UINT; external 'KERNEL';
|
||||
|
||||
procedure GlobalFix(Mem: HGLOBAL); external 'KERNEL';
|
||||
procedure GlobalUnfix(Mem: HGLOBAL); external 'KERNEL';
|
||||
|
||||
function GlobalLRUNewest(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
|
||||
function GlobalLRUOldest(Mem: HGLOBAL): HGLOBAL; external 'KERNEL';
|
||||
|
||||
function GlobalCompact(MinFree: DWORD): DWORD; external 'KERNEL';
|
||||
|
||||
procedure GlobalNotify(NotifyProc: GNOTIFYPROC); external 'KERNEL';
|
||||
|
||||
function LockSegment(Segment: UINT): HGLOBAL; external 'KERNEL';
|
||||
procedure UnlockSegment(Segment: UINT); external 'KERNEL';
|
||||
|
||||
function LockData(dummy: SmallInt): HGLOBAL; inline;
|
||||
procedure UnlockData(dummy: SmallInt); inline;
|
||||
|
||||
function AllocSelector(Selector: UINT): UINT; external 'KERNEL';
|
||||
function FreeSelector(Selector: UINT): UINT; external 'KERNEL';
|
||||
function AllocDStoCSAlias(Selector: UINT): UINT; external 'KERNEL';
|
||||
function PrestoChangoSelector(sourceSel, destSel: UINT): UINT; external 'KERNEL';
|
||||
function GetSelectorBase(Selector: UINT): DWORD; external 'KERNEL';
|
||||
function SetSelectorBase(Selector: UINT; Base: DWORD): UINT; external 'KERNEL';
|
||||
function GetSelectorLimit(Selector: UINT): DWORD; external 'KERNEL';
|
||||
function SetSelectorLimit(Selector: UINT; Base: DWORD): UINT; external 'KERNEL';
|
||||
|
||||
procedure LimitEmsPages(Kbytes: DWORD); external 'KERNEL';
|
||||
|
||||
procedure ValidateFreeSpaces; external 'KERNEL';
|
||||
|
||||
implementation
|
||||
|
||||
function LOBYTE(w: Word): Byte;
|
||||
@ -161,4 +215,19 @@ begin
|
||||
OFFSETOF:=LOWORD(LongInt(lp));
|
||||
end;
|
||||
|
||||
function GlobalDiscard(h: HGLOBAL): HGLOBAL;
|
||||
begin
|
||||
GlobalDiscard := GlobalReAlloc(h, 0, GMEM_MOVEABLE);
|
||||
end;
|
||||
|
||||
function LockData(dummy: SmallInt): HGLOBAL;
|
||||
begin
|
||||
LockData := LockSegment(UINT(-1));
|
||||
end;
|
||||
|
||||
procedure UnlockData(dummy: SmallInt);
|
||||
begin
|
||||
UnlockSegment(UINT(-1));
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -116,6 +116,34 @@ type
|
||||
|
||||
HTASK = THandle;
|
||||
|
||||
const
|
||||
{ Global Memory Flags }
|
||||
GMEM_FIXED = $0000;
|
||||
GMEM_MOVEABLE = $0002;
|
||||
GMEM_NOCOMPACT = $0010;
|
||||
GMEM_NODISCARD = $0020;
|
||||
GMEM_ZEROINIT = $0040;
|
||||
GMEM_MODIFY = $0080;
|
||||
GMEM_DISCARDABLE = $0100;
|
||||
GMEM_NOT_BANKED = $1000;
|
||||
GMEM_SHARE = $2000;
|
||||
GMEM_DDESHARE = $2000;
|
||||
GMEM_NOTIFY = $4000;
|
||||
GMEM_LOWER = GMEM_NOT_BANKED;
|
||||
|
||||
GHND = GMEM_MOVEABLE or GMEM_ZEROINIT;
|
||||
GPTR = GMEM_FIXED or GMEM_ZEROINIT;
|
||||
|
||||
{ GlobalFlags return flags (in addition to GMEM_DISCARDABLE) }
|
||||
GMEM_DISCARDED = $4000;
|
||||
GMEM_LOCKCOUNT = $00FF;
|
||||
|
||||
{ Low system memory notification message }
|
||||
WM_COMPACTING = $0041;
|
||||
|
||||
type
|
||||
GNOTIFYPROC = function(hGlbl: HGLOBAL): BOOL; far;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user