779 ((TotalPages + 31) / 32) *
sizeof(
ULONG));
820 DPRINT1(
"Impossible to allocate pages for the system handle!\n");
BOOLEAN UmaDescReserve(IN OUT PUSHORT Segment, IN OUT PUSHORT Size)
static ULONG EmsTotalPages
static RTL_BITMAP AllocBitmap
NTSYSAPI void WINAPI RtlInitializeBitMap(PRTL_BITMAP, PULONG, ULONG)
#define DOS_DEVATTR_IOCTL
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define EMS_PHYSICAL_PAGES
IN PVOID IN PVOID IN USHORT IN USHORT Size
static PEMS_PAGE EmsPageTable
static UCHAR InitSystemHandle(USHORT NumPages)
struct _EMS_PAGE * PEMS_PAGE
#define EMS_INTERRUPT_NUM
static VOID FASTCALL EmsReadMemory(ULONG Address, PVOID Buffer, ULONG Size)
static BOOLEAN FASTCALL EmsWriteMemory(ULONG Address, PVOID Buffer, ULONG Size)
#define EMS_STATUS_SUCCESS
ULONG RegisterInt32(IN ULONG FarPtr, IN BYTE IntNumber, IN EMULATOR_INT32_PROC IntHandler, OUT PSIZE_T CodeSize OPTIONAL)
#define Int16To32StubSize
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
static WORD NTAPI EmsDrvDispatchIoctlRead(PDOS_DEVICE_NODE Device, DWORD Buffer, PWORD Length)
#define DEVICE_PRIVATE_AREA(Driver)
PDOS_DEVICE_NODE DosCreateDeviceEx(WORD Attributes, PCHAR DeviceName, WORD PrivateDataSize)
BOOL MemInstallFastMemoryHook(PVOID Address, ULONG Size, PMEMORY_READ_HANDLER ReadHandler, PMEMORY_WRITE_HANDLER WriteHandler)
BOOLEAN UmaDescRelease(IN USHORT Segment)
static PULONG EmsBitmapBuffer
#define TO_LINEAR(seg, off)
#define DOS_DEVATTR_CHARACTER
static VOID WINAPI EmsIntHandler(LPWORD Stack)
static VOID InitHandlesTable(VOID)
struct _EMS_PAGE EMS_PAGE