-/*
- * PROJECT: ReactOS Native Headers
- * FILE: include/ndk/kefuncs.h
- * PURPOSE: Prototypes for Kernel 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:
+
+ kefuncs.h
+
+Abstract:
+
+ Functions definitions for the Kernel services.
+
+Author:
+
+ Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
+
+--*/
+
#ifndef _KEFUNCS_H
#define _KEFUNCS_H
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
#include "ketypes.h"
-/* PROTOTYPES ****************************************************************/
+//
+// APC Functions
+//
+VOID
+NTAPI
+KeInitializeApc(
+ IN PKAPC Apc,
+ IN PKTHREAD Thread,
+ IN KAPC_ENVIRONMENT TargetEnvironment,
+ IN PKKERNEL_ROUTINE KernelRoutine,
+ IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL,
+ IN PKNORMAL_ROUTINE NormalRoutine,
+ IN KPROCESSOR_MODE Mode,
+ IN PVOID Context
+);
-BOOLEAN
+VOID
NTAPI
-KeAddSystemServiceTable(
- PULONG_PTR Base,
- PULONG Count OPTIONAL,
- ULONG Limit,
- PUCHAR Number,
- ULONG Index
+KiDeliverApc(
+ IN KPROCESSOR_MODE PreviousMode,
+ IN PVOID Reserved,
+ IN PKTRAP_FRAME TrapFrame
);
+//
+// Process/Thread Functions
+//
VOID
NTAPI
-KeInitializeApc(
- IN PKAPC Apc,
- IN PKTHREAD Thread,
- IN KAPC_ENVIRONMENT TargetEnvironment,
- IN PKKERNEL_ROUTINE KernelRoutine,
- IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL,
- IN PKNORMAL_ROUTINE NormalRoutine,
- IN KPROCESSOR_MODE Mode,
- IN PVOID Context
+KeTerminateThread(
+ IN KPRIORITY Increment
+);
+
+BOOLEAN
+NTAPI
+KeIsAttachedProcess(
+ VOID
);
VOID
NTAPI
-KeEnterKernelDebugger(VOID);
+KeSetEventBoostPriority(
+ IN PKEVENT Event,
+ IN PKTHREAD *Thread OPTIONAL
+);
+NTSTATUS
+NTAPI
+KeSetAffinityThread(
+ PKTHREAD Thread,
+ KAFFINITY Affinity
+);
+
+PKPROCESS
+NTAPI
+KeGetCurrentProcess(
+ VOID
+);
+
+BOOLEAN
+NTAPI
+KeAddSystemServiceTable(
+ PULONG_PTR Base,
+ PULONG Count OPTIONAL,
+ ULONG Limit,
+ PUCHAR Number,
+ ULONG Index
+);
+
+//
+// Spinlock Functions
+//
VOID
FASTCALL
KiAcquireSpinLock(
PKSPIN_LOCK SpinLock
);
+//
+// Interrupt Functions
+//
VOID
NTAPI
-KiDeliverApc(
- IN KPROCESSOR_MODE PreviousMode,
- IN PVOID Reserved,
- IN PKTRAP_FRAME TrapFrame
+KeInitializeInterrupt(
+ PKINTERRUPT InterruptObject,
+ PKSERVICE_ROUTINE ServiceRoutine,
+ PVOID ServiceContext,
+ PKSPIN_LOCK SpinLock,
+ ULONG Vector,
+ KIRQL Irql,
+ KIRQL SynchronizeIrql,
+ KINTERRUPT_MODE InterruptMode,
+ BOOLEAN ShareVector,
+ CHAR ProcessorNumber,
+ BOOLEAN FloatingSave
);
-VOID
+BOOLEAN
+NTAPI
+KeConnectInterrupt(
+ PKINTERRUPT InterruptObject
+);
+
+BOOLEAN
NTAPI
-KiDispatchInterrupt(VOID);
+KeDisconnectInterrupt(
+ PKINTERRUPT InterruptObject
+);
VOID
NTAPI
-KeTerminateThread(
- IN KPRIORITY Increment
+KiDispatchInterrupt(
+ VOID
);
-BOOLEAN
+VOID
NTAPI
-KeIsAttachedProcess(VOID);
+KiCoprocessorError(
+ VOID
+);
-BOOLEAN
+VOID
NTAPI
-KeIsExecutingDpc(
+KiUnexpectedInterrupt(
VOID
);
VOID
NTAPI
-KeSetEventBoostPriority(
- IN PKEVENT Event,
- IN PKTHREAD *Thread OPTIONAL
+KeEnterKernelDebugger(
+ VOID
);
+BOOLEAN
+NTAPI
+KeIsExecutingDpc(
+ VOID
+);
+
+//
+// ARC Configuration Functions
+//
PCONFIGURATION_COMPONENT_DATA
NTAPI
KeFindConfigurationNextEntry(
IN PULONG ComponentKey OPTIONAL
);
+//
+// Low-level Hardware/CPU Control Functions
+//
VOID
NTAPI
KeFlushEntireTb(
VOID
NTAPI
-KiCoprocessorError(
- VOID
-);
-
-VOID
-NTAPI
-KiUnexpectedInterrupt(
- VOID
+KeSetDmaIoCoherency(
+ IN ULONG Coherency
);
VOID
-NTAPI
-KeSetDmaIoCoherency(
- IN ULONG Coherency
+KeSetGdtSelector(
+ ULONG Entry,
+ ULONG Value1,
+ ULONG Value2
);
VOID
IN KIRQL ProfileIrql
);
-NTSTATUS
+VOID
NTAPI
-KeSetAffinityThread(
- PKTHREAD Thread,
- KAFFINITY Affinity
+KeSetTimeIncrement(
+ IN ULONG MaxIncrement,
+ IN ULONG MinIncrement
);
+//
+// Misc. Functions
+//
NTSTATUS
NTAPI
KeUserModeCallback(
OUT PULONG OutputLength
);
-VOID
-NTAPI
-KeSetTimeIncrement(
- IN ULONG MaxIncrement,
- IN ULONG MinIncrement
-);
-
-VOID
-NTAPI
-KeInitializeInterrupt(
- PKINTERRUPT InterruptObject,
- PKSERVICE_ROUTINE ServiceRoutine,
- PVOID ServiceContext,
- PKSPIN_LOCK SpinLock,
- ULONG Vector,
- KIRQL Irql,
- KIRQL SynchronizeIrql,
- KINTERRUPT_MODE InterruptMode,
- BOOLEAN ShareVector,
- CHAR ProcessorNumber,
- BOOLEAN FloatingSave
-);
-
-BOOLEAN
-NTAPI
-KeConnectInterrupt(
- PKINTERRUPT InterruptObject
-);
-
-BOOLEAN
-NTAPI
-KeDisconnectInterrupt(
- PKINTERRUPT InterruptObject
-);
-
-PKPROCESS
-NTAPI
-KeGetCurrentProcess(
- VOID
-);
-
-VOID
-KeSetGdtSelector(
- ULONG Entry,
- ULONG Value1,
- ULONG Value2
-);
-
NTSTATUS
NTAPI
KeRaiseUserException(
IN NTSTATUS ExceptionCode
- );
+);
#endif