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