bootstrap
[reactos.git] / drivers / bus / acpi / include / platform / types.h
1 /*
2  * COPYRIGHT:    See COPYING in the top level directory
3  * PROJECT:      ReactOS kernel
4  * FILE:         include/types.h
5  * PURPOSE:      Types used by all the parts of the system
6  * PROGRAMMER:   David Welch <welch@cwcom.net>
7  * DEFINES:      _WIN64: 64-bit architecture
8  *               _WIN32: 32-bit architecture (default)
9  * UPDATE HISTORY:
10  *               27/06/00: Created
11  *               01/05/01: Portabillity changes
12  */
13
14 #ifndef __INCLUDE_ACPI_TYPES_H
15 #define __INCLUDE_ACPI_TYPES_H
16
17 /* Fixed precision types */
18 typedef signed char         INT8, *PINT8;
19 typedef signed short        INT16, *PINT16;
20 #if 0
21 typedef signed int          INT32, *PINT32;
22 #endif
23 typedef signed long long    INT64, *PINT64;
24 #if 0
25 typedef unsigned char       UINT8, *PUINT8;
26 typedef unsigned short      UINT16, *PUINT16;
27 typedef unsigned int        UINT32, *PUINT32;
28 typedef unsigned long long  UINT64, *PUINT64;
29 #endif
30
31 typedef signed long int     LONG32, *PLONG32;
32 typedef unsigned long int   ULONG32, *PULONG32;
33 typedef unsigned long int   DWORD32, *PDWORD32;
34
35
36 #ifdef _WIN64
37
38 /* 64-bit architecture */
39
40 typedef INT64 INT, *PINT;
41 typedef LONG64 LONG, *PLONG;
42 typedef DWORD64 DWORD, *PDWORD;
43 typedef UINT64 UINT, *PUINT;
44 typedef ULONG64 ULONG, *PULONG;
45
46 /* Pointer precision types */
47 typedef long long           INT_PTR, *PINT_PTR;
48 typedef unsigned long long  UINT_PTR, *PUINT_PTR;
49 typedef long long           LONG_PTR, *PLONG_PTR;
50 typedef unsigned long long  ULONG_PTR, *PULONG_PTR;
51 typedef unsigned long long  HANDLE_PTR;
52 typedef unsigned int        UHALF_PTR, *PUHALF_PTR;
53 typedef int                 HALF_PTR, *PHALF_PTR;
54
55 #else /* _WIN64 */
56
57 /* 32-bit architecture */
58
59 typedef INT32 INT, *PINT;
60 typedef LONG32 LONG, *PLONG;
61 typedef DWORD32 DWORD, *PDWORD;
62 typedef UINT32 UINT, *PUINT;
63 typedef ULONG32 ULONG, *PULONG;
64
65
66 /* Pointer precision types */
67 typedef int               INT_PTR, *PINT_PTR;
68 typedef unsigned int      UINT_PTR, *PUINT_PTR;
69 typedef long              LONG_PTR, *PLONG_PTR;
70 typedef unsigned long     ULONG_PTR, *PULONG_PTR;
71 typedef unsigned short    UHALF_PTR, *PUHALF_PTR;
72 typedef short             HALF_PTR, *PHALF_PTR;
73 typedef unsigned long     HANDLE_PTR;
74
75 #endif /* _WIN64 */
76
77 typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
78
79 typedef long long LONG64, *PLONG64;
80
81 typedef unsigned long long ULONG64, *PULONG64;
82 typedef unsigned long long DWORD64, *PDWORD64;
83
84
85 #if 0
86 typedef unsigned char UCHAR;
87 #endif
88 typedef unsigned short USHORT;
89 /* Yes, W32 uses 16-bit wchar_t requiring GCC -fshort-wchar option */
90 typedef unsigned short WCHAR;
91 typedef unsigned short WORD;
92 typedef int BOOL;
93 #if 0
94 typedef unsigned char BOOLEAN;
95 #endif
96 typedef BOOLEAN* PBOOLEAN;
97 typedef unsigned short *LPWSTR;
98 typedef unsigned short *PWSTR;
99 typedef unsigned char *PUCHAR;
100 typedef unsigned short *PUSHORT;
101 typedef void *PVOID;
102 typedef unsigned char BYTE;
103 typedef void *LPVOID;
104 typedef float *PFLOAT;
105 typedef unsigned short *PWCH;
106 typedef unsigned short *PWORD;
107
108 typedef long long LONGLONG;
109 typedef unsigned long long ULONGLONG;
110 typedef long long *PLONGLONG;
111 typedef unsigned long long *PULONGLONG;
112
113 /* Check VOID before defining CHAR, SHORT */
114 #ifndef VOID
115 #define VOID void
116 typedef char CHAR;
117 typedef short SHORT;
118 #endif
119
120 typedef CHAR *PCHAR;
121 typedef CHAR *PCH;
122 typedef void *HANDLE;
123 typedef char CCHAR;
124 typedef CCHAR *PCCHAR;
125
126 #if 0
127 #define FALSE 0
128 #define TRUE 1
129 #endif
130
131 #ifndef NULL
132 #ifdef __cplusplus
133 #define NULL 0
134 #else
135 #define NULL ((void*)0)
136 #endif /* __cplusplus */
137 #endif /* NULL */
138
139 typedef const unsigned short *PCWSTR;
140
141 typedef const char* PCSZ;
142
143 typedef union _LARGE_INTEGER
144 {
145   struct
146   {
147     DWORD LowPart;
148     LONG  HighPart;
149   } u;
150 #ifdef ANONYMOUSUNIONS
151   struct
152   {
153     DWORD LowPart;
154     LONG  HighPart;
155   };
156 #endif /* ANONYMOUSUNIONS */
157   LONGLONG QuadPart;
158 } LARGE_INTEGER, *PLARGE_INTEGER;
159
160 typedef union _ULARGE_INTEGER
161 {
162   struct
163   {
164     DWORD LowPart;
165     DWORD HighPart;
166   } u;
167 #ifdef ANONYMOUSUNIONS
168   struct
169   {
170     DWORD LowPart;
171     DWORD HighPart;
172   };
173 #endif /* ANONYMOUSUNIONS */
174   ULONGLONG QuadPart;
175 } ULARGE_INTEGER, *PULARGE_INTEGER;
176
177 typedef struct _FILETIME
178 {
179    DWORD dwLowDateTime;
180    DWORD dwHighDateTime;
181 } FILETIME, *LPFILETIME, *PFILETIME;
182
183 #define CONST const
184
185 #ifdef i386
186 #define STDCALL     __attribute__ ((stdcall))
187 #define CDECL       __attribute((cdecl))
188 #define CALLBACK    WINAPI
189 #define PASCAL      WINAPI
190 #else
191 #define STDCALL
192 #define CDECL
193 #define CALLBACK
194 #define PASCAL
195 #endif
196
197 typedef struct _LIST_ENTRY {
198   struct _LIST_ENTRY *Flink;
199   struct _LIST_ENTRY *Blink;
200 } LIST_ENTRY, *PLIST_ENTRY;
201
202 typedef struct _SINGLE_LIST_ENTRY {
203   struct _SINGLE_LIST_ENTRY *Next;
204 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
205
206 typedef DWORD STDCALL (*PTHREAD_START_ROUTINE) (LPVOID);
207 typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
208
209 typedef unsigned short *PWCHAR;
210
211 #ifdef __PPC__
212 #define CONTEXT_CONTROL         1L
213 #define CONTEXT_FLOATING_POINT  2L
214 #define CONTEXT_INTEGER         4L
215 #define CONTEXT_DEBUG_REGISTERS 8L
216
217 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
218 #define CONTEXT_DEBUGGER (CONTEXT_FULL)
219
220 #else /* x86 */
221 /* The doc refered me to winnt.h, so I had to look... */
222 #define SIZE_OF_80387_REGISTERS      80
223
224 /* Values for contextflags */
225 #define CONTEXT_i386    0x10000
226 #define CONTEXT_CONTROL         (CONTEXT_i386 | 1)      
227 #define CONTEXT_INTEGER         (CONTEXT_i386 | 2)      
228 #define CONTEXT_SEGMENTS        (CONTEXT_i386 | 4)      
229 #define CONTEXT_FLOATING_POINT  (CONTEXT_i386 | 8)      
230 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
231 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
232
233 /* our own invention */
234 #define FLAG_TRACE_BIT 0x100
235 #define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
236
237 #endif
238
239 #ifdef __i386__
240
241 typedef struct _FLOATING_SAVE_AREA {
242     DWORD   ControlWord;
243     DWORD   StatusWord;
244     DWORD   TagWord;
245     DWORD   ErrorOffset;
246     DWORD   ErrorSelector;
247     DWORD   DataOffset;
248     DWORD   DataSelector;
249     BYTE    RegisterArea[80];
250     DWORD   Cr0NpxState;
251 } FLOATING_SAVE_AREA;
252
253 typedef struct _CONTEXT {
254     DWORD ContextFlags;
255
256     DWORD   Dr0;
257     DWORD   Dr1;
258     DWORD   Dr2;
259     DWORD   Dr3;
260     DWORD   Dr6;
261     DWORD   Dr7;
262
263     FLOATING_SAVE_AREA FloatSave;
264
265     DWORD   SegGs;
266     DWORD   SegFs;
267     DWORD   SegEs;
268     DWORD   SegDs;
269
270     DWORD   Edi;
271     DWORD   Esi;
272     DWORD   Ebx;
273     DWORD   Edx;
274     DWORD   Ecx;
275     DWORD   Eax;
276
277     DWORD   Ebp;
278     DWORD   Eip;
279     DWORD   SegCs;
280     DWORD   EFlags;
281     DWORD   Esp;
282     DWORD   SegSs;
283 } CONTEXT, *PCONTEXT, *LPCONTEXT;
284
285 #else /* __ppc__ */
286
287 typedef struct
288   {
289     /* Floating point registers returned when CONTEXT_FLOATING_POINT is set */
290     double Fpr0;
291     double Fpr1;
292     double Fpr2;
293     double Fpr3;
294     double Fpr4;
295     double Fpr5;
296     double Fpr6;
297     double Fpr7;
298     double Fpr8;
299     double Fpr9;
300     double Fpr10;
301     double Fpr11;
302     double Fpr12;
303     double Fpr13;
304     double Fpr14;
305     double Fpr15;
306     double Fpr16;
307     double Fpr17;
308     double Fpr18;
309     double Fpr19;
310     double Fpr20;
311     double Fpr21;
312     double Fpr22;
313     double Fpr23;
314     double Fpr24;
315     double Fpr25;
316     double Fpr26;
317     double Fpr27;
318     double Fpr28;
319     double Fpr29;
320     double Fpr30;
321     double Fpr31;
322     double Fpscr;
323
324     /* Integer registers returned when CONTEXT_INTEGER is set.  */
325     DWORD Gpr0;
326     DWORD Gpr1;
327     DWORD Gpr2;
328     DWORD Gpr3;
329     DWORD Gpr4;
330     DWORD Gpr5;
331     DWORD Gpr6;
332     DWORD Gpr7;
333     DWORD Gpr8;
334     DWORD Gpr9;
335     DWORD Gpr10;
336     DWORD Gpr11;
337     DWORD Gpr12;
338     DWORD Gpr13;
339     DWORD Gpr14;
340     DWORD Gpr15;
341     DWORD Gpr16;
342     DWORD Gpr17;
343     DWORD Gpr18;
344     DWORD Gpr19;
345     DWORD Gpr20;
346     DWORD Gpr21;
347     DWORD Gpr22;
348     DWORD Gpr23;
349     DWORD Gpr24;
350     DWORD Gpr25;
351     DWORD Gpr26;
352     DWORD Gpr27;
353     DWORD Gpr28;
354     DWORD Gpr29;
355     DWORD Gpr30;
356     DWORD Gpr31;
357
358     DWORD Cr;                   /* Condition register */
359     DWORD Xer;                  /* Fixed point exception register */
360
361     /* The following are set when CONTEXT_CONTROL is set.  */
362     DWORD Msr;                  /* Machine status register */
363     DWORD Iar;                  /* Instruction address register */
364     DWORD Lr;                   /* Link register */
365     DWORD Ctr;                  /* Control register */
366
367     /* Control which context values are returned */
368     DWORD ContextFlags;
369     DWORD Fill[3];
370
371     /* Registers returned if CONTEXT_DEBUG_REGISTERS is set.  */
372     DWORD Dr0;                          /* Breakpoint Register 1 */
373     DWORD Dr1;                          /* Breakpoint Register 2 */
374     DWORD Dr2;                          /* Breakpoint Register 3 */
375     DWORD Dr3;                          /* Breakpoint Register 4 */
376     DWORD Dr4;                          /* Breakpoint Register 5 */
377     DWORD Dr5;                          /* Breakpoint Register 6 */
378     DWORD Dr6;                          /* Debug Status Register */
379     DWORD Dr7;                          /* Debug Control Register */
380 } CONTEXT, *PCONTEXT, *LPCONTEXT;
381 #endif
382
383 typedef HANDLE *PHANDLE;
384
385 typedef struct value_ent {
386     LPWSTR ve_valuename;
387     DWORD  ve_valuelen;
388     DWORD  ve_valueptr;
389     DWORD  ve_type;
390 } WVALENT, *PWVALENT;
391
392
393 typedef const void *LPCVOID;
394 typedef BYTE *LPBYTE, *PBYTE;
395
396 typedef BOOL *PBOOL;
397
398 typedef DWORD LCID;
399 typedef DWORD *PLCID;
400
401 typedef const char *LPCSTR;
402
403 typedef char *LPSTR;
404
405 typedef const unsigned short *LPCWSTR;
406
407 typedef unsigned short RTL_ATOM;
408 typedef unsigned short *PRTL_ATOM;
409 typedef WORD ATOM;
410
411 typedef struct _COORD {
412   SHORT X;
413   SHORT Y;
414 } COORD;
415
416 typedef struct _SMALL_RECT {
417   SHORT Left;
418   SHORT Top;
419   SHORT Right;
420   SHORT Bottom;
421 } SMALL_RECT, *PSMALL_RECT;
422
423
424 typedef
425 VOID
426 (*PTIMERAPCROUTINE)(
427         LPVOID lpArgToCompletionRoutine,
428         DWORD dwTimerLowValue,
429         DWORD dwTimerHighValue
430         );
431
432 #include <ntos/except.h>
433
434 #endif /* __INCLUDE_ACPI_TYPES_H */
435
436
437
438 #if 0
439
440
441 /*
442  * COPYRIGHT:    See COPYING in the top level directory
443  * PROJECT:      ReactOS kernel
444  * FILE:         include/types.h
445  * PURPOSE:      Types used by all the parts of the system
446  * PROGRAMMER:   David Welch <welch@cwcom.net>
447  * UPDATE HISTORY: 
448  *               27/06/00: Created
449  */
450
451 #ifndef __INCLUDE_ACPI_TYPES_H
452 #define __INCLUDE_ACPI_TYPES_H
453 #if 0
454 typedef unsigned char UCHAR;
455 #endif
456 typedef unsigned int UINT;
457 typedef unsigned long ULONG;
458 typedef unsigned short USHORT;
459 /* Yes, W32 uses 16-bit wchar_t requiring GCC -fshort-wchar option */
460 typedef unsigned short WCHAR;
461 typedef unsigned short WORD;
462 typedef int BOOL;
463 #if 0
464 typedef unsigned char BOOLEAN;
465 #endif
466 typedef BOOLEAN* PBOOLEAN;
467 typedef unsigned int DWORD; /* was unsigned long */
468 typedef unsigned short *LPWSTR;
469 typedef unsigned short *PWSTR;
470 typedef unsigned char *PUCHAR;
471 typedef unsigned int *PUINT;
472 typedef unsigned long *PULONG;
473 typedef unsigned short *PUSHORT;
474 typedef void *PVOID;
475 typedef unsigned char BYTE;
476 typedef void *LPVOID;
477 typedef DWORD *PDWORD;
478 typedef float *PFLOAT;
479 typedef unsigned short *PWCH;
480 typedef unsigned short *PWORD;
481
482 typedef long long LONGLONG;
483 typedef unsigned long long ULONGLONG;
484 typedef long long *PLONGLONG;
485 typedef unsigned long long *PULONGLONG;
486
487 /* Check VOID before defining CHAR, SHORT, and LONG */
488 #ifndef VOID
489 #define VOID void
490 typedef char CHAR;
491 typedef short SHORT;
492 typedef long LONG;
493 #endif
494
495 typedef CHAR *PCHAR;
496 typedef CHAR *PCH;
497 typedef void *HANDLE;
498 typedef char CCHAR;
499
500 #if 0
501 #define FALSE 0
502 #define TRUE 1
503 #endif
504
505 typedef const unsigned short *PCWSTR;
506
507 typedef char* PCSZ;
508
509 typedef union _LARGE_INTEGER
510 {
511   struct
512   {
513     DWORD LowPart;
514     LONG  HighPart;
515   } u;
516 #ifdef ANONYMOUSUNIONS   
517   struct
518   {
519     DWORD LowPart;
520     LONG  HighPart;
521   };
522 #endif /* ANONYMOUSUNIONS */
523   LONGLONG QuadPart;
524 } LARGE_INTEGER, *PLARGE_INTEGER;
525
526 typedef union _ULARGE_INTEGER
527 {
528   struct
529   {
530     DWORD LowPart;
531     DWORD HighPart;
532   } u;
533 #ifdef ANONYMOUSUNIONS   
534   struct
535   {
536     DWORD LowPart;
537     DWORD HighPart;
538   };
539 #endif /* ANONYMOUSUNIONS */   
540   ULONGLONG QuadPart;
541 } ULARGE_INTEGER, *PULARGE_INTEGER;
542
543 #define CONST const
544
545 #ifdef i386
546 #define STDCALL     __attribute__ ((stdcall))
547 #define CDECL       __attribute((cdecl))
548 #define CALLBACK    WINAPI
549 #define PASCAL      WINAPI
550 #else
551 #define STDCALL
552 #define CDECL
553 #define CALLBACK
554 #define PASCAL
555 #endif
556
557 typedef struct _LIST_ENTRY {
558   struct _LIST_ENTRY *Flink;
559   struct _LIST_ENTRY *Blink;
560 } LIST_ENTRY, *PLIST_ENTRY;
561
562 typedef struct _SINGLE_LIST_ENTRY {
563   struct _SINGLE_LIST_ENTRY *Next;
564 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
565
566 typedef DWORD STDCALL (*PTHREAD_START_ROUTINE) (LPVOID);
567 typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
568
569 typedef unsigned short *PWCHAR;
570
571 #ifdef __PPC__
572 #define CONTEXT_CONTROL         1L
573 #define CONTEXT_FLOATING_POINT  2L
574 #define CONTEXT_INTEGER         4L
575 #define CONTEXT_DEBUG_REGISTERS 8L
576
577 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
578 #define CONTEXT_DEBUGGER (CONTEXT_FULL)
579
580 #else /* x86 */
581 /* The doc refered me to winnt.h, so I had to look... */
582 #define SIZE_OF_80387_REGISTERS      80
583
584 /* Values for contextflags */
585 #define CONTEXT_i386    0x10000
586 #define CONTEXT_CONTROL         (CONTEXT_i386 | 1)      
587 #define CONTEXT_INTEGER         (CONTEXT_i386 | 2)      
588 #define CONTEXT_SEGMENTS        (CONTEXT_i386 | 4)      
589 #define CONTEXT_FLOATING_POINT  (CONTEXT_i386 | 8)      
590 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
591 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
592
593 /* our own invention */
594 #define FLAG_TRACE_BIT 0x100
595 #define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
596
597 #endif
598
599 #ifdef __i386__
600
601 typedef struct _FLOATING_SAVE_AREA {
602     DWORD   ControlWord;
603     DWORD   StatusWord;
604     DWORD   TagWord;
605     DWORD   ErrorOffset;
606     DWORD   ErrorSelector;
607     DWORD   DataOffset;
608     DWORD   DataSelector;
609     BYTE    RegisterArea[80];
610     DWORD   Cr0NpxState;
611 } FLOATING_SAVE_AREA;
612
613 typedef struct _CONTEXT {
614     DWORD ContextFlags;
615
616     DWORD   Dr0;
617     DWORD   Dr1;
618     DWORD   Dr2;
619     DWORD   Dr3;
620     DWORD   Dr6;
621     DWORD   Dr7;
622
623     FLOATING_SAVE_AREA FloatSave;
624
625     DWORD   SegGs;
626     DWORD   SegFs;
627     DWORD   SegEs;
628     DWORD   SegDs;
629
630     DWORD   Edi;
631     DWORD   Esi;
632     DWORD   Ebx;
633     DWORD   Edx;
634     DWORD   Ecx;
635     DWORD   Eax;
636
637     DWORD   Ebp;
638     DWORD   Eip;
639     DWORD   SegCs;
640     DWORD   EFlags;
641     DWORD   Esp;
642     DWORD   SegSs;
643 } CONTEXT, *PCONTEXT, *LPCONTEXT;
644
645 #else /* __ppc__ */
646
647 typedef struct
648   {
649     /* Floating point registers returned when CONTEXT_FLOATING_POINT is set */
650     double Fpr0;
651     double Fpr1;
652     double Fpr2;
653     double Fpr3;
654     double Fpr4;
655     double Fpr5;
656     double Fpr6;
657     double Fpr7;
658     double Fpr8;
659     double Fpr9;
660     double Fpr10;
661     double Fpr11;
662     double Fpr12;
663     double Fpr13;
664     double Fpr14;
665     double Fpr15;
666     double Fpr16;
667     double Fpr17;
668     double Fpr18;
669     double Fpr19;
670     double Fpr20;
671     double Fpr21;
672     double Fpr22;
673     double Fpr23;
674     double Fpr24;
675     double Fpr25;
676     double Fpr26;
677     double Fpr27;
678     double Fpr28;
679     double Fpr29;
680     double Fpr30;
681     double Fpr31;
682     double Fpscr;
683
684     /* Integer registers returned when CONTEXT_INTEGER is set.  */
685     DWORD Gpr0;
686     DWORD Gpr1;
687     DWORD Gpr2;
688     DWORD Gpr3;
689     DWORD Gpr4;
690     DWORD Gpr5;
691     DWORD Gpr6;
692     DWORD Gpr7;
693     DWORD Gpr8;
694     DWORD Gpr9;
695     DWORD Gpr10;
696     DWORD Gpr11;
697     DWORD Gpr12;
698     DWORD Gpr13;
699     DWORD Gpr14;
700     DWORD Gpr15;
701     DWORD Gpr16;
702     DWORD Gpr17;
703     DWORD Gpr18;
704     DWORD Gpr19;
705     DWORD Gpr20;
706     DWORD Gpr21;
707     DWORD Gpr22;
708     DWORD Gpr23;
709     DWORD Gpr24;
710     DWORD Gpr25;
711     DWORD Gpr26;
712     DWORD Gpr27;
713     DWORD Gpr28;
714     DWORD Gpr29;
715     DWORD Gpr30;
716     DWORD Gpr31;
717
718     DWORD Cr;                   /* Condition register */
719     DWORD Xer;                  /* Fixed point exception register */
720
721     /* The following are set when CONTEXT_CONTROL is set.  */
722     DWORD Msr;                  /* Machine status register */
723     DWORD Iar;                  /* Instruction address register */
724     DWORD Lr;                   /* Link register */
725     DWORD Ctr;                  /* Control register */
726
727     /* Control which context values are returned */
728     DWORD ContextFlags;
729     DWORD Fill[3];
730
731     /* Registers returned if CONTEXT_DEBUG_REGISTERS is set.  */
732     DWORD Dr0;                          /* Breakpoint Register 1 */
733     DWORD Dr1;                          /* Breakpoint Register 2 */
734     DWORD Dr2;                          /* Breakpoint Register 3 */
735     DWORD Dr3;                          /* Breakpoint Register 4 */
736     DWORD Dr4;                          /* Breakpoint Register 5 */
737     DWORD Dr5;                          /* Breakpoint Register 6 */
738     DWORD Dr6;                          /* Debug Status Register */
739     DWORD Dr7;                          /* Debug Control Register */
740 } CONTEXT, *PCONTEXT, *LPCONTEXT;
741 #endif
742
743 typedef HANDLE *PHANDLE;
744
745 typedef struct value_ent {
746     LPWSTR   ve_valuename;
747     DWORD ve_valuelen;
748     DWORD ve_valueptr;
749     DWORD ve_type;
750 } WVALENT, *PWVALENT;
751
752 typedef long *PLONG;
753
754 typedef const void *LPCVOID;
755 typedef BYTE *LPBYTE;
756
757 typedef BYTE *PBYTE;
758
759 typedef DWORD LCID;
760 typedef DWORD *PLCID;
761
762 typedef const char *LPCSTR;
763
764 typedef char *LPSTR;
765
766 typedef const unsigned short *LPCWSTR;
767
768 typedef unsigned short RTL_ATOM;
769 typedef unsigned short *PRTL_ATOM;
770 typedef WORD ATOM;
771
772 typedef struct _COORD {
773   SHORT X;
774   SHORT Y;
775 } COORD;
776
777 typedef struct _SMALL_RECT {
778   SHORT Left;
779   SHORT Top;
780   SHORT Right;
781   SHORT Bottom;
782 } SMALL_RECT, *PSMALL_RECT;
783
784
785 typedef
786 VOID
787 (*PTIMERAPCROUTINE)(
788         LPVOID lpArgToCompletionRoutine,
789         DWORD dwTimerLowValue,
790         DWORD dwTimerHighValue
791         );
792
793 #include <ntos/except.h>
794
795 #endif /* __INCLUDE_ACPI_TYPES_H */
796
797 #endif
798