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