xref: /reactos/hal/halx86/include/hal.h (revision a0fb02f7)
1c2c66affSColin Finck /*
2c2c66affSColin Finck  * COPYRIGHT:       See COPYING in the top level directory
3c2c66affSColin Finck  * PROJECT:         ReactOS Hardware Abstraction Layer
4c2c66affSColin Finck  * FILE:            hal/halx86/include/hal.h
5c2c66affSColin Finck  * PURPOSE:         HAL Header
6c2c66affSColin Finck  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
7c2c66affSColin Finck  */
8c2c66affSColin Finck 
9c2c66affSColin Finck #ifndef _HAL_PCH_
10c2c66affSColin Finck #define _HAL_PCH_
11c2c66affSColin Finck 
12c2c66affSColin Finck /* INCLUDES ******************************************************************/
13c2c66affSColin Finck 
14c2c66affSColin Finck /* C Headers */
15c2c66affSColin Finck #include <stdio.h>
16c2c66affSColin Finck 
17c2c66affSColin Finck /* WDK HAL Compilation hack */
18c2c66affSColin Finck #include <excpt.h>
19c2c66affSColin Finck #include <ntdef.h>
20c2c66affSColin Finck #ifndef _MINIHAL_
21c2c66affSColin Finck #undef NTSYSAPI
22c2c66affSColin Finck #define NTSYSAPI __declspec(dllimport)
23c2c66affSColin Finck #else
24c2c66affSColin Finck #undef NTSYSAPI
25c2c66affSColin Finck #define NTSYSAPI
26c2c66affSColin Finck #endif
27c2c66affSColin Finck 
28c2c66affSColin Finck /* IFS/DDK/NDK Headers */
29c2c66affSColin Finck #include <ntifs.h>
30c2c66affSColin Finck #include <arc/arc.h>
31c2c66affSColin Finck 
32c2c66affSColin Finck #include <ndk/asm.h>
33c2c66affSColin Finck #include <ndk/halfuncs.h>
34c2c66affSColin Finck #include <ndk/inbvfuncs.h>
35c2c66affSColin Finck #include <ndk/iofuncs.h>
36c2c66affSColin Finck #include <ndk/kefuncs.h>
37c2c66affSColin Finck #include <ndk/rtlfuncs.h>
38c2c66affSColin Finck 
39f3e1697cSVictor Perevertkin /* For MSVC, this is required before using DATA_SEG (used in pcidata) */
40f3e1697cSVictor Perevertkin #ifdef _MSC_VER
41f3e1697cSVictor Perevertkin # pragma section("INIT", read,execute,discard)
423adf4508SJérôme Gardou # pragma section("INITDATA", read,discard)
43f3e1697cSVictor Perevertkin #endif
44f3e1697cSVictor Perevertkin 
45c2c66affSColin Finck /* Internal shared PCI and ACPI header */
46c2c66affSColin Finck #include <drivers/pci/pci.h>
47c2c66affSColin Finck #include <drivers/acpi/acpi.h>
48c2c66affSColin Finck 
49c2c66affSColin Finck /* Internal kernel headers */
50c2c66affSColin Finck #ifdef _M_AMD64
51c2c66affSColin Finck #include <internal/amd64/ke.h>
52c2c66affSColin Finck #include <internal/amd64/mm.h>
53c2c66affSColin Finck #include "internal/amd64/intrin_i.h"
54c2c66affSColin Finck #else
55*a0fb02f7STimo Kreuzer #define KeGetCurrentThread _KeGetCurrentThread
56c2c66affSColin Finck #include <internal/i386/ke.h>
57c2c66affSColin Finck #include <internal/i386/mm.h>
58c2c66affSColin Finck #include "internal/i386/intrin_i.h"
59c2c66affSColin Finck #endif
60c2c66affSColin Finck 
61c2c66affSColin Finck #define TAG_HAL    ' laH'
62c2c66affSColin Finck #define TAG_BUS_HANDLER 'BusH'
63c2c66affSColin Finck 
64c2c66affSColin Finck /* Internal HAL Headers */
65c2c66affSColin Finck #include "bus.h"
66c2c66affSColin Finck #include "halirq.h"
67c2c66affSColin Finck #include "haldma.h"
68b36018ffSDmitry Borisov #if defined(SARCH_PC98)
69b36018ffSDmitry Borisov #include <drivers/pc98/cpu.h>
70b36018ffSDmitry Borisov #include <drivers/pc98/pic.h>
71b36018ffSDmitry Borisov #include <drivers/pc98/pit.h>
72b36018ffSDmitry Borisov #include <drivers/pc98/rtc.h>
73b36018ffSDmitry Borisov #include <drivers/pc98/sysport.h>
74b36018ffSDmitry Borisov #include <drivers/pc98/video.h>
75b36018ffSDmitry Borisov #else
7618ae48ceSDmitry Borisov #include "halhw.h"
77b36018ffSDmitry Borisov #endif
78c2c66affSColin Finck #include "halp.h"
79c2c66affSColin Finck #include "mps.h"
80c2c66affSColin Finck #include "halacpi.h"
81c2c66affSColin Finck 
82c2c66affSColin Finck #endif /* _HAL_PCH_ */
83