type tmeminfo = record available_memory : Longint; available_pages : Longint; available_lockable_pages : Longint; linear_space : Longint; unlocked_pages : Longint; available_physical_pages : Longint; total_physical_pages : Longint; free_linear_space : Longint; max_pages_in_paging_file : Longint; reserved : array[0..2] of Longint; end;Holds information about the memory allocation, etc.
Record entry | Description |
available_memory | Largest available free block in bytes. |
available_pages | Maximum unlocked page allocation in pages |
available_lockable_pages | Maximum locked page allocation in pages. |
linear_space | Linear address space size in pages. |
unlocked_pages | Total number of unlocked pages. |
available_physical_pages | Total number of free pages. |
total_physical_pages | Total number of physical pages. |
free_linear_space | Free linear address space in pages. |
max_pages_in_paging_file | Size of paging file/partition in pages. |
NOTE: The value of a field is -1 (0ffffffffh) if the value is unknown, it's only guaranteed, that available_memory contains a valid value.
The size of the pages can be determined by the get_page_size() function.
type trealregs = record case Integer of 1: { 32-bit } (EDI, ESI, EBP, Res, EBX, EDX, ECX, EAX: Longint; Flags, ES, DS, FS, GS, IP, CS, SP, SS: Word); 2: { 16-bit } (DI, DI2, SI, SI2, BP, BP2, R1, R2: Word; BX, BX2, DX, DX2, CX, CX2, AX, AX2: Word); 3: { 8-bit } (stuff: array[1..4] of Longint; BL, BH, BL2, BH2, DL, DH, DL2, DH2, CL, CH, CL2, CH2, AL, AH, AL2, AH2: Byte); 4: { Compat } (RealEDI, RealESI, RealEBP, RealRES, RealEBX, RealEDX, RealECX, RealEAX: Longint; RealFlags, RealES, RealDS, RealFS, RealGS, RealIP, RealCS, RealSP, RealSS: Word); end; registers = trealregs;These two types contain the data structure to pass register values to a interrupt handler or real mode callback.
type tseginfo = record offset : Pointer; segment : Word; end;
This record is used to store a full 48-bit pointer. This may be either a protected mode selector:offset address or in real mode a segment:offset address, depending on application.
See also: Selectors and descriptors, DOS memory access, Interrupt redirection