update for HEAD-2003091401
[reactos.git] / include / ddk / defines.h
1 #ifndef _DDK_DEFINES_H
2 #define _DDK_DEFINES_H
3
4 /* GENERAL DEFINITIONS ****************************************************/
5
6 #ifndef __ASM__
7
8 #ifndef _WIN32_WINNT
9 #define _WIN32_WINNT 0x0400
10 #endif
11
12 #include <ddk/kedef.h>
13 #include <ddk/iodef.h>
14
15 /*
16  * PURPOSE: Number of a thread priority levels
17  */
18 #define NR_PRIORITY_LEVELS (32)
19
20 /*
21  * PURPOSE: Type of queue to insert a work item in
22  */
23 enum
24 {
25   CriticalWorkQueue,
26   DelayedWorkQueue,
27   HyperCriticalWorkQueue,
28 };
29
30 /*
31  * Types of memory to allocate
32  */
33 enum
34 {
35    NonPagedPool,
36    PagedPool,
37    NonPagedPoolMustSucceed,
38    NonPagedPoolCacheAligned = 4,
39    PagedPoolCacheAligned,
40    NonPagedPoolCacheAlignedMustS,
41 };
42
43
44 /*
45  * PURPOSE: Object attributes
46  */
47 enum
48 {
49    OBJ_INHERIT = 0x2,
50    OBJ_PERMANENT = 0x10,
51    OBJ_EXCLUSIVE = 0x20,
52    OBJ_CASE_INSENSITIVE = 0x40,
53    OBJ_OPENIF = 0x80,
54    OBJ_OPENLINK = 0x100,
55    OBJ_VALID_ATTRIBUTES = 0x1F2,
56 };
57
58 /*
59  * PURPOSE: Timer types
60  */
61 enum
62 {
63    NotificationTimer,
64    SynchronizationTimer,
65 };
66
67 /*
68  * PURPOSE: Some drivers use these
69  */
70 #ifndef IN
71 #define IN
72 #define OUT
73 #define OPTIONAL
74 #endif
75
76 /*
77  * PURPOSE: Arguments to MmProbeAndLockPages
78  */
79 enum
80 {
81    IoReadAccess,
82    IoWriteAccess,
83    IoModifyAccess,
84 };
85
86 #define MAXIMUM_VOLUME_LABEL_LENGTH (32)
87
88 #include <ddk/i386/irql.h>
89
90 #define PASSIVE_LEVEL   0               // Passive release level
91 #define LOW_LEVEL       0               // Lowest interrupt level
92 #define APC_LEVEL       1               // APC interrupt level
93 #define DISPATCH_LEVEL  2               // Dispatcher level
94 /* timer used for profiling */
95 #define PROFILE_LEVEL   27              
96 /* Interval clock 1 level - Not used on x86 */
97 #define CLOCK1_LEVEL    28              
98 #define CLOCK2_LEVEL    28              // Interval clock 2 level
99 #define IPI_LEVEL       29              // Interprocessor interrupt level 
100 #define POWER_LEVEL     30              // Power failure level
101 #define HIGH_LEVEL      31              // Highest interrupt level
102 #define SYNCH_LEVEL     (IPI_LEVEL-1)   // synchronization level
103
104 #endif /* __ASM__ */
105
106 /* Values returned by KeGetPreviousMode() */
107 #define KernelMode (0)
108 #define UserMode   (1)
109
110 #endif /* ndef _DDK_DEFINES_H */