#ifndef __INCLUDE_DDK_KETYPES_H
#define __INCLUDE_DDK_KETYPES_H
-#define MB_FLAGS_MEM_INFO (0x1)
-#define MB_FLAGS_BOOT_DEVICE (0x2)
-#define MB_FLAGS_COMMAND_LINE (0x4)
-#define MB_FLAGS_MODULE_INFO (0x8)
-#define MB_FLAGS_AOUT_SYMS (0x10)
-#define MB_FLAGS_ELF_SYMS (0x20)
-#define MB_FLAGS_MMAP_INFO (0x40)
-#define MB_FLAGS_DRIVES_INFO (0x80)
-#define MB_FLAGS_CONFIG_TABLE (0x100)
-#define MB_FLAGS_BOOT_LOADER_NAME (0x200)
-#define MB_FLAGS_APM_TABLE (0x400)
-#define MB_FLAGS_GRAPHICS_TABLE (0x800)
-
-typedef struct _LOADER_MODULE
-{
- ULONG ModStart;
- ULONG ModEnd;
- ULONG String;
- ULONG Reserved;
-} LOADER_MODULE, *PLOADER_MODULE;
-
-typedef struct _ADDRESS_RANGE
-{
- ULONG BaseAddrLow;
- ULONG BaseAddrHigh;
- ULONG LengthLow;
- ULONG LengthHigh;
- ULONG Type;
-} ADDRESS_RANGE, *PADDRESS_RANGE;
-
-typedef struct _LOADER_PARAMETER_BLOCK
-{
- ULONG Flags;
- ULONG MemLower;
- ULONG MemHigher;
- ULONG BootDevice;
- ULONG CommandLine;
- ULONG ModsCount;
- ULONG ModsAddr;
- UCHAR Syms[12];
- ULONG MmapLength;
- ULONG MmapAddr;
- ULONG DrivesCount;
- ULONG DrivesAddr;
- ULONG ConfigTable;
- ULONG BootLoaderName;
-} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
-
-#ifdef __NTOSKRNL__
-extern CHAR EXPORTED KeNumberProcessors;
-extern LOADER_PARAMETER_BLOCK EXPORTED KeLoaderBlock;
-extern ULONG EXPORTED KeDcacheFlushCount;
-extern ULONG EXPORTED KeIcacheFlushCount;
-#else
-extern CHAR IMPORTED KeNumberProcessors;
-extern LOADER_PARAMETER_BLOCK IMPORTED KeLoaderBlock;
-extern ULONG EXPORTED KeDcacheFlushCount;
-extern ULONG EXPORTED KeIcacheFlushCount;
-#endif
-
-
+/* include ntos/ketypes.h here? */
struct _KMUTANT;
typedef LONG KPRIORITY;
+typedef LONG FLONG;
+
typedef VOID STDCALL_FUNC
(*PKBUGCHECK_CALLBACK_ROUTINE)(PVOID Buffer, ULONG Length);
{
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
- ULONG RunningThreads;
- ULONG MaximumThreads;
+ ULONG CurrentCount;
+ ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE;
LONG Period;
} KTIMER, *PKTIMER;
-struct _KSPIN_LOCK;
-
-typedef struct _KSPIN_LOCK
-{
- ULONG Lock;
-} KSPIN_LOCK, *PKSPIN_LOCK;
+typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
typedef struct _KDEVICE_QUEUE
{
- CSHORT Type;
- CSHORT Size;
- LIST_ENTRY ListHead;
- KSPIN_LOCK Lock;
- BOOLEAN Busy;
+ CSHORT Type;
+ CSHORT Size;
+ LIST_ENTRY DeviceListHead;
+ KSPIN_LOCK Lock;
+ BOOLEAN Busy;
} KDEVICE_QUEUE, *PKDEVICE_QUEUE;
typedef struct _KDEVICE_QUEUE_ENTRY
{
- LIST_ENTRY Entry;
- ULONG Key;
+ LIST_ENTRY DeviceListEntry;
+ ULONG SortKey;
BOOLEAN Inserted;
} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY;
(*PKSERVICE_ROUTINE)(struct _KINTERRUPT* Interrupt,
PVOID ServiceContext);
-typedef struct _KINTERRUPT
-{
- ULONG Vector;
- KAFFINITY ProcessorEnableMask;
- PKSPIN_LOCK IrqLock;
- BOOLEAN Shareable;
- BOOLEAN FloatingSave;
- PKSERVICE_ROUTINE ServiceRoutine;
- PVOID ServiceContext;
- LIST_ENTRY Entry;
- KIRQL SynchLevel;
-} KINTERRUPT, *PKINTERRUPT;
-
typedef struct _KSYSTEM_TIME
{
ULONG LowPart;
typedef struct _EPROCESS EPROCESS, *PEPROCESS;
+typedef HANDLE HSEMAPHORE;
+
+typedef HANDLE HDRVOBJ;
+
+typedef LONG FLOAT_LONG, *PFLOAT_LONG;
+
+typedef LONG FLOATL;
+
+typedef LONG FIX; /* fixed-point number */
+
+/* copied from W32API */
+typedef struct _KFLOATING_SAVE
+{
+ ULONG ControlWord;
+ ULONG StatusWord;
+ ULONG ErrorOffset;
+ ULONG ErrorSelector;
+ ULONG DataOffset;
+ ULONG DataSelector;
+ ULONG Cr0NpxState;
+ ULONG Spare1;
+} KFLOATING_SAVE, *PKFLOATING_SAVE;
+
#endif /* __INCLUDE_DDK_KETYPES_H */