diff --git a/reactos/include/ntos/cdrom.h b/reactos/include/ntos/cdrom.h index a1a964f7de6..1e58aa4712e 100644 --- a/reactos/include/ntos/cdrom.h +++ b/reactos/include/ntos/cdrom.h @@ -1,44 +1,44 @@ -/* $Id: cdrom.h,v 1.4 2002/11/14 18:21:03 chorns Exp $ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS kernel - * FILE: include/ntos/cdrom.h - * PURPOSE: CD-ROM related definitions used by all the parts of the system - * PROGRAMMER: Eric Kohl - * UPDATE HISTORY: - * 10/04/2002: Created - */ - -#ifndef __INCLUDE_NTOS_CDROM_H -#define __INCLUDE_NTOS_CDROM_H - -#define IOCTL_CDROM_READ_TOC CTL_CODE(FILE_DEVICE_CD_ROM, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(FILE_DEVICE_CD_ROM, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(FILE_DEVICE_CD_ROM, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS) - -#define MAXIMUM_NUMBER_TRACKS 100 -#define MAXIMUM_CDROM_SIZE 804 - -typedef struct _TRACK_DATA { - UCHAR Reserved; - UCHAR Control : 4; - UCHAR Adr : 4; - UCHAR TrackNumber; - UCHAR Reserved1; - UCHAR Address[4]; -} TRACK_DATA, *PTRACK_DATA; - -typedef struct _CDROM_TOC { - UCHAR Length[2]; - UCHAR FirstTrack; - UCHAR LastTrack; - TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS]; -} CDROM_TOC, *PCDROM_TOC; - -#define CDROM_TOC_SIZE sizeof(CDROM_TOC) - - - -#endif /* __INCLUDE_NTOS_CDROM_H */ - -/* EOF */ +/* $Id: cdrom.h,v 1.5 2002/11/16 00:08:45 ekohl Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: include/ntos/cdrom.h + * PURPOSE: CD-ROM related definitions used by all the parts of the system + * PROGRAMMER: Eric Kohl + * UPDATE HISTORY: + * 10/04/2002: Created + */ + +#ifndef __INCLUDE_NTOS_CDROM_H +#define __INCLUDE_NTOS_CDROM_H + +#define IOCTL_CDROM_READ_TOC CTL_CODE(FILE_DEVICE_CD_ROM, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) +#define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(FILE_DEVICE_CD_ROM, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS) +#define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(FILE_DEVICE_CD_ROM, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS) + +#define MAXIMUM_NUMBER_TRACKS 100 +#define MAXIMUM_CDROM_SIZE 804 + +typedef struct _TRACK_DATA +{ + UCHAR Reserved; + UCHAR Control : 4; + UCHAR Adr : 4; + UCHAR TrackNumber; + UCHAR Reserved1; + UCHAR Address[4]; +} TRACK_DATA, *PTRACK_DATA; + +typedef struct _CDROM_TOC +{ + UCHAR Length[2]; + UCHAR FirstTrack; + UCHAR LastTrack; + TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS]; +} CDROM_TOC, *PCDROM_TOC; + +#define CDROM_TOC_SIZE sizeof(CDROM_TOC) + +#endif /* __INCLUDE_NTOS_CDROM_H */ + +/* EOF */ diff --git a/reactos/include/ntos/kdbgsyms.h b/reactos/include/ntos/kdbgsyms.h index 47c0f606914..79cf90267b1 100644 --- a/reactos/include/ntos/kdbgsyms.h +++ b/reactos/include/ntos/kdbgsyms.h @@ -1,46 +1,45 @@ - -#ifndef __KDBGSYMS_H -#define __KDBGSYMS_H - + +#ifndef __KDBGSYMS_H +#define __KDBGSYMS_H + #include - -#define ST_FILENAME 0x00 -#define ST_FUNCTION 0x01 -#define ST_LINENUMBER 0x02 - -typedef struct _SYMBOL -{ - struct _SYMBOL *Next; - /* Address relative to module base address */ - ULONG RelativeAddress; - ULONG SymbolType; - ANSI_STRING Name; - ULONG LineNumber; -} SYMBOL, *PSYMBOL; - -typedef struct _SYMBOL_TABLE -{ - ULONG SymbolCount; - PSYMBOL Symbols; -} SYMBOL_TABLE, *PSYMBOL_TABLE; - -typedef struct _IMAGE_SYMBOL_INFO -{ - SYMBOL_TABLE FileNameSymbols; - SYMBOL_TABLE FunctionSymbols; - SYMBOL_TABLE LineNumberSymbols; - ULONG_PTR ImageBase; - ULONG_PTR ImageSize; - PVOID FileBuffer; - PVOID SymbolsBase; - ULONG SymbolsLength; - PVOID SymbolStringsBase; - ULONG SymbolStringsLength; -} IMAGE_SYMBOL_INFO, *PIMAGE_SYMBOL_INFO; - -#define AreSymbolsParsed(si)((si)->FileNameSymbols.Symbols \ - || (si)->FunctionSymbols.Symbols \ - || (si)->LineNumberSymbols.Symbols) - -#endif - + +#define ST_FILENAME 0x00 +#define ST_FUNCTION 0x01 +#define ST_LINENUMBER 0x02 + +typedef struct _SYMBOL +{ + struct _SYMBOL *Next; + /* Address relative to module base address */ + ULONG RelativeAddress; + ULONG SymbolType; + ANSI_STRING Name; + ULONG LineNumber; +} SYMBOL, *PSYMBOL; + +typedef struct _SYMBOL_TABLE +{ + ULONG SymbolCount; + PSYMBOL Symbols; +} SYMBOL_TABLE, *PSYMBOL_TABLE; + +typedef struct _IMAGE_SYMBOL_INFO +{ + SYMBOL_TABLE FileNameSymbols; + SYMBOL_TABLE FunctionSymbols; + SYMBOL_TABLE LineNumberSymbols; + ULONG_PTR ImageBase; + ULONG_PTR ImageSize; + PVOID FileBuffer; + PVOID SymbolsBase; + ULONG SymbolsLength; + PVOID SymbolStringsBase; + ULONG SymbolStringsLength; +} IMAGE_SYMBOL_INFO, *PIMAGE_SYMBOL_INFO; + +#define AreSymbolsParsed(si)((si)->FileNameSymbols.Symbols \ + || (si)->FunctionSymbols.Symbols \ + || (si)->LineNumberSymbols.Symbols) + +#endif diff --git a/reactos/include/ntos/keyboard.h b/reactos/include/ntos/keyboard.h index c6361a26bcc..5dcdfb0a4aa 100644 --- a/reactos/include/ntos/keyboard.h +++ b/reactos/include/ntos/keyboard.h @@ -83,52 +83,60 @@ #define FOCUS_EVENT (16) -typedef struct _KEY_EVENT_RECORD { - BOOL bKeyDown; - WORD wRepeatCount; - WORD wVirtualKeyCode; - WORD wVirtualScanCode; - union { - WCHAR UnicodeChar; - CHAR AsciiChar; - } uChar; +typedef struct _KEY_EVENT_RECORD +{ + BOOL bKeyDown; + WORD wRepeatCount; + WORD wVirtualKeyCode; + WORD wVirtualScanCode; + union + { + WCHAR UnicodeChar; + CHAR AsciiChar; + } uChar; DWORD dwControlKeyState; } KEY_EVENT_RECORD PACKED; -typedef struct _MOUSE_EVENT_RECORD { - COORD dwMousePosition; - DWORD dwButtonState; - DWORD dwControlKeyState; - DWORD dwEventFlags; -} MOUSE_EVENT_RECORD; +typedef struct _MOUSE_EVENT_RECORD +{ + COORD dwMousePosition; + DWORD dwButtonState; + DWORD dwControlKeyState; + DWORD dwEventFlags; +} MOUSE_EVENT_RECORD; -typedef struct _WINDOW_BUFFER_SIZE_RECORD { - COORD dwSize; -} WINDOW_BUFFER_SIZE_RECORD; +typedef struct _WINDOW_BUFFER_SIZE_RECORD +{ + COORD dwSize; +} WINDOW_BUFFER_SIZE_RECORD; -typedef struct _MENU_EVENT_RECORD { +typedef struct _MENU_EVENT_RECORD +{ UINT dwCommandId; -} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; +} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; -typedef struct _FOCUS_EVENT_RECORD { - BOOL bSetFocus; -} FOCUS_EVENT_RECORD; +typedef struct _FOCUS_EVENT_RECORD +{ + BOOL bSetFocus; +} FOCUS_EVENT_RECORD; -typedef struct _INPUT_RECORD { - WORD EventType; - union { +typedef struct _INPUT_RECORD +{ + WORD EventType; + union + { #ifndef __cplus_plus /* this will be the wrong size in c++ */ - KEY_EVENT_RECORD KeyEvent; + KEY_EVENT_RECORD KeyEvent; #endif - MOUSE_EVENT_RECORD MouseEvent; - WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; - MENU_EVENT_RECORD MenuEvent; - FOCUS_EVENT_RECORD FocusEvent; - } Event; -} INPUT_RECORD, *PINPUT_RECORD; + MOUSE_EVENT_RECORD MouseEvent; + WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; + MENU_EVENT_RECORD MenuEvent; + FOCUS_EVENT_RECORD FocusEvent; + } Event; +} INPUT_RECORD, *PINPUT_RECORD; - /* Virtual Key codes */ +/* Virtual Key codes */ #define VK_LBUTTON (1) #define VK_RBUTTON (2) #define VK_CANCEL (3) diff --git a/reactos/include/ntos/minmax.h b/reactos/include/ntos/minmax.h index 3dc7fec0a3e..1ee3dd5ca48 100644 --- a/reactos/include/ntos/minmax.h +++ b/reactos/include/ntos/minmax.h @@ -1,7 +1,7 @@ -#ifndef max -#define max(a, b) (((a) > (b)) ? (a) : (b)) -#endif - -#ifndef min -#define min(a, b) (((a) < (b)) ? (a) : (b)) -#endif +#ifndef max +#define max(a, b) (((a) > (b)) ? (a) : (b)) +#endif + +#ifndef min +#define min(a, b) (((a) < (b)) ? (a) : (b)) +#endif diff --git a/reactos/include/ntos/rtl.h b/reactos/include/ntos/rtl.h index 685382ae2aa..efa65920ba4 100755 --- a/reactos/include/ntos/rtl.h +++ b/reactos/include/ntos/rtl.h @@ -1,4 +1,4 @@ -/* $Id: rtl.h,v 1.3 2002/11/15 21:56:37 chorns Exp $ +/* $Id: rtl.h,v 1.4 2002/11/16 00:08:45 ekohl Exp $ * */ @@ -176,21 +176,18 @@ } \ } */ -static -inline -PSINGLE_LIST_ENTRY - PopEntryList( - PSINGLE_LIST_ENTRY ListHead - ) +static inline PSINGLE_LIST_ENTRY +PopEntryList(PSINGLE_LIST_ENTRY ListHead) { - PSINGLE_LIST_ENTRY ListEntry; + PSINGLE_LIST_ENTRY ListEntry; - ListEntry = ListHead->Next; - if (ListEntry!=NULL) - { - ListHead->Next = ListEntry->Next; - } - return ListEntry; + ListEntry = ListHead->Next; + if (ListEntry!=NULL) + { + ListHead->Next = ListEntry->Next; + } + + return(ListEntry); } #define RtlCopyMemory(Destination,Source,Length) \ @@ -484,69 +481,67 @@ extern BOOLEAN NLS_MB_OEM_CODE_PAGE_TAG; #define RtlMax3(X,Y,Z) (((X) > (Y)) ? RtlMax(X,Z) : RtlMax(Y,Z)) -/* -VOID -InitializeUnicodeString ( - PUNICODE_STRING DestinationString, - USHORT Lenght, - USHORT MaximumLength, - PCWSTR Buffer - ); - - Initialize an UNICODE_STRING from its fields. Use when you know the values of - all the fields in advance - - */ - -#define InitializeUnicodeString(__PDEST_STRING__,__LENGTH__,__MAXLENGTH__,__BUFFER__) \ -{ \ - (__PDEST_STRING__)->Length = (__LENGTH__); \ - (__PDEST_STRING__)->MaximumLength = (__MAXLENGTH__); \ - (__PDEST_STRING__)->Buffer = (__BUFFER__); \ -} - -/* -VOID -RtlInitUnicodeStringFromLiteral ( - PUNICODE_STRING DestinationString, - PCWSTR SourceString - ); - - Initialize an UNICODE_STRING from a wide string literal. WARNING: use only with - string literals and statically initialized arrays, it will calculate the wrong - length otherwise - - */ - -#define RtlInitUnicodeStringFromLiteral(__PDEST_STRING__,__SOURCE_STRING__) \ - InitializeUnicodeString( \ - (__PDEST_STRING__), \ - sizeof(__SOURCE_STRING__) - sizeof(WCHAR), \ - sizeof(__SOURCE_STRING__), \ - (__SOURCE_STRING__) \ - ) - -/* - Static initializer for UNICODE_STRING variables. Usage: - - UNICODE_STRING wstr = UNICODE_STRING_INITIALIZER(L"string"); - -*/ - -#define UNICODE_STRING_INITIALIZER(__SOURCE_STRING__) \ -{ \ - sizeof((__SOURCE_STRING__)) - sizeof(WCHAR), \ - sizeof((__SOURCE_STRING__)), \ - (__SOURCE_STRING__) \ -} - -/* - Initializer for empty UNICODE_STRING variables. Usage: - - UNICODE_STRING wstr = EMPTY_UNICODE_STRING; - -*/ -#define EMPTY_UNICODE_STRING {0, 0, NULL} +/* + * VOID + * InitializeUnicodeString(PUNICODE_STRING DestinationString, + * USHORT Lenght, + * USHORT MaximumLength, + * PCWSTR Buffer); + * + * Initialize n UNICODE_STRING from its fields. Use when you know the values of + * all the fields in advance + */ + +#define InitializeUnicodeString(__PDEST_STRING__,__LENGTH__,__MAXLENGTH__,__BUFFER__) \ +{ \ + (__PDEST_STRING__)->Length = (__LENGTH__); \ + (__PDEST_STRING__)->MaximumLength = (__MAXLENGTH__); \ + (__PDEST_STRING__)->Buffer = (__BUFFER__); \ +} + + +/* + * VOID + * RtlInitUnicodeStringFromLiteral(PUNICODE_STRING DestinationString, + * PCWSTR SourceString); + * + * Initialize a UNICODE_STRING from a wide string literal. WARNING: use only with + * string literals and statically initialized arrays, it will calculate the wrong + * length otherwise + */ + +#define RtlInitUnicodeStringFromLiteral(__PDEST_STRING__,__SOURCE_STRING__) \ + InitializeUnicodeString( \ + (__PDEST_STRING__), \ + sizeof(__SOURCE_STRING__) - sizeof(WCHAR), \ + sizeof(__SOURCE_STRING__), \ + (__SOURCE_STRING__) \ +) + + +/* + * Static initializer for UNICODE_STRING variables. + * + * Usage: + * UNICODE_STRING wstr = UNICODE_STRING_INITIALIZER(L"string"); + */ + +#define UNICODE_STRING_INITIALIZER(__SOURCE_STRING__) \ +{ \ + sizeof((__SOURCE_STRING__)) - sizeof(WCHAR), \ + sizeof((__SOURCE_STRING__)), \ + (__SOURCE_STRING__) \ +} + + +/* + * Initializer for empty UNICODE_STRING variables. + * + * Usage: + * UNICODE_STRING wstr = EMPTY_UNICODE_STRING; + */ + +#define EMPTY_UNICODE_STRING {0, 0, NULL} /* @@ -562,8 +557,10 @@ PushEntryList ( (ListHead)->Next = (Entry) */ + #ifndef __USE_W32API + /* * An ReactOS extension */ diff --git a/reactos/include/ntos/types.h b/reactos/include/ntos/types.h index af36a27b445..f1667db46ef 100644 --- a/reactos/include/ntos/types.h +++ b/reactos/include/ntos/types.h @@ -1,423 +1,430 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS kernel - * FILE: include/types.h - * PURPOSE: Types used by all the parts of the system - * PROGRAMMER: David Welch - * DEFINES: _WIN64: 64-bit architecture - * _WIN32: 32-bit architecture (default) - * UPDATE HISTORY: - * 27/06/00: Created - * 01/05/01: Portabillity changes - */ - -#ifndef __INCLUDE_TYPES_H -#define __INCLUDE_TYPES_H - -#include - -/* Fixed precision types */ -typedef signed char INT8, *PINT8; -typedef signed short INT16, *PINT16; - -typedef unsigned short UINT8, *PUINT8; -typedef unsigned short UINT16, *PUINT16; - - -/* Check VOID before defining CHAR, SHORT */ -#ifndef VOID -#define VOID void -typedef char CHAR; -typedef short SHORT; -#endif - - -#ifndef __USE_W32API - -#ifdef i386 -#define STDCALL __attribute__ ((stdcall)) -#define CDECL __attribute__ ((cdecl)) -#define CALLBACK WINAPI -#define PASCAL WINAPI -#else -#define STDCALL -#define CDECL -#define CALLBACK -#define PASCAL -#endif - -#ifdef _WIN64 - -/* 64-bit architecture */ - -typedef INT64 INT, *PINT; -typedef LONG64 LONG, *PLONG; -typedef DWORD64 DWORD, *PDWORD; -typedef UINT64 UINT, *PUINT; -typedef ULONG64 ULONG, *PULONG; - -#else /* _WIN64 */ - -/* 32-bit architecture */ - -typedef INT32 INT, *PINT; -typedef LONG32 LONG, *PLONG; -typedef DWORD32 DWORD, *PDWORD; -typedef UINT32 UINT, *PUINT; -typedef ULONG32 ULONG, *PULONG; - -#endif /* _WIN64 */ - -typedef unsigned char UCHAR; -typedef unsigned short USHORT; -typedef unsigned short WCHAR; -typedef unsigned short WORD; -typedef int BOOL; -typedef unsigned char BOOLEAN; -typedef BOOLEAN* PBOOLEAN; -typedef unsigned short *LPWSTR; -typedef unsigned short *PWSTR; -typedef unsigned char *PUCHAR; -typedef unsigned short *PUSHORT; -typedef void *PVOID; -typedef unsigned char BYTE; -typedef void *LPVOID; -typedef float *PFLOAT; -typedef unsigned short *PWCH; -typedef unsigned short *PWORD; -typedef long long LONGLONG; -typedef unsigned long long ULONGLONG; -typedef long long *PLONGLONG; -typedef unsigned long long *PULONGLONG; -typedef const void *LPCVOID; -typedef BYTE *LPBYTE, *PBYTE; -typedef BOOL *PBOOL; -typedef DWORD LCID; -typedef DWORD *PLCID; -typedef const char *LPCSTR; -typedef char *LPSTR; -typedef const unsigned short *LPCWSTR; -typedef CHAR *PCHAR; -typedef CHAR *PCH; -typedef void *HANDLE; -typedef HANDLE *PHANDLE; -typedef char CCHAR; -typedef CCHAR *PCCHAR; -typedef unsigned short *PWCHAR; -typedef ULONG WAIT_TYPE; -typedef USHORT CSHORT; -typedef const unsigned short *PCWSTR; -typedef char* PCSZ; - -typedef DWORD STDCALL (*PTHREAD_START_ROUTINE) (LPVOID); - -typedef union _LARGE_INTEGER -{ - struct - { - DWORD LowPart; - LONG HighPart; - } u; -#ifdef ANONYMOUSUNIONS - struct - { - DWORD LowPart; - LONG HighPart; - }; -#endif /* ANONYMOUSUNIONS */ - LONGLONG QuadPart; -} LARGE_INTEGER, *PLARGE_INTEGER; - -typedef union _ULARGE_INTEGER -{ - struct - { - DWORD LowPart; - DWORD HighPart; - } u; -#ifdef ANONYMOUSUNIONS - struct - { - DWORD LowPart; - DWORD HighPart; - }; -#endif /* ANONYMOUSUNIONS */ - ULONGLONG QuadPart; -} ULARGE_INTEGER, *PULARGE_INTEGER; - -typedef struct _FILETIME -{ - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} FILETIME, *LPFILETIME, *PFILETIME; - -typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY, *PLIST_ENTRY; - -typedef struct _SINGLE_LIST_ENTRY { - struct _SINGLE_LIST_ENTRY *Next; -} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; - -typedef struct _UNICODE_STRING -{ - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; - -typedef struct _FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[80]; - DWORD Cr0NpxState; -} FLOATING_SAVE_AREA; - -typedef unsigned short RTL_ATOM; -typedef unsigned short *PRTL_ATOM; - -#else /* __USE_W32API */ - -#include - -#endif /* __USE_W32API */ - -#define FALSE 0 -#define TRUE 1 - -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void*)0) -#endif /* __cplusplus */ -#endif /* NULL */ - -#define CONST const - -#ifdef __PPC__ -#define CONTEXT_CONTROL 1L -#define CONTEXT_FLOATING_POINT 2L -#define CONTEXT_INTEGER 4L -#define CONTEXT_DEBUG_REGISTERS 8L - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) -#define CONTEXT_DEBUGGER (CONTEXT_FULL) - -#else /* x86 */ - -#define SIZE_OF_80387_REGISTERS 80 - -/* Values for contextflags */ -#define CONTEXT_i386 0x10000 - -#ifndef __USE_W32API - -#define CONTEXT_CONTROL (CONTEXT_i386 | 1) -#define CONTEXT_INTEGER (CONTEXT_i386 | 2) -#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4) -#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10) -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS) - -#endif /* !__USE_W32API */ - -/* our own invention */ -#define FLAG_TRACE_BIT 0x100 -#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT) - -#endif - -typedef struct _CONTEXT_X86 { - DWORD ContextFlags; - - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - - FLOATING_SAVE_AREA FloatSave; - - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; -} CONTEXT_X86, *PCONTEXT_X86, *LPCONTEXT_X86; - -typedef struct _CONTEXT_PPC - { - /* Floating point registers returned when CONTEXT_FLOATING_POINT is set */ - double Fpr0; - double Fpr1; - double Fpr2; - double Fpr3; - double Fpr4; - double Fpr5; - double Fpr6; - double Fpr7; - double Fpr8; - double Fpr9; - double Fpr10; - double Fpr11; - double Fpr12; - double Fpr13; - double Fpr14; - double Fpr15; - double Fpr16; - double Fpr17; - double Fpr18; - double Fpr19; - double Fpr20; - double Fpr21; - double Fpr22; - double Fpr23; - double Fpr24; - double Fpr25; - double Fpr26; - double Fpr27; - double Fpr28; - double Fpr29; - double Fpr30; - double Fpr31; - double Fpscr; - - /* Integer registers returned when CONTEXT_INTEGER is set. */ - DWORD Gpr0; - DWORD Gpr1; - DWORD Gpr2; - DWORD Gpr3; - DWORD Gpr4; - DWORD Gpr5; - DWORD Gpr6; - DWORD Gpr7; - DWORD Gpr8; - DWORD Gpr9; - DWORD Gpr10; - DWORD Gpr11; - DWORD Gpr12; - DWORD Gpr13; - DWORD Gpr14; - DWORD Gpr15; - DWORD Gpr16; - DWORD Gpr17; - DWORD Gpr18; - DWORD Gpr19; - DWORD Gpr20; - DWORD Gpr21; - DWORD Gpr22; - DWORD Gpr23; - DWORD Gpr24; - DWORD Gpr25; - DWORD Gpr26; - DWORD Gpr27; - DWORD Gpr28; - DWORD Gpr29; - DWORD Gpr30; - DWORD Gpr31; - - DWORD Cr; /* Condition register */ - DWORD Xer; /* Fixed point exception register */ - - /* The following are set when CONTEXT_CONTROL is set. */ - DWORD Msr; /* Machine status register */ - DWORD Iar; /* Instruction address register */ - DWORD Lr; /* Link register */ - DWORD Ctr; /* Control register */ - - /* Control which context values are returned */ - DWORD ContextFlags; - DWORD Fill[3]; - - /* Registers returned if CONTEXT_DEBUG_REGISTERS is set. */ - DWORD Dr0; /* Breakpoint Register 1 */ - DWORD Dr1; /* Breakpoint Register 2 */ - DWORD Dr2; /* Breakpoint Register 3 */ - DWORD Dr3; /* Breakpoint Register 4 */ - DWORD Dr4; /* Breakpoint Register 5 */ - DWORD Dr5; /* Breakpoint Register 6 */ - DWORD Dr6; /* Debug Status Register */ - DWORD Dr7; /* Debug Control Register */ -} CONTEXT_PPC, *PCONTEXT_PPC, *LPCONTEXT_PPC; - -typedef struct value_ent { - LPWSTR ve_valuename; - DWORD ve_valuelen; - DWORD ve_valueptr; - DWORD ve_type; -} WVALENT, *PWVALENT; - -//#include "except.h" - -#ifndef __USE_W32API - -typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; - -#ifdef __i386__ - -typedef CONTEXT_X86 CONTEXT; -typedef PCONTEXT_X86 PCONTEXT; -typedef LPCONTEXT_X86 LPCONTEXT; - -#else /* __ppc__ */ - -typedef CONTEXT_PPC CONTEXT; -typedef PCONTEXT_PPC PCONTEXT; -typedef LPCONTEXT_PPC LPCONTEXT; - -#endif - -typedef WORD ATOM; - -typedef struct _COORD { - SHORT X; - SHORT Y; -} COORD; - -typedef struct _SMALL_RECT { - SHORT Left; - SHORT Top; - SHORT Right; - SHORT Bottom; -} SMALL_RECT, *PSMALL_RECT; - - -typedef VOID STDCALL -(*PTIMERAPCROUTINE)( - LPVOID lpArgToCompletionRoutine, - DWORD dwTimerLowValue, - DWORD dwTimerHighValue - ); - -#include "except.h" - -#else /* __USE_W32API */ - -typedef LPTHREAD_START_ROUTINE PTHREAD_START_ROUTINE; - -#include - -#endif /* __USE_W32API */ - -#endif /* __INCLUDE_TYPES_H */ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: include/types.h + * PURPOSE: Types used by all the parts of the system + * PROGRAMMER: David Welch + * DEFINES: _WIN64: 64-bit architecture + * _WIN32: 32-bit architecture (default) + * UPDATE HISTORY: + * 27/06/00: Created + * 01/05/01: Portabillity changes + */ + +#ifndef __INCLUDE_TYPES_H +#define __INCLUDE_TYPES_H + +#include + +/* Fixed precision types */ +typedef signed char INT8, *PINT8; +typedef signed short INT16, *PINT16; + +typedef unsigned short UINT8, *PUINT8; +typedef unsigned short UINT16, *PUINT16; + + +/* Check VOID before defining CHAR, SHORT */ +#ifndef VOID +#define VOID void +typedef char CHAR; +typedef short SHORT; +#endif + + +#ifndef __USE_W32API + +#ifdef i386 +#define STDCALL __attribute__ ((stdcall)) +#define CDECL __attribute__ ((cdecl)) +#define CALLBACK WINAPI +#define PASCAL WINAPI +#else +#define STDCALL +#define CDECL +#define CALLBACK +#define PASCAL +#endif + +#ifdef _WIN64 + +/* 64-bit architecture */ + +typedef INT64 INT, *PINT; +typedef LONG64 LONG, *PLONG; +typedef DWORD64 DWORD, *PDWORD; +typedef UINT64 UINT, *PUINT; +typedef ULONG64 ULONG, *PULONG; + +#else /* _WIN64 */ + +/* 32-bit architecture */ + +typedef INT32 INT, *PINT; +typedef LONG32 LONG, *PLONG; +typedef DWORD32 DWORD, *PDWORD; +typedef UINT32 UINT, *PUINT; +typedef ULONG32 ULONG, *PULONG; + +#endif /* _WIN64 */ + +typedef unsigned char UCHAR; +typedef unsigned short USHORT; +typedef unsigned short WCHAR; +typedef unsigned short WORD; +typedef int BOOL; +typedef unsigned char BOOLEAN; +typedef BOOLEAN* PBOOLEAN; +typedef unsigned short *LPWSTR; +typedef unsigned short *PWSTR; +typedef unsigned char *PUCHAR; +typedef unsigned short *PUSHORT; +typedef void *PVOID; +typedef unsigned char BYTE; +typedef void *LPVOID; +typedef float *PFLOAT; +typedef unsigned short *PWCH; +typedef unsigned short *PWORD; +typedef long long LONGLONG; +typedef unsigned long long ULONGLONG; +typedef long long *PLONGLONG; +typedef unsigned long long *PULONGLONG; +typedef const void *LPCVOID; +typedef BYTE *LPBYTE, *PBYTE; +typedef BOOL *PBOOL; +typedef DWORD LCID; +typedef DWORD *PLCID; +typedef const char *LPCSTR; +typedef char *LPSTR; +typedef const unsigned short *LPCWSTR; +typedef CHAR *PCHAR; +typedef CHAR *PCH; +typedef void *HANDLE; +typedef HANDLE *PHANDLE; +typedef char CCHAR; +typedef CCHAR *PCCHAR; +typedef unsigned short *PWCHAR; +typedef ULONG WAIT_TYPE; +typedef USHORT CSHORT; +typedef const unsigned short *PCWSTR; +typedef char* PCSZ; + +typedef DWORD STDCALL (*PTHREAD_START_ROUTINE) (LPVOID); + +typedef union _LARGE_INTEGER +{ + struct + { + DWORD LowPart; + LONG HighPart; + } u; +#ifdef ANONYMOUSUNIONS + struct + { + DWORD LowPart; + LONG HighPart; + }; +#endif /* ANONYMOUSUNIONS */ + LONGLONG QuadPart; +} LARGE_INTEGER, *PLARGE_INTEGER; + +typedef union _ULARGE_INTEGER +{ + struct + { + DWORD LowPart; + DWORD HighPart; + } u; +#ifdef ANONYMOUSUNIONS + struct + { + DWORD LowPart; + DWORD HighPart; + }; +#endif /* ANONYMOUSUNIONS */ + ULONGLONG QuadPart; +} ULARGE_INTEGER, *PULARGE_INTEGER; + +typedef struct _FILETIME +{ + DWORD dwLowDateTime; + DWORD dwHighDateTime; +} FILETIME, *LPFILETIME, *PFILETIME; + +typedef struct _LIST_ENTRY +{ + struct _LIST_ENTRY *Flink; + struct _LIST_ENTRY *Blink; +} LIST_ENTRY, *PLIST_ENTRY; + +typedef struct _SINGLE_LIST_ENTRY +{ + struct _SINGLE_LIST_ENTRY *Next; +} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; + +typedef struct _UNICODE_STRING +{ + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING, *PUNICODE_STRING; + +typedef struct _FLOATING_SAVE_AREA +{ + DWORD ControlWord; + DWORD StatusWord; + DWORD TagWord; + DWORD ErrorOffset; + DWORD ErrorSelector; + DWORD DataOffset; + DWORD DataSelector; + BYTE RegisterArea[80]; + DWORD Cr0NpxState; +} FLOATING_SAVE_AREA; + +typedef unsigned short RTL_ATOM; +typedef unsigned short *PRTL_ATOM; + +#else /* __USE_W32API */ + +#include + +#endif /* __USE_W32API */ + +#define FALSE 0 +#define TRUE 1 + +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void*)0) +#endif /* __cplusplus */ +#endif /* NULL */ + +#define CONST const + +#ifdef __PPC__ +#define CONTEXT_CONTROL 1L +#define CONTEXT_FLOATING_POINT 2L +#define CONTEXT_INTEGER 4L +#define CONTEXT_DEBUG_REGISTERS 8L + +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +#define CONTEXT_DEBUGGER (CONTEXT_FULL) + +#else /* x86 */ + +#define SIZE_OF_80387_REGISTERS 80 + +/* Values for contextflags */ +#define CONTEXT_i386 0x10000 + +#ifndef __USE_W32API + +#define CONTEXT_CONTROL (CONTEXT_i386 | 1) +#define CONTEXT_INTEGER (CONTEXT_i386 | 2) +#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4) +#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8) +#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10) +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS) + +#endif /* !__USE_W32API */ + +/* our own invention */ +#define FLAG_TRACE_BIT 0x100 +#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT) + +#endif + +typedef struct _CONTEXT_X86 +{ + DWORD ContextFlags; + + DWORD Dr0; + DWORD Dr1; + DWORD Dr2; + DWORD Dr3; + DWORD Dr6; + DWORD Dr7; + + FLOATING_SAVE_AREA FloatSave; + + DWORD SegGs; + DWORD SegFs; + DWORD SegEs; + DWORD SegDs; + + DWORD Edi; + DWORD Esi; + DWORD Ebx; + DWORD Edx; + DWORD Ecx; + DWORD Eax; + + DWORD Ebp; + DWORD Eip; + DWORD SegCs; + DWORD EFlags; + DWORD Esp; + DWORD SegSs; +} CONTEXT_X86, *PCONTEXT_X86, *LPCONTEXT_X86; + +typedef struct _CONTEXT_PPC +{ + /* Floating point registers returned when CONTEXT_FLOATING_POINT is set */ + double Fpr0; + double Fpr1; + double Fpr2; + double Fpr3; + double Fpr4; + double Fpr5; + double Fpr6; + double Fpr7; + double Fpr8; + double Fpr9; + double Fpr10; + double Fpr11; + double Fpr12; + double Fpr13; + double Fpr14; + double Fpr15; + double Fpr16; + double Fpr17; + double Fpr18; + double Fpr19; + double Fpr20; + double Fpr21; + double Fpr22; + double Fpr23; + double Fpr24; + double Fpr25; + double Fpr26; + double Fpr27; + double Fpr28; + double Fpr29; + double Fpr30; + double Fpr31; + double Fpscr; + + /* Integer registers returned when CONTEXT_INTEGER is set. */ + DWORD Gpr0; + DWORD Gpr1; + DWORD Gpr2; + DWORD Gpr3; + DWORD Gpr4; + DWORD Gpr5; + DWORD Gpr6; + DWORD Gpr7; + DWORD Gpr8; + DWORD Gpr9; + DWORD Gpr10; + DWORD Gpr11; + DWORD Gpr12; + DWORD Gpr13; + DWORD Gpr14; + DWORD Gpr15; + DWORD Gpr16; + DWORD Gpr17; + DWORD Gpr18; + DWORD Gpr19; + DWORD Gpr20; + DWORD Gpr21; + DWORD Gpr22; + DWORD Gpr23; + DWORD Gpr24; + DWORD Gpr25; + DWORD Gpr26; + DWORD Gpr27; + DWORD Gpr28; + DWORD Gpr29; + DWORD Gpr30; + DWORD Gpr31; + + DWORD Cr; /* Condition register */ + DWORD Xer; /* Fixed point exception register */ + + /* The following are set when CONTEXT_CONTROL is set. */ + DWORD Msr; /* Machine status register */ + DWORD Iar; /* Instruction address register */ + DWORD Lr; /* Link register */ + DWORD Ctr; /* Control register */ + + /* Control which context values are returned */ + DWORD ContextFlags; + DWORD Fill[3]; + + /* Registers returned if CONTEXT_DEBUG_REGISTERS is set. */ + DWORD Dr0; /* Breakpoint Register 1 */ + DWORD Dr1; /* Breakpoint Register 2 */ + DWORD Dr2; /* Breakpoint Register 3 */ + DWORD Dr3; /* Breakpoint Register 4 */ + DWORD Dr4; /* Breakpoint Register 5 */ + DWORD Dr5; /* Breakpoint Register 6 */ + DWORD Dr6; /* Debug Status Register */ + DWORD Dr7; /* Debug Control Register */ +} CONTEXT_PPC, *PCONTEXT_PPC, *LPCONTEXT_PPC; + +typedef struct value_ent +{ + LPWSTR ve_valuename; + DWORD ve_valuelen; + DWORD ve_valueptr; + DWORD ve_type; +} WVALENT, *PWVALENT; + +//#include "except.h" + +#ifndef __USE_W32API + +typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; + +#ifdef __i386__ + +typedef CONTEXT_X86 CONTEXT; +typedef PCONTEXT_X86 PCONTEXT; +typedef LPCONTEXT_X86 LPCONTEXT; + +#else /* __ppc__ */ + +typedef CONTEXT_PPC CONTEXT; +typedef PCONTEXT_PPC PCONTEXT; +typedef LPCONTEXT_PPC LPCONTEXT; + +#endif + +typedef WORD ATOM; + +typedef struct _COORD +{ + SHORT X; + SHORT Y; +} COORD; + +typedef struct _SMALL_RECT +{ + SHORT Left; + SHORT Top; + SHORT Right; + SHORT Bottom; +} SMALL_RECT, *PSMALL_RECT; + + +typedef VOID STDCALL +(*PTIMERAPCROUTINE)( + LPVOID lpArgToCompletionRoutine, + DWORD dwTimerLowValue, + DWORD dwTimerHighValue + ); + +#include "except.h" + +#else /* __USE_W32API */ + +typedef LPTHREAD_START_ROUTINE PTHREAD_START_ROUTINE; + +#include + +#endif /* __USE_W32API */ + +#endif /* __INCLUDE_TYPES_H */