AHCI-SATA Interface almost ready.
[reactos.git] / drivers / storage / ide / uniata / config.h
1 #ifndef __UNIATA_CONFIG__H__
2 #define __UNIATA_CONFIG__H__
3
4
5 /***************************************************/
6 /* Options */
7 /***************************************************/
8
9 /***************************************/
10 // Send Debug messages directly to DbgPrintLonner using its SDK
11 /***************************************/
12
13 //#define USE_DBGPRINT_LOGGER
14
15 /***************************************/
16 // Send Debug messages via ScsiPort API
17 /***************************************/
18
19 //#define SCSI_PORT_DBG_PRINT
20
21 /***************************************/
22 // Using DbgPrint on raised IRQL will crash w2k
23 // this will not happen immediately, so we shall see some logs.
24 // You can tune Irql checking here
25 // Note: you can avoid crashes if configure DbgPrintLogger to check Irql
26 /***************************************/
27
28 #define LOG_ON_RAISED_IRQL_W2K TRUE
29 //#define LOG_ON_RAISED_IRQL_W2K FALSE
30
31 /***************************************/
32 // Use hack to avoid PCI-ISA DMA limitations (physical memory must
33 // be allocated below 16Mb). Actually there is no such limitation,
34 // so we have to pretent to be PIO and converl logical addresses
35 // to physical manually
36 /***************************************/
37
38 #define USE_OWN_DMA
39
40 /***************************************/
41 // Special option, enables dumping of ATAPI cammands and data buffers
42 // via DbgPrint API
43 /***************************************/
44
45 //#define UNIATA_DUMP_ATAPI
46 #define UNIATA_DUMP_RW
47
48 /***************************************/
49 // Optimization for uni-processor machines
50 /***************************************/
51
52 //#define UNI_CPU_OPTIMIZATION
53
54 /***************************************/
55 // Enable/disable performance statistics
56 /***************************************/
57
58 #define QUEUE_STATISTICS
59
60 #define IO_STATISTICS
61
62 /***************************************/
63 // Misc
64 /***************************************/
65
66 //#define NAVO_TEST
67
68 /***************************************************/
69 /* Validate Options */
70 /***************************************************/
71
72 #ifdef _DEBUG
73
74 #ifndef DBG
75 #define DBG
76 #endif //DBG
77
78 #else //_DEBUG
79
80 #ifdef USE_DBGPRINT_LOGGER
81 #undef USE_DBGPRINT_LOGGER
82 #endif //USE_DBGPRINT_LOGGER
83
84 #endif // !_DEBUG
85
86 /***************************************************/
87 /* Compiler dependencies */
88 /***************************************************/
89
90 /* ReactOS-specific defines */
91 #ifdef __REACTOS__
92 #define USE_REACTOS_DDK
93 #endif //__REACTOS__
94
95 #ifdef USE_REACTOS_DDK
96 #define ULONGIO_PTR ULONG_PTR
97 #define CRNT_ILK_TYPE
98 #define CRNT_ILK_PTYPE
99 #define REGRTL_STR_PTYPE
100 #else
101 #define ULONG_PTR ULONG
102 #define ULONGIO_PTR ULONG
103 #define CRNT_ILK_TYPE (PVOID)
104 #define CRNT_ILK_PTYPE (PVOID*)
105 #define REGRTL_STR_PTYPE (PWCHAR)
106 #endif //USE_REACTOS_DDK
107
108 /* Are we under GNU C (mingw) ??? */
109 #if __GNUC__ >=3
110
111 #define DEF_U64(x) (x##ULL)
112 #define DEF_I64(x) (x##LL)
113
114 /* ReactOS-specific defines */
115
116 #ifndef DDKAPI
117 #define DDKAPI __attribute__((stdcall))
118 #endif
119 #ifndef DDKCDECLAPI
120 #define DDKCDECLAPI __attribute__((cdecl))
121 #endif
122 #ifndef DDKFASTAPI
123 #define DDKFASTAPI __attribute__((fastcall))
124 #endif
125
126 #define DECLSPEC_NAKED __attribute__((naked))
127
128 #else // !__GNUC__ => MSVC/Intel
129
130 #define DEF_U64(x) (x##UI64)
131 #define DEF_I64(x) (x##I64)
132
133 /* ReactOS-specific defines */
134
135 #ifndef DDKAPI
136 #define DDKAPI __stdcall
137 #endif
138 #ifndef DDKCDECLAPI
139 #define DDKCDECLAPI _cdecl
140 #endif
141 #ifndef DDKFASTAPI
142 #define DDKFASTAPI __fastcall
143 #endif
144
145 #define DECLSPEC_NAKED __declspec(naked)
146
147 #endif //__GNUC__
148
149
150 #endif //__UNIATA_CONFIG__H__