953424d63a71acbd92e77dae807fd32a003711c2
[reactos.git] / reactos / include / internal / i386 / hal.h
1 /*
2 *
3 */
4
5 #ifndef __INTERNAL_HAL_HAL_H
6 #define __INTERNAL_HAL_HAL_H
7
8 typedef struct
9 {
10 unsigned short previous_task;
11 unsigned short reserved1;
12 unsigned long esp0;
13 unsigned short ss0;
14 unsigned short reserved2;
15 unsigned long esp1;
16 unsigned short ss1;
17 unsigned short reserved3;
18 unsigned long esp2;
19 unsigned short ss2;
20 unsigned short reserved4;
21 unsigned long cr3;
22 unsigned long eip;
23 unsigned long eflags;
24 unsigned long eax;
25 unsigned long ecx;
26 unsigned long edx;
27 unsigned long ebx;
28 unsigned long esp;
29 unsigned long ebp;
30 unsigned long esi;
31 unsigned long edi;
32 unsigned short es;
33 unsigned short reserved5;
34 unsigned short cs;
35 unsigned short reserved6;
36 unsigned short ss;
37 unsigned short reserved7;
38 unsigned short ds;
39 unsigned short reserved8;
40 unsigned short fs;
41 unsigned short reserved9;
42 unsigned short gs;
43 unsigned short reserved10;
44 unsigned short ldt;
45 unsigned short reserved11;
46 unsigned short trap;
47 unsigned short iomap_base;
48
49 unsigned short nr;
50 PVOID KernelStackBase;
51 PVOID SavedKernelEsp;
52 PVOID SavedKernelStackBase;
53
54 unsigned char io_bitmap[1];
55 } hal_thread_state;
56
57
58 /*
59 * FUNCTION: Probes for a PCI bus
60 * RETURNS: True if found
61 */
62 BOOL HalPciProbe(void);
63
64 /*
65 * FUNCTION: Probes for a BIOS32 extension
66 */
67 VOID Hal_bios32_probe(VOID);
68
69 /*
70 * FUNCTION: Determines if a a bios32 service is present
71 */
72 BOOLEAN Hal_bios32_is_service_present(ULONG service);
73
74
75 #endif /* __INTERNAL_HAL_HAL_H */