2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Hardware Abstraction Layer
4 * FILE: hal/halx86/include/hal.h
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
9 /* INCLUDES ******************************************************************/
11 /* SDK/DDK/NDK Headers. */
12 #include <ddk/ntddk.h>
15 /* FIXME: NDK Headers */
18 /* Internal Kernel Headers */
19 //#include <internal/mm.h>
20 #include <internal/ke.h>
21 #include <internal/i386/ps.h>
23 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
25 //Temporary hack below.
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
,
35 VOID STDCALL
KeEnterKernelDebugger (VOID
);
36 VOID FASTCALL
KiAcquireSpinLock(PKSPIN_LOCK SpinLock
);
37 VOID FASTCALL
KiReleaseSpinLock(PKSPIN_LOCK SpinLock
);
38 VOID STDCALL
KiDispatchInterrupt(VOID
);
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
,
48 IN ULONG PagedPoolCharge OPTIONAL
,
49 IN ULONG NonPagedPoolCharge OPTIONAL
,
53 /* Internal HAL Headers */
61 /* Helper Macros FIXME: NDK */
62 #define ROUNDUP(a,b) ((((a)+(b)-1)/(b))*(b))
63 #define ROUND_DOWN(N, S) ((N) - ((N) % (S)))
65 #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
68 #define LOWORD(l) ((WORD)(l))