update for HEAD-2003091401
[reactos.git] / include / napi / shared_data.h
1 #ifndef __INCLUDE_NAPI_SHARED_DATA_H
2 #define __INCLUDE_NAPI_SHARED_DATA_H
3
4 #define PROCESSOR_FEATURES_MAX 64
5
6 typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE
7 {
8    StandardDesign,
9    NEC98x86,
10    EndAlternatives
11 } ALTERNATIVE_ARCHITECTURE_TYPE;
12
13
14 typedef struct _KUSER_SHARED_DATA
15 {
16    volatile ULONG TickCountLow;
17    ULONG TickCountMultiplier;
18    volatile ULARGE_INTEGER InterruptTime;
19    volatile ULARGE_INTEGER SystemTime;
20    volatile ULARGE_INTEGER TimeZoneBias;
21    USHORT ImageNumberLow;
22    USHORT ImageNumberHigh;
23    WCHAR NtSystemRoot[260];
24    ULONG DosDeviceMap;
25    ULONG CryptoExponent;
26    ULONG TimeZoneId;
27    UCHAR DosDeviceDriveType[32];
28    NT_PRODUCT_TYPE NtProductType;
29    BOOLEAN ProductTypeIsValid;
30    ULONG NtMajorVersion;
31    ULONG NtMinorVersion;
32    BOOLEAN ProcessorFeatures[PROCESSOR_FEATURES_MAX];
33
34    /* NT5 / Win2k specific ?? */
35    ULONG Reserved1;
36    ULONG Reserved3;
37    volatile ULONG TimeSlip;
38    ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
39    ULONG SuiteMask;
40 #ifdef REMOTE_BOOT
41    ULONG SystemFlags;
42    UCHAR RemoteBootServerPath[260];
43 #endif
44    BOOLEAN KdDebuggerEnabled;
45 } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
46
47 /* Values for DosDeviceDriveType */
48 #define DOSDEVICE_DRIVE_UNKNOWN         0
49 #define DOSDEVICE_DRIVE_CALCULATE       1
50 #define DOSDEVICE_DRIVE_REMOVABLE       2
51 #define DOSDEVICE_DRIVE_FIXED           3
52 #define DOSDEVICE_DRIVE_REMOTE          4
53 #define DOSDEVICE_DRIVE_CDROM           5
54 #define DOSDEVICE_DRIVE_RAMDISK         6
55
56
57 #define KERNEL_SHARED_DATA      (0xFFDF0000)
58 #define USER_SHARED_DATA        (0x7FFE0000)
59
60 #if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
61 #ifndef __USE_W32API
62 #define KI_USER_SHARED_DATA (0xFFDF0000)
63 #endif
64 #ifdef SharedUserData
65 #undef SharedUserData
66 #endif
67 #define SharedUserData          ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
68 #else
69 #ifndef __USE_W32API
70 #define SharedUserData          ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
71 #endif /* !__USE_W32API */
72 #endif
73
74
75 #endif /* __INCLUDE_NAPI_SHARED_DATA_H */