Ditto for HAL
[reactos.git] / reactos / hal / halx86 / include / hal.h
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 /* INCLUDES ******************************************************************/
10
11 /* SDK/DDK/NDK Headers. */
12 #include <ddk/ntddk.h>
13 #include <stdio.h>
14
15 /* FIXME: NDK Headers */
16 #include <roskrnl.h>
17
18 /* Internal Kernel Headers */
19 //#include <internal/mm.h>
20 #include <internal/ke.h>
21 #include <internal/i386/ps.h>
22
23 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
24
25 //Temporary hack below.
26 PVOID STDCALL
27 MmAllocateContiguousAlignedMemory(IN ULONG NumberOfBytes,
28 IN PHYSICAL_ADDRESS LowestAcceptableAddress,
29 IN PHYSICAL_ADDRESS HighestAcceptableAddress,
30 IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
31 IN MEMORY_CACHING_TYPE CacheType OPTIONAL,
32 IN ULONG Alignment);
33
34 /* FIXME: NDK */
35 VOID STDCALL KeEnterKernelDebugger (VOID);
36 VOID FASTCALL KiAcquireSpinLock(PKSPIN_LOCK SpinLock);
37 VOID FASTCALL KiReleaseSpinLock(PKSPIN_LOCK SpinLock);
38 VOID STDCALL KiDispatchInterrupt(VOID);
39 NTSTATUS
40 STDCALL
41 ObCreateObject (
42 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL,
43 IN POBJECT_TYPE ObjectType,
44 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
45 IN KPROCESSOR_MODE AccessMode,
46 IN OUT PVOID ParseContext OPTIONAL,
47 IN ULONG ObjectSize,
48 IN ULONG PagedPoolCharge OPTIONAL,
49 IN ULONG NonPagedPoolCharge OPTIONAL,
50 OUT PVOID *Object
51 );
52
53 /* Internal HAL Headers */
54 #include "apic.h"
55 #include "bus.h"
56 #include "halirq.h"
57 #include "halp.h"
58 #include "mps.h"
59 #include "ioapic.h"
60
61 /* Helper Macros FIXME: NDK */
62 #define ROUNDUP(a,b) ((((a)+(b)-1)/(b))*(b))
63 #define ROUND_DOWN(N, S) ((N) - ((N) % (S)))
64 #ifndef HIWORD
65 #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
66 #endif
67 #ifndef LOWORD
68 #define LOWORD(l) ((WORD)(l))
69 #endif
70
71 /* EOF */