-/*
- * PROJECT: ReactOS Native Headers
- * FILE: include/ndk/halfuncs.h
- * PURPOSE: Prototypes for exported HAL Functions not defined in DDK/IFS
- * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- * Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu. All rights reserved.
+
+Header Name:
+
+ halfuncs.h
+
+Abstract:
+
+ Function definitions for the HAL.
+
+Author:
+
+ Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
+
+--*/
+
#ifndef _HALFUNCS_H
#define _HALFUNCS_H
-/* DEPENDENCIES **************************************************************/
-#include "haltypes.h"
+//
+// Dependencies
+//
+#include <umtypes.h>
+#include <haltypes.h>
-/* FUNCTION TYPES ************************************************************/
+#ifndef NTOS_MODE_USER
-/* PROTOTYPES ****************************************************************/
+//
+// Display Functions
+//
+NTHALAPI
+BOOLEAN
+NTAPI
+HalQueryDisplayOwnership(
+ VOID
+);
+NTHALAPI
VOID
-STDCALL
-HalAcquireDisplayOwnership(
- IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
+NTAPI
+HalDisplayString(
+ IN PCHAR String
);
+NTHALAPI
BOOLEAN
-STDCALL
-HalAllProcessorsStarted(VOID);
+NTAPI
+HalQueryDisplayOwnership(
+ VOID
+);
+
+NTHALAPI
+VOID
+NTAPI
+HalReleaseDisplayOwnership(
+ VOID
+);
-NTSTATUS
-STDCALL
-HalAllocateAdapterChannel(
- IN PADAPTER_OBJECT AdapterObject,
- IN PWAIT_CONTEXT_BLOCK WaitContextBlock,
- IN ULONG NumberOfMapRegisters,
- IN PDRIVER_CONTROL ExecutionRoutine
+//
+// Initialization Functions
+//
+NTHALAPI
+BOOLEAN
+NTAPI
+HalAllProcessorsStarted(
+ VOID
);
-BOOLEAN
-STDCALL
+NTHALAPI
+VOID
+NTAPI
+HalInitializeProcessor(
+ ULONG ProcessorNumber,
+ PVOID ProcessorStack
+);
+
+NTHALAPI
+BOOLEAN
+NTAPI
+HalInitSystem(
+ ULONG BootPhase,
+ PLOADER_PARAMETER_BLOCK LoaderBlock
+);
+
+NTHALAPI
+VOID
+NTAPI
+HalReturnToFirmware(
+ FIRMWARE_REENTRY Action
+);
+
+NTHALAPI
+BOOLEAN
+NTAPI
+HalStartNextProcessor(
+ ULONG Unknown1,
+ ULONG Unknown2
+);
+
+//
+// Interrupt Functions
+//
+NTHALAPI
+BOOLEAN
+NTAPI
HalBeginSystemInterrupt(
ULONG Vector,
KIRQL Irql,
PKIRQL OldIrql
);
+NTHALAPI
BOOLEAN
-STDCALL
+NTAPI
HalDisableSystemInterrupt(
ULONG Vector,
KIRQL Irql
);
-VOID
-STDCALL
-HalDisplayString (
- IN PCHAR String
-);
-
+NTHALAPI
BOOLEAN
-STDCALL
+NTAPI
HalEnableSystemInterrupt(
ULONG Vector,
KIRQL Irql,
KINTERRUPT_MODE InterruptMode
);
+NTHALAPI
VOID
-STDCALL
+NTAPI
HalEndSystemInterrupt(
KIRQL Irql,
ULONG Vector
);
+NTHALAPI
BOOLEAN
-STDCALL
+NTAPI
HalGetEnvironmentVariable(
PCH Name,
PCH Value,
USHORT ValueLength
);
+NTHALAPI
VOID
-STDCALL
-HalInitializeProcessor(
- ULONG ProcessorNumber,
- PVOID ProcessorStack
-);
-
-BOOLEAN
-STDCALL
-HalInitSystem(
- ULONG BootPhase,
- PLOADER_PARAMETER_BLOCK LoaderBlock
+NTAPI
+HalReportResourceUsage(
+ VOID
);
-BOOLEAN
-STDCALL
-HalQueryDisplayOwnership(VOID);
-
-VOID
-STDCALL
-HalReportResourceUsage(VOID);
-
+NTHALAPI
VOID
FASTCALL
HalRequestSoftwareInterrupt(
KIRQL SoftwareInterruptRequested
);
+NTHALAPI
VOID
-STDCALL
-HalReleaseDisplayOwnership(VOID);
-
-VOID
-STDCALL
-HalReturnToFirmware(
- FIRMWARE_ENTRY Action
-);
-
-VOID
-STDCALL
+NTAPI
HalRequestIpi(
ULONG Unknown
);
-BOOLEAN
-STDCALL
-HalSetEnvironmentVariable(
- IN PCH Name,
- IN PCH Value
-);
-
-BOOLEAN
-STDCALL
-HalStartNextProcessor(
- ULONG Unknown1,
- ULONG Unknown2
-);
-
+//
+// I/O Functions
+//
+NTHALAPI
VOID
-STDCALL
+NTAPI
IoAssignDriveLetters(
struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
PSTRING NtDeviceName,
PSTRING NtSystemPathString
);
+//
+// Environment Functions
+//
+NTHALAPI
+BOOLEAN
+NTAPI
+HalSetEnvironmentVariable(
+ IN PCH Name,
+ IN PCH Value
+);
+
+#endif
#endif