update for HEAD-2003091401
[reactos.git] / include / ntos / types.h
index e7739af..58e7a38 100644 (file)
@@ -14,6 +14,9 @@
 #ifndef __INCLUDE_TYPES_H
 #define __INCLUDE_TYPES_H
 
+#define EXPORTED __declspec(dllexport)
+#define IMPORTED __declspec(dllimport)
+
 #include <basetsd.h>
 
 #ifdef __GNUC__
@@ -41,8 +44,13 @@ typedef short SHORT;
 #ifndef __USE_W32API
 
 #ifdef i386
+#ifdef __GNUC__
 #define STDCALL     __attribute__ ((stdcall))
 #define CDECL       __attribute__ ((cdecl))
+#else
+#define STDCALL __stdcall
+#define CDECL __cdecl
+#endif
 #define CALLBACK    WINAPI
 #define PASCAL      WINAPI
 #else
@@ -82,12 +90,13 @@ typedef __WCHAR_TYPE__      wchar_t;
 #endif  /* wchar_t not already defined */
 
 
-//#ifndef __cplusplus
-//#ifndef _WCHAR_T_DEFINED
-//#define _WCHAR_T_DEFINED
-//typedef unsigned short wchar_t;
-//#endif
-//#endif
+/* #ifndef __cplusplus
+#ifndef _WCHAR_T_DEFINED
+#define _WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+#endif
+#endif
+*/
 
 typedef unsigned char UCHAR;
 typedef unsigned short USHORT;
@@ -107,7 +116,7 @@ typedef float *PFLOAT;
 typedef wchar_t *PWCH;
 typedef unsigned short *PWORD;
 
-#include <msvcrt/crttypes.h> // for definition of LONGLONG, PLONGLONG etc
+#include <msvcrt/crttypes.h> /* for definition of LONGLONG, PLONGLONG etc */
 
 typedef const void *LPCVOID;
 typedef BYTE *LPBYTE, *PBYTE;
@@ -169,6 +178,12 @@ typedef union _ULARGE_INTEGER
   ULONGLONG QuadPart;
 } ULARGE_INTEGER, *PULARGE_INTEGER;
 
+
+/* 
+ * Moved here by AG
+ * typedef ULARGE_INTEGER TIME, *PTIME;
+ */
+
 typedef struct _FILETIME
 {
   DWORD dwLowDateTime;
@@ -186,6 +201,9 @@ typedef struct _SINGLE_LIST_ENTRY
   struct _SINGLE_LIST_ENTRY *Next;
 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
 
+#define SLIST_ENTRY SINGLE_LIST_ENTRY
+#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
+
 typedef struct _UNICODE_STRING
 {
   USHORT Length;
@@ -193,6 +211,10 @@ typedef struct _UNICODE_STRING
   PWSTR Buffer;
 } UNICODE_STRING, *PUNICODE_STRING;
 
+typedef const UNICODE_STRING* PCUNICODE_STRING;
+
+#define UNICODE_NULL ((WCHAR)0)
+
 typedef struct _FLOATING_SAVE_AREA
 {
   DWORD   ControlWord;
@@ -401,7 +423,7 @@ typedef struct value_ent
   DWORD  ve_type;
 } WVALENT, *PWVALENT;
 
-//#include "except.h"
+/* #include "except.h" */
 
 #ifndef __USE_W32API
 
@@ -464,4 +486,77 @@ typedef LPTHREAD_START_ROUTINE PTHREAD_START_ROUTINE;
 
 #endif /* __USE_W32API */
 
+typedef struct _ADDRESS_RANGE
+{
+   ULONG BaseAddrLow;
+   ULONG BaseAddrHigh;
+   ULONG LengthLow;
+   ULONG LengthHigh;
+   ULONG Type;
+} ADDRESS_RANGE, *PADDRESS_RANGE;
+
+#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 _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;
+
+typedef enum _KAPC_ENVIRONMENT
+{
+  OriginalApcEnvironment,
+  AttachedApcEnvironment,
+  CurrentApcEnvironment
+} KAPC_ENVIRONMENT;
+
+/* FIXME: Are these official values ?? */
+#define STATUS_FS_QUERY_REQUIRED                    ((NTSTATUS)0xC1000001)
+#define STATUS_HANDLE_NOT_WAITABLE                  ((NTSTATUS)0xC1000002)
+#define STATUS_OBJECT_FILE_MISMATCH                 ((NTSTATUS)0xC1000003)
+#define STATUS_INVALID_PARAMETER_MAX                ((NTSTATUS)0xC1000004)
+#define STATUS_CONFLICTING_ADDRESS                  ((NTSTATUS)0xC1000005)
+#define STATUS_NO_MEDIA_IN_DRIVE                    ((NTSTATUS)0xC1000006)
+
+#define NTSTAT_SEVERITY_SHIFT 30
+#define NTSTAT_SEVERITY_MASK  0x00000003
+#define NTSTAT_FACILITY_SHIFT 16
+#define NTSTAT_FACILITY_MASK  0x00000FFF
+#define NTSTAT_CUSTOMER_MASK  0x20000000
+
+#define NT_SEVERITY(StatCode) (((StatCode) >> NTSTAT_SEVERITY_SHIFT) & NTSTAT_SEVERITY_MASK)
+#define NT_FACILITY(StatCode) (((StatCode) >> NTSTAT_FACILITY_SHIFT) & NTSTAT_FACILITY_MASK)
+#define NT_CUSTOMER(StatCode) ((StatCode) & NTSTAT_CUSTOMER_MASK)
+
 #endif /* __INCLUDE_TYPES_H */