:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[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 KSYSTEM_TIME InterruptTime;
19    volatile KSYSTEM_TIME SystemTime;
20    volatile KSYSTEM_TIME 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 #define KI_USER_SHARED_DATA     (0xFFDF0000)
62 #define SharedUserData          ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
63 #else
64 #define SharedUserData          ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
65 #endif
66
67
68 #endif /* __INCLUDE_NAPI_SHARED_DATA_H */