- Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h - Remove FASTCALL define from windef.h and add it to winddk.h - Move EXCEPTION_ defines to crt/except.h - Remove public GUIDs from sysguid.h and move from NDK to public umpnpmgr lib headers (since no other component but it + kernel uses them) - Make include/ndk an include path. The NDK is now used like the DDK, so including ndk/foo.h should be replaced by include foo.h just like for PSDK or DDK. - Don't include misc.h in usermode. - Protect some stuff in helper.h against multiple definitions. - Sync with NDK 1.00 Beta 1 to prepare for public NDK release. Modified: trunk/reactos/ReactOS.xml Modified: trunk/reactos/hal/halx86/mp/mps.S Added: trunk/reactos/include/libs/umpnpmgr/ Added: trunk/reactos/include/libs/umpnpmgr/sysguid.h Modified: trunk/reactos/include/ndk/arch/ketypes.h Modified: trunk/reactos/include/ndk/arch/mmtypes.h Modified: trunk/reactos/include/ndk/asm.h Modified: trunk/reactos/include/ndk/cctypes.h Modified: trunk/reactos/include/ndk/cmtypes.h Modified: trunk/reactos/include/ndk/dbgktypes.h Modified: trunk/reactos/include/ndk/exfuncs.h Modified: trunk/reactos/include/ndk/extypes.h Modified: trunk/reactos/include/ndk/fixmes.txt Modified: trunk/reactos/include/ndk/halfuncs.h Modified: trunk/reactos/include/ndk/haltypes.h Deleted: trunk/reactos/include/ndk/i386/floatsave.h Modified: trunk/reactos/include/ndk/i386/ketypes.h Modified: trunk/reactos/include/ndk/i386/mmtypes.h Deleted: trunk/reactos/include/ndk/i386/segment.h Modified: trunk/reactos/include/ndk/ifssupp.h Modified: trunk/reactos/include/ndk/inbvfuncs.h Modified: trunk/reactos/include/ndk/iofuncs.h Modified: trunk/reactos/include/ndk/iotypes.h Modified: trunk/reactos/include/ndk/kdfuncs.h Modified: trunk/reactos/include/ndk/kdtypes.h Modified: trunk/reactos/include/ndk/kefuncs.h Modified: trunk/reactos/include/ndk/ketypes.h Modified: trunk/reactos/include/ndk/ldrfuncs.h Modified: trunk/reactos/include/ndk/ldrtypes.h Modified: trunk/reactos/include/ndk/lpctypes.h Modified: trunk/reactos/include/ndk/mmfuncs.h Modified: trunk/reactos/include/ndk/mmtypes.h Modified: trunk/reactos/include/ndk/ntndk.h Modified: trunk/reactos/include/ndk/obfuncs.h Modified: trunk/reactos/include/ndk/obtypes.h Modified: trunk/reactos/include/ndk/potypes.h Modified: trunk/reactos/include/ndk/psfuncs.h Modified: trunk/reactos/include/ndk/pstypes.h Added: trunk/reactos/include/ndk/readme.txt Modified: trunk/reactos/include/ndk/rtlfuncs.h Modified: trunk/reactos/include/ndk/rtltypes.h Modified: trunk/reactos/include/ndk/sefuncs.h Modified: trunk/reactos/include/ndk/setypes.h Deleted: trunk/reactos/include/ndk/sysguid.h Modified: trunk/reactos/include/ndk/umfuncs.h Modified: trunk/reactos/include/ndk/umtypes.h Modified: trunk/reactos/include/ndk/zwfuncs.h Modified: trunk/reactos/include/reactos/helper.h Modified: trunk/reactos/include/win32k/misc.h Modified: trunk/reactos/lib/rtl/atom.c Modified: trunk/reactos/ntoskrnl/include/ntoskrnl.h Modified: trunk/reactos/ntoskrnl/ke/i386/irqhand.s Modified: trunk/reactos/services/umpnpmgr/umpnpmgr.c Modified: trunk/reactos/w32api/include/crt/excpt.h Modified: trunk/reactos/w32api/include/ddk/winddk.h Modified: trunk/reactos/w32api/include/winbase.h Modified: trunk/reactos/w32api/include/windef.h Modified: trunk/reactos/w32api/include/winnt.h _____
Modified: trunk/reactos/ReactOS.xml --- trunk/reactos/ReactOS.xml 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/ReactOS.xml 2005-11-22 04:57:45 UTC (rev 19450) @@ -35,6 +35,7 @@
<include>include/libs</include> <include>include/drivers</include> <include>include/subsys</include> + <include>include/ndk</include> <include>w32api/include</include> <include>w32api/include/crt</include> <include>w32api/include/ddk</include> _____
Modified: trunk/reactos/hal/halx86/mp/mps.S --- trunk/reactos/hal/halx86/mp/mps.S 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/hal/halx86/mp/mps.S 2005-11-22 04:57:45 UTC (rev 19450) @@ -11,7 +11,7 @@
/* INCLUDES ******************************************************************/
-#include <ndk/i386/segment.h> +#include <ndk/asm.h>
/* FUNCTIONS *****************************************************************/
_____
Copied: trunk/reactos/include/libs/umpnpmgr/sysguid.h (from rev 19381, trunk/reactos/include/ndk/sysguid.h) --- trunk/reactos/include/ndk/sysguid.h 2005-11-20 17:52:53 UTC (rev 19381) +++ trunk/reactos/include/libs/umpnpmgr/sysguid.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -0,0 +1,48 @@
+/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS UserMode PnP + * FILE: ntoskrnl/rtl/libsupp.c + * PURPOSE: GUIDs shared between umpnpmgr and the Kernel PnP Manager + * PROGRAMMERS: Eric Kohl + */ + +#ifndef _SYSGUID_H +#define _SYSGUID_H + +DEFINE_GUID(GUID_DEVICE_STANDBY_VETOED, + 0x03B21C13, 0x18D6, 0x11D3, 0x97, 0xDB, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_KERNEL_INITIATED_EJECT, + 0x14689B54, 0x0703, 0x11D3, 0x97, 0xD2, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_REMOVAL_VETOED, + 0x60DBD5FA, 0xDDD2, 0x11D2, 0x97, 0xB8, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_HIBERNATE_VETOED, + 0x61173AD9, 0x194F, 0x11D3, 0x97, 0xDC, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_SAFE_REMOVAL, + 0x8FBEF967, 0xD6C5, 0x11D2, 0x97, 0xB5, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); + +DEFINE_GUID(GUID_DEVICE_ARRIVAL, + 0xCB3A4009, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_ENUMERATED, + 0xCB3A400A, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_ENUMERATE_REQUEST, + 0xCB3A400B, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_START_REQUEST, + 0xCB3A400C, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_REMOVE_PENDING, + 0xCB3A400D, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_QUERY_AND_REMOVE, + 0xCB3A400E, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_EJECT, + 0xCB3A400F, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_NOOP, + 0xCB3A4010, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05, 0x3F); +DEFINE_GUID(GUID_DEVICE_WARM_EJECT_VETOED, + 0xCBF4C1F9, 0x18D5, 0x11D3, 0x97, 0xDB, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_SURPRISE_REMOVAL, + 0xCE5AF000, 0x80DD, 0x11D2, 0xA8, 0x8D, 0x00, 0xA0, 0xC9, 0x69, 0x6B, 0x4B); +DEFINE_GUID(GUID_DEVICE_EJECT_VETOED, + 0xCF7B71E8, 0xD8FD, 0x11D2, 0x97, 0xB5, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E); +DEFINE_GUID(GUID_DEVICE_EVENT_RBC, + 0xD0744792, 0xA98E, 0x11D2, 0x91, 0x7A, 0x00, 0xA0, 0xC9, 0x06, 0x8F, 0xF3); + +#endif _____
Modified: trunk/reactos/include/ndk/arch/ketypes.h --- trunk/reactos/include/ndk/arch/ketypes.h 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/include/ndk/arch/ketypes.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -1,15 +1,27 @@
-/* - * PROJECT: ReactOS Native Headers - * FILE: include/ndk/arch/ketypes.h - * PURPOSE: Architecture-specific definitions for Kernel Types - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - * UPDATE HISTORY: - * Created 06/10/04 - */ +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + ketypes.h (ARCH) + +Abstract: + + Portability file to choose the correct Architecture-specific file. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + #ifndef _ARCH_KETYPES_H #define _ARCH_KETYPES_H
-/* Shared structures needed by Arch-specific headers */ +// +// FIXME: Find a solution to take these out of here! +// typedef struct _KDPC_DATA { LIST_ENTRY DpcListHead; @@ -24,8 +36,11 @@ struct _GENERAL_LOOKASIDE *L; } PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
+// +// Include the right file for this architecture. +// #ifdef _M_IX86 -#include <ndk/i386/ketypes.h> +#include <i386/ketypes.h> #else #error "Unknown processor" #endif _____
Modified: trunk/reactos/include/ndk/arch/mmtypes.h --- trunk/reactos/include/ndk/arch/mmtypes.h 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/include/ndk/arch/mmtypes.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -1,16 +1,29 @@
-/* - * PROJECT: ReactOS Native Headers - * FILE: include/ndk/arch/mmtypes.h - * PURPOSE: Architecture-specific definitions for Memory Manager Types - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - * UPDATE HISTORY: - * Created 06/10/04 - */ +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + mmtypes.h (ARCH) + +Abstract: + + Portability file to choose the correct Architecture-specific file. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + #ifndef _ARCH_MMTYPES_H #define _ARCH_MMTYPES_H
+// +// Include the right file for this architecture. +// #ifdef _M_IX86 -#include "./../i386/mmtypes.h" +#include <i386/mmtypes.h> #else #error "Unknown processor" #endif _____
Modified: trunk/reactos/include/ndk/asm.h --- trunk/reactos/include/ndk/asm.h 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/include/ndk/asm.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -1,217 +1,259 @@
-/* - * PROJECT: ReactOS Native Headers - * FILE: include/ndk/asm.h - * PURPOSE: Defintions for Structures used in Assembly Code - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - * UPDATE HISTORY: - * Created 07/19/05 - */ +/*++ NDK Version: 0095 + +Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + asm.h + +Abstract: + + ASM Offsets for dealing with de-referencing structures in registers. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + #ifndef _ASM_H #define _ASM_H
-/* DEPENDENCIES **************************************************************/ +// +// FIXME: Use real names. +// +#define KERNEL_CS (0x8) +#define KERNEL_DS (0x10) +#define USER_CS (0x18 + 0x3) +#define USER_DS (0x20 + 0x3) +#define TSS_SELECTOR (0x28) +#define PCR_SELECTOR (0x30) +#define TEB_SELECTOR (0x38 + 0x3) +#define LDT_SELECTOR (0x48) +#define TRAP_TSS_SELECTOR (0x50)
-/* EXPORTED DATA *************************************************************/ +// +// KV86M_REGISTERS Offsets +// +#define KV86M_REGISTERS_EBP 0x0 +#define KV86M_REGISTERS_EDI 0x4 +#define KV86M_REGISTERS_ESI 0x8 +#define KV86M_REGISTERS_EDX 0xC +#define KV86M_REGISTERS_ECX 0x10 +#define KV86M_REGISTERS_EBX 0x14 +#define KV86M_REGISTERS_EAX 0x18 +#define KV86M_REGISTERS_DS 0x1C +#define KV86M_REGISTERS_ES 0x20 +#define KV86M_REGISTERS_FS 0x24 +#define KV86M_REGISTERS_GS 0x28 +#define KV86M_REGISTERS_EIP 0x2C +#define KV86M_REGISTERS_CS 0x30 +#define KV86M_REGISTERS_EFLAGS 0x34 +#define KV86M_REGISTERS_ESP 0x38 +#define KV86M_REGISTERS_SS 0x3C +#define TF_SAVED_EXCEPTION_STACK 0x8C +#define TF_REGS 0x90 +#define TF_ORIG_EBP 0x94
-/* CONSTANTS *****************************************************************/ +// +// TSS Offsets +// +#define KTSS_ESP0 0x4 +#define KTSS_CR3 0x1C +#define KTSS_EFLAGS 0x24 +#define KTSS_IOMAPBASE 0x66
-/* - * Definitions for the offsets of members in the KV86M_REGISTERS - */ -#define KV86M_REGISTERS_EBP 0x0 -#define KV86M_REGISTERS_EDI 0x4 -#define KV86M_REGISTERS_ESI 0x8 -#define KV86M_REGISTERS_EDX 0xC -#define KV86M_REGISTERS_ECX 0x10 -#define KV86M_REGISTERS_EBX 0x14 -#define KV86M_REGISTERS_EAX 0x18 -#define KV86M_REGISTERS_DS 0x1C -#define KV86M_REGISTERS_ES 0x20 -#define KV86M_REGISTERS_FS 0x24 -#define KV86M_REGISTERS_GS 0x28 -#define KV86M_REGISTERS_EIP 0x2C -#define KV86M_REGISTERS_CS 0x30 -#define KV86M_REGISTERS_EFLAGS 0x34 -#define KV86M_REGISTERS_ESP 0x38 -#define KV86M_REGISTERS_SS 0x3C +// +// KTHREAD Offsets +// +#define KTHREAD_DEBUG_ACTIVE 0x03 +#define KTHREAD_INITIAL_STACK 0x18 +#define KTHREAD_STACK_LIMIT 0x1C +#define KTHREAD_TEB 0x74 +#define KTHREAD_KERNEL_STACK 0x20 +#define KTHREAD_NPX_STATE 0x4D +#define KTHREAD_STATE 0x4C +#define KTHREAD_ALERTED 0x5E +#define KTHREAD_APCSTATE_PROCESS 0x28 + 0x10 +#define KTHREAD_PENDING_USER_APC 0x28 + 0x16 +#define KTHREAD_PENDING_KERNEL_APC 0x28 + 0x15 +#define KTHREAD_CONTEXT_SWITCHES 0x48 +#define KTHREAD_WAIT_IRQL 0x4E +#define KTHREAD_SERVICE_TABLE 0x118 +#define KTHREAD_PREVIOUS_MODE 0xD7 +#define KTHREAD_TRAP_FRAME 0x110 +#define KTHREAD_CALLBACK_STACK 0x114
-#define TF_SAVED_EXCEPTION_STACK 0x8C -#define TF_REGS 0x90 -#define TF_ORIG_EBP 0x94 +// +// KPROCESS Offsets +// +#define KPROCESS_DIRECTORY_TABLE_BASE 0x18 +#define KPROCESS_LDT_DESCRIPTOR0 0x20 +#define KPROCESS_LDT_DESCRIPTOR1 0x24 +#define KPROCESS_IOPM_OFFSET 0x30
-/* TSS Offsets */ -#define KTSS_ESP0 0x4 -#define KTSS_CR3 0x1C -#define KTSS_EFLAGS 0x24 -#define KTSS_IOMAPBASE 0x66 +// +// KPCR Offsets +// +#define KPCR_EXCEPTION_LIST 0x0 +#define KPCR_INITIAL_STACK 0x4 +#define KPCR_STACK_LIMIT 0x8 +#define KPCR_TEB 0x18 +#define KPCR_SELF 0x1C +#define KPCR_GDT 0x3C +#define KPCR_TSS 0x40 +#define KPCR_CURRENT_THREAD 0x124 +#define KPCR_NPX_THREAD 0x2F4
-/* - * Defines for accessing KPCR and KTHREAD structure members - */ -#define KTHREAD_DEBUG_ACTIVE 0x03 -#define KTHREAD_INITIAL_STACK 0x18 -#define KTHREAD_STACK_LIMIT 0x1C -#define KTHREAD_TEB 0x74 -#define KTHREAD_KERNEL_STACK 0x20 -#define KTHREAD_NPX_STATE 0x4D -#define KTHREAD_STATE 0x4C -#define KTHREAD_ALERTED 0x5E -#define KTHREAD_APCSTATE_PROCESS 0x28 + 0x10 -#define KTHREAD_PENDING_USER_APC 0x28 + 0x16 -#define KTHREAD_PENDING_KERNEL_APC 0x28 + 0x15 -#define KTHREAD_CONTEXT_SWITCHES 0x48 -#define KTHREAD_WAIT_IRQL 0x4E -#define KTHREAD_SERVICE_TABLE 0x118 -#define KTHREAD_PREVIOUS_MODE 0xD7 -#define KTHREAD_TRAP_FRAME 0x110 -#define KTHREAD_CALLBACK_STACK 0x114 +// +// FPU Save Area Offsets +// +#define FN_CONTROL_WORD 0x0 +#define FN_STATUS_WORD 0x4 +#define FN_TAG_WORD 0x8 +#define FN_DATA_SELECTOR 0x18 +#define FN_CR0_NPX_STATE 0x20C +#define SIZEOF_FX_SAVE_AREA 528
-#define KPROCESS_DIRECTORY_TABLE_BASE 0x18 -#define KPROCESS_LDT_DESCRIPTOR0 0x20 -#define KPROCESS_LDT_DESCRIPTOR1 0x24 -#define KPROCESS_IOPM_OFFSET 0x30 +// +// Trap Frame Offsets +// +#define KTRAP_FRAME_DEBUGEBP 0x0 +#define KTRAP_FRAME_DEBUGEIP 0x4 +#define KTRAP_FRAME_DEBUGARGMARK 0x8 +#define KTRAP_FRAME_DEBUGPOINTER 0xC +#define KTRAP_FRAME_TEMPCS 0x10 +#define KTRAP_FRAME_TEMPESP 0x14 +#define KTRAP_FRAME_DR0 0x18 +#define KTRAP_FRAME_DR1 0x1C +#define KTRAP_FRAME_DR2 0x20 +#define KTRAP_FRAME_DR3 0x24 +#define KTRAP_FRAME_DR6 0x28 +#define KTRAP_FRAME_DR7 0x2C +#define KTRAP_FRAME_GS 0x30 +#define KTRAP_FRAME_RESERVED1 0x32 +#define KTRAP_FRAME_ES 0x34 +#define KTRAP_FRAME_RESERVED2 0x36 +#define KTRAP_FRAME_DS 0x38 +#define KTRAP_FRAME_RESERVED3 0x3A +#define KTRAP_FRAME_EDX 0x3C +#define KTRAP_FRAME_ECX 0x40 +#define KTRAP_FRAME_EAX 0x44 +#define KTRAP_FRAME_PREVIOUS_MODE 0x48 +#define KTRAP_FRAME_EXCEPTION_LIST 0x4C +#define KTRAP_FRAME_FS 0x50 +#define KTRAP_FRAME_RESERVED4 0x52 +#define KTRAP_FRAME_EDI 0x54 +#define KTRAP_FRAME_ESI 0x58 +#define KTRAP_FRAME_EBX 0x5C +#define KTRAP_FRAME_EBP 0x60 +#define KTRAP_FRAME_ERROR_CODE 0x64 +#define KTRAP_FRAME_EIP 0x68 +#define KTRAP_FRAME_CS 0x6C +#define KTRAP_FRAME_EFLAGS 0x70 +#define KTRAP_FRAME_ESP 0x74 +#define KTRAP_FRAME_SS 0x78 +#define KTRAP_FRAME_RESERVED5 0x7A +#define KTRAP_FRAME_V86_ES 0x7C +#define KTRAP_FRAME_RESERVED6 0x7E +#define KTRAP_FRAME_V86_DS 0x80 +#define KTRAP_FRAME_RESERVED7 0x82 +#define KTRAP_FRAME_V86_FS 0x84 +#define KTRAP_FRAME_RESERVED8 0x86 +#define KTRAP_FRAME_V86_GS 0x88 +#define KTRAP_FRAME_RESERVED9 0x8A +#define KTRAP_FRAME_SIZE 0x8C
-#define KPCR_EXCEPTION_LIST 0x0 -#define KPCR_INITIAL_STACK 0x4 -#define KPCR_STACK_LIMIT 0x8 -#define KPCR_TEB 0x18 -#define KPCR_SELF 0x1C -#define KPCR_GDT 0x3C -#define KPCR_TSS 0x40 -#define KPCR_CURRENT_THREAD 0x124 -#define KPCR_NPX_THREAD 0x2F4 +// +// KUSER_SHARED_DATA Offsets +// +#define KERNEL_USER_SHARED_DATA 0x7FFE0000 +#define KUSER_SHARED_PROCESSOR_FEATURES KERNEL_USER_SHARED_DATA + 0x274 +#define KUSER_SHARED_SYSCALL KERNEL_USER_SHARED_DATA + 0x300 +#define KUSER_SHARED_SYSCALL_RET KERNEL_USER_SHARED_DATA + 0x304 +#define PROCESSOR_FEATURE_FXSR KUSER_SHARED_PROCESSOR_FEATURES + 0x4
-/* FPU Save Area Offsets */ -#define FN_CONTROL_WORD 0x0 -#define FN_STATUS_WORD 0x4 -#define FN_TAG_WORD 0x8 -#define FN_DATA_SELECTOR 0x18 -#define FN_CR0_NPX_STATE 0x20C -#define SIZEOF_FX_SAVE_AREA 528
-/* Trap Frame Offsets */ -#define KTRAP_FRAME_DEBUGEBP 0x0 -#define KTRAP_FRAME_DEBUGEIP 0x4 -#define KTRAP_FRAME_DEBUGARGMARK 0x8 -#define KTRAP_FRAME_DEBUGPOINTER 0xC -#define KTRAP_FRAME_TEMPCS 0x10 -#define KTRAP_FRAME_TEMPESP 0x14 -#define KTRAP_FRAME_DR0 0x18 -#define KTRAP_FRAME_DR1 0x1C -#define KTRAP_FRAME_DR2 0x20 -#define KTRAP_FRAME_DR3 0x24 -#define KTRAP_FRAME_DR6 0x28 -#define KTRAP_FRAME_DR7 0x2C -#define KTRAP_FRAME_GS 0x30 -#define KTRAP_FRAME_RESERVED1 0x32 -#define KTRAP_FRAME_ES 0x34 -#define KTRAP_FRAME_RESERVED2 0x36 -#define KTRAP_FRAME_DS 0x38 -#define KTRAP_FRAME_RESERVED3 0x3A -#define KTRAP_FRAME_EDX 0x3C -#define KTRAP_FRAME_ECX 0x40 -#define KTRAP_FRAME_EAX 0x44 -#define KTRAP_FRAME_PREVIOUS_MODE 0x48 -#define KTRAP_FRAME_EXCEPTION_LIST 0x4C -#define KTRAP_FRAME_FS 0x50 -#define KTRAP_FRAME_RESERVED4 0x52 -#define KTRAP_FRAME_EDI 0x54 -#define KTRAP_FRAME_ESI 0x58 -#define KTRAP_FRAME_EBX 0x5C -#define KTRAP_FRAME_EBP 0x60 -#define KTRAP_FRAME_ERROR_CODE 0x64 -#define KTRAP_FRAME_EIP 0x68 -#define KTRAP_FRAME_CS 0x6C -#define KTRAP_FRAME_EFLAGS 0x70 -#define KTRAP_FRAME_ESP 0x74 -#define KTRAP_FRAME_SS 0x78 -#define KTRAP_FRAME_RESERVED5 0x7A -#define KTRAP_FRAME_V86_ES 0x7C -#define KTRAP_FRAME_RESERVED6 0x7E -#define KTRAP_FRAME_V86_DS 0x80 -#define KTRAP_FRAME_RESERVED7 0x82 -#define KTRAP_FRAME_V86_FS 0x84 -#define KTRAP_FRAME_RESERVED8 0x86 -#define KTRAP_FRAME_V86_GS 0x88 -#define KTRAP_FRAME_RESERVED9 0x8A -#define KTRAP_FRAME_SIZE 0x8C +// +// CONTEXT Offsets +// +#define CONTEXT_FLAGS 0x0 +#define CONTEXT_DR6 0x14 +#define CONTEXT_FLOAT_SAVE 0x1C +#define CONTEXT_SEGGS 0x8C +#define CONTEXT_SEGFS 0x90 +#define CONTEXT_SEGES 0x94 +#define CONTEXT_SEGDS 0x98 +#define CONTEXT_EDI 0x9C +#define CONTEXT_ESI 0xA0 +#define CONTEXT_EBX 0xA4 +#define CONTEXT_EDX 0xA8 +#define CONTEXT_ECX 0xAC +#define CONTEXT_EAX 0xB0 +#define CONTEXT_EBP 0xB4 +#define CONTEXT_EIP 0xB8 +#define CONTEXT_SEGCS 0xBC +#define CONTEXT_EFLAGS 0xC0 +#define CONTEXT_ESP 0xC4 +#define CONTEXT_SEGSS 0xC8 +#define CONTEXT_FLOAT_SAVE_CONTROL_WORD CONTEXT_FLOAT_SAVE + FN_CONTROL_WORD +#define CONTEXT_FLOAT_SAVE_STATUS_WORD CONTEXT_FLOAT_SAVE + FN_STATUS_WORD +#define CONTEXT_FLOAT_SAVE_TAG_WORD CONTEXT_FLOAT_SAVE + FN_TAG_WORD
-/* User Shared Data */ -#define KERNEL_USER_SHARED_DATA 0x7FFE0000 -#define KUSER_SHARED_PROCESSOR_FEATURES KERNEL_USER_SHARED_DATA + 0x274 -#define KUSER_SHARED_SYSCALL KERNEL_USER_SHARED_DATA + 0x300 -#define KUSER_SHARED_SYSCALL_RET KERNEL_USER_SHARED_DATA + 0x304 -#define PROCESSOR_FEATURE_FXSR KUSER_SHARED_PROCESSOR_FEATURES + 0x4 +// +// EXCEPTION_RECORD Offsets +// +#define EXCEPTION_RECORD_EXCEPTION_CODE 0x0 +#define EXCEPTION_RECORD_EXCEPTION_FLAGS 0x4 +#define EXCEPTION_RECORD_EXCEPTION_RECORD 0x8 +#define EXCEPTION_RECORD_EXCEPTION_ADDRESS 0xC +#define EXCEPTION_RECORD_NUMBER_PARAMETERS 0x10 +#define SIZEOF_EXCEPTION_RECORD 0x14
-/* CONTEXT CONSTANTS */ -#define CONTEXT_FLAGS 0x0 -#define CONTEXT_DR6 0x14 -#define CONTEXT_FLOAT_SAVE 0x1C -#define CONTEXT_SEGGS 0x8C -#define CONTEXT_SEGFS 0x90 -#define CONTEXT_SEGES 0x94 -#define CONTEXT_SEGDS 0x98 -#define CONTEXT_EDI 0x9C -#define CONTEXT_ESI 0xA0 -#define CONTEXT_EBX 0xA4 -#define CONTEXT_EDX 0xA8 -#define CONTEXT_ECX 0xAC -#define CONTEXT_EAX 0xB0 -#define CONTEXT_EBP 0xB4 -#define CONTEXT_EIP 0xB8 -#define CONTEXT_SEGCS 0xBC -#define CONTEXT_EFLAGS 0xC0 -#define CONTEXT_ESP 0xC4 -#define CONTEXT_SEGSS 0xC8 -#define CONTEXT_FLOAT_SAVE_CONTROL_WORD CONTEXT_FLOAT_SAVE + FN_CONTROL_WORD -#define CONTEXT_FLOAT_SAVE_STATUS_WORD CONTEXT_FLOAT_SAVE + FN_STATUS_WORD -#define CONTEXT_FLOAT_SAVE_TAG_WORD CONTEXT_FLOAT_SAVE + FN_TAG_WORD +// +// TEB Offsets +// +#define TEB_EXCEPTION_LIST 0x0 +#define TEB_STACK_BASE 0x4 +#define TEB_STACK_LIMIT 0x8 +#define TEB_FIBER_DATA 0x10 +#define TEB_PEB 0x30 +#define TEB_EXCEPTION_CODE 0x1A4 +#define TEB_ACTIVATION_CONTEXT_STACK_POINTER 0x1A8 +#define TEB_DEALLOCATION_STACK 0xE0C +#define TEB_GUARANTEED_STACK_BYTES 0xF78 +#define TEB_FLS_DATA 0xFB4
-/* EXCEPTION_RECORD Constants */ -#define EXCEPTION_RECORD_EXCEPTION_CODE 0x0 -#define EXCEPTION_RECORD_EXCEPTION_FLAGS 0x4 -#define EXCEPTION_RECORD_EXCEPTION_RECORD 0x8 -#define EXCEPTION_RECORD_EXCEPTION_ADDRESS 0xC -#define EXCEPTION_RECORD_NUMBER_PARAMETERS 0x10 -#define SIZEOF_EXCEPTION_RECORD 0x14 +// +// PEB Offsets +// +#define PEB_KERNEL_CALLBACK_TABLE 0x2C
-/* TEB CONSTANTS */ -#define TEB_EXCEPTION_LIST 0x0 -#define TEB_STACK_BASE 0x4 -#define TEB_STACK_LIMIT 0x8 -#define TEB_FIBER_DATA 0x10 -#define TEB_PEB 0x30 -#define TEB_EXCEPTION_CODE 0x1A4 -#define TEB_ACTIVATION_CONTEXT_STACK_POINTER 0x1A8 -#define TEB_DEALLOCATION_STACK 0xE0C -#define TEB_GUARANTEED_STACK_BYTES 0xF78 -#define TEB_FLS_DATA 0xFB4 - -/* PEB CONSTANTS */ -#define PEB_KERNEL_CALLBACK_TABLE 0x2C - -/* FIBER CONSTANTS */ -#define FIBER_PARAMETER 0x0 -#define FIBER_EXCEPTION_LIST 0x4 -#define FIBER_STACK_BASE 0x8 -#define FIBER_STACK_LIMIT 0xC -#define FIBER_DEALLOCATION_STACK 0x10 -#define FIBER_CONTEXT 0x14 -#define FIBER_GUARANTEED_STACK_BYTES 0x2E0 -#define FIBER_FLS_DATA 0x2E4 -#define FIBER_ACTIVATION_CONTEXT_STACK 0x2E8 -#define FIBER_CONTEXT_FLAGS FIBER_CONTEXT + CONTEXT_FLAGS -#define FIBER_CONTEXT_EAX FIBER_CONTEXT + CONTEXT_EAX -#define FIBER_CONTEXT_EBX FIBER_CONTEXT + CONTEXT_EBX -#define FIBER_CONTEXT_ECX FIBER_CONTEXT + CONTEXT_ECX -#define FIBER_CONTEXT_EDX FIBER_CONTEXT + CONTEXT_EDX -#define FIBER_CONTEXT_ESI FIBER_CONTEXT + CONTEXT_ESI -#define FIBER_CONTEXT_EDI FIBER_CONTEXT + CONTEXT_EDI -#define FIBER_CONTEXT_EBP FIBER_CONTEXT + CONTEXT_EBP -#define FIBER_CONTEXT_ESP FIBER_CONTEXT + CONTEXT_ESP -#define FIBER_CONTEXT_DR6 FIBER_CONTEXT + CONTEXT_DR6 -#define FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_STATUS_WORD +// +// FIBER Offsets +// +#define FIBER_PARAMETER 0x0 +#define FIBER_EXCEPTION_LIST 0x4 +#define FIBER_STACK_BASE 0x8 +#define FIBER_STACK_LIMIT 0xC +#define FIBER_DEALLOCATION_STACK 0x10 +#define FIBER_CONTEXT 0x14 +#define FIBER_GUARANTEED_STACK_BYTES 0x2E0 +#define FIBER_FLS_DATA 0x2E4 +#define FIBER_ACTIVATION_CONTEXT_STACK 0x2E8 +#define FIBER_CONTEXT_FLAGS FIBER_CONTEXT + CONTEXT_FLAGS +#define FIBER_CONTEXT_EAX FIBER_CONTEXT + CONTEXT_EAX +#define FIBER_CONTEXT_EBX FIBER_CONTEXT + CONTEXT_EBX +#define FIBER_CONTEXT_ECX FIBER_CONTEXT + CONTEXT_ECX +#define FIBER_CONTEXT_EDX FIBER_CONTEXT + CONTEXT_EDX +#define FIBER_CONTEXT_ESI FIBER_CONTEXT + CONTEXT_ESI +#define FIBER_CONTEXT_EDI FIBER_CONTEXT + CONTEXT_EDI +#define FIBER_CONTEXT_EBP FIBER_CONTEXT + CONTEXT_EBP +#define FIBER_CONTEXT_ESP FIBER_CONTEXT + CONTEXT_ESP +#define FIBER_CONTEXT_DR6 FIBER_CONTEXT + CONTEXT_DR6 +#define FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_STATUS_WORD #define FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_CONTROL_WORD #define FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_TAG_WORD -#endif
+#endif // !_ASM_H + _____
Modified: trunk/reactos/include/ndk/cctypes.h --- trunk/reactos/include/ndk/cctypes.h 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/include/ndk/cctypes.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -1,24 +1,33 @@
-/* - * PROJECT: ReactOS Native Headers - * FILE: include/ndk/cctypes.h - * PURPOSE: Definitions for exported Cache Manager Types not defined in DDK/IFS - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - * UPDATE HISTORY: - * Created 06/10/04 - */ +/*++ NDK Version: 0095
+Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + cctypes.h + +Abstract: + + Type definitions for the Cache Controller. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + #ifndef _CCTYPES_H #define _CCTYPES_H
-/* DEPENDENCIES **************************************************************/ +// +// Dependencies +//
-/* EXPORTED DATA *************************************************************/ +// +// Kernel Exported CcData +// extern ULONG NTSYSAPI CcFastReadNotPossible; extern ULONG NTSYSAPI CcFastReadWait;
-/* ENUMERATIONS **************************************************************/ +#endif // _CCTYPES_H
-/* TYPES *********************************************************************/ - -#endif - _____
Modified: trunk/reactos/include/ndk/cmtypes.h --- trunk/reactos/include/ndk/cmtypes.h 2005-11-22 04:54:18 UTC (rev 19449) +++ trunk/reactos/include/ndk/cmtypes.h 2005-11-22 04:57:45 UTC (rev 19450) @@ -1,37 +1,124 @@
-/* - * PROJECT: ReactOS Native Headers - * FILE: include/ndk/cmtypes.h - * PURPOSE: Definitions for Config Manager Types not defined in DDK/IFS - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - * UPDATE HISTORY: - * Created 06/10/04 - */ +/*++ NDK Version: 0095
+Copyright (c) Alex Ionescu. All rights reserved. + +Header Name: + + cmtypes.h + +Abstract: + + Type definitions for the Configuration Manager. + +Author: + + Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004 + +--*/ + #ifndef _CMTYPES_H #define _CMTYPES_H
-/* DEPENDENCIES **************************************************************/ +// +// Dependencies +// #include <cfg.h> #include "iotypes.h"
-/* EXPORTED DATA *************************************************************/ - -/* CONSTANTS *****************************************************************/ #define MAX_BUS_NAME 24
-/* PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relation values */ -#define PNP_GET_PARENT_DEVICE 1 -#define PNP_GET_CHILD_DEVICE 2 -#define PNP_GET_SIBLING_DEVICE 3 +// +// PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations +// +#define PNP_GET_PARENT_DEVICE 1 +#define PNP_GET_CHILD_DEVICE 2 +#define PNP_GET_SIBLING_DEVICE 3
-/* PLUGPLAY_CONTROL_STATUS_DATA.Operation values */ -#define PNP_GET_DEVICE_STATUS 0 -#define PNP_SET_DEVICE_STATUS 1 -#define PNP_CLEAR_DEVICE_STATUS 2 +// +// PLUGPLAY_CONTROL_STATUS_DATA Operations +// +#define PNP_GET_DEVICE_STATUS 0 +#define PNP_SET_DEVICE_STATUS 1 +#define PNP_CLEAR_DEVICE_STATUS 2
-/* ENUMERATIONS **************************************************************/ +// +// Resource Type +// +#define CmResourceTypeNull 0 +#define CmResourceTypePort 1 +#define CmResourceTypeInterrupt 2 +#define CmResourceTypeMemory 3 +#define CmResourceTypeDma 4 +#define CmResourceTypeDeviceSpecific 5 +#define CmResourceTypeBusNumber 6 +#define CmResourceTypeMaximum 7 +#define CmResourceTypeNonArbitrated 128 +#define CmResourceTypeConfigData 128 +#define CmResourceTypeDevicePrivate 129 +#define CmResourceTypePcCardConfig 130 +#define CmResourceTypeMfCardConfig 131
#ifdef NTOS_MODE_USER + +// +// Resource Descriptor Share Dispositions +// +typedef enum _CM_SHARE_DISPOSITION +{ + CmResourceShareUndetermined, + CmResourceShareDeviceExclusive, + CmResourceShareDriverExclusive, + CmResourceShareShared +} CM_SHARE_DISPOSITION; + +#endif + +// +// Port Resource Descriptor Flags +// +#define CM_RESOURCE_PORT_MEMORY 0x0000 +#define CM_RESOURCE_PORT_IO 0x0001 +#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 +#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 +#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 +#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 +#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 +#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 + +// +// Interrupt Resource Descriptor Flags +// +#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000 +#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001 + +// +// Memory Resource Descriptor Flags +// +#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 +#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 +#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 +#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 +#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 +#define CM_RESOURCE_MEMORY_24 0x0010 +#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 + +// +// DMA Resource Descriptor Flags +// +#define CM_RESOURCE_DMA_8 0x0000 +#define CM_RESOURCE_DMA_16 0x0001 +#define CM_RESOURCE_DMA_32 0x0002 +#define CM_RESOURCE_DMA_8_AND_16 0x0004 +#define CM_RESOURCE_DMA_BUS_MASTER 0x0008 +#define CM_RESOURCE_DMA_TYPE_A 0x0010 +#define CM_RESOURCE_DMA_TYPE_B 0x0020 +#define CM_RESOURCE_DMA_TYPE_F 0x0040 + +#ifdef NTOS_MODE_USER + +// +// Information Classes for NtQueryKey +// typedef enum _KEY_INFORMATION_CLASS { KeyBasicInformation, @@ -57,8 +144,12 @@ KeyUserFlagsInformation, MaxKeySetInfoClass } KEY_SET_INFORMATION_CLASS; + #endif
+// +// Plag and Play Classes +// typedef enum _PLUGPLAY_CONTROL_CLASS { PlugPlayControlUserResponse = 0x07, @@ -76,12 +167,18 @@ MaxPlugPlayBusClass } PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;
+// +// Plag and Play Bus Types +// typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE { Root, MaxPlugPlayVirtualBusType } PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;
+// +// Plag and Play Event Categories +// typedef enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent, @@ -95,9 +192,12 @@ BlockedDriverEvent, MaxPlugEventCategory } PLUGPLAY_EVENT_CATEGORY; -/* TYPES *********************************************************************/
#ifdef NTOS_MODE_USER + +// +// Information Structures for NtQueryKeyInformation +// typedef struct _KEY_WRITE_TIME_INFORMATION { LARGE_INTEGER LastWriteTime; @@ -177,6 +277,9 @@
#endif
+// +// Plug and Play Event Block +// typedef struct _PLUGPLAY_EVENT_BLOCK { GUID EventGuid; @@ -226,7 +329,11 @@ }; } PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;
-/* Class 0x0A */ +// +// Plug and Play Control Classes +// + +//Class 0x0A typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA { UNICODE_STRING DeviceInstance; @@ -235,36 +342,39 @@ ULONG BufferSize; } PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;
-/* Class 0x0C */ +// Class 0x0C typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA { UNICODE_STRING TargetDeviceInstance; - ULONG Relation; /* 1: Parent 2: Child 3: Sibling */ + ULONG Relation; UNICODE_STRING RelatedDeviceInstance; } PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;
-/* Class 0x0E */ +// Class 0x0E typedef struct _PLUGPLAY_CONTOL_STATUS_DATA { UNICODE_STRING DeviceInstance; - ULONG Operation; /* 0: Get 1: Set 2: Clear */ - ULONG DeviceStatus; /* DN_ see cfg.h */ - ULONG DeviceProblem; /* CM_PROB_ see cfg.h */ + ULONG Operation; + ULONG DeviceStatus; + ULONG DeviceProblem; } PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;
-/* Class 0x0F */ +// Class 0x0F typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA { UNICODE_STRING DeviceInstance; ULONG Depth; } PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;
-/* Class 0x14 */ +// Class 0x14 typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA { UNICODE_STRING DeviceInstance; } PLUGPLAY_CONTROL_RESET_DEVICE_DATA, *PPLUGPLAY_CONTROL_RESET_DEVICE_DATA;
+// +// Plug and Play Bus Type Definition +// typedef struct _PLUGPLAY_BUS_TYPE { PLUGPLAY_BUS_CLASS BusClass; @@ -275,6 +385,9 @@ }; } PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;
+// +// Plug and Play Bus Instance Definition +// typedef struct _PLUGPLAY_BUS_INSTANCE { PLUGPLAY_BUS_TYPE BusType; @@ -284,149 +397,110 @@
#ifdef NTOS_MODE_USER
+// +// Partial Resource Descriptor and List for Hardware +// #include <pshpack1.h> -typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { - UCHAR Type; - UCHAR ShareDisposition; - USHORT Flags; - union { - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Generic; - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Port; - struct { - ULONG Level; - ULONG Vector; - ULONG Affinity; - } Interrupt; - struct { - PHYSICAL_ADDRESS Start; - ULONG Length; - } Memory; - struct { - ULONG Channel; - ULONG Port; - ULONG Reserved1; [truncated at 1000 lines; 8918 more skipped]