- Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h
[reactos.git] / reactos / include / ndk / kefuncs.h
index e457afd..5eaa194 100644 (file)
-/*
- * 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(
@@ -53,41 +108,70 @@ KiReleaseSpinLock(
     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(
@@ -107,6 +191,9 @@ KeFindConfigurationEntry(
     IN PULONG ComponentKey OPTIONAL
 );
 
+//
+// Low-level Hardware/CPU Control Functions
+//
 VOID
 NTAPI
 KeFlushEntireTb(
@@ -116,20 +203,15 @@ 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
@@ -138,13 +220,16 @@ KeSetProfileIrql(
     IN KIRQL ProfileIrql
 );
 
-NTSTATUS
+VOID
 NTAPI
-KeSetAffinityThread(
-    PKTHREAD Thread,
-    KAFFINITY Affinity
+KeSetTimeIncrement(
+    IN ULONG MaxIncrement,
+    IN ULONG MinIncrement
 );
 
+//
+// Misc. Functions
+//
 NTSTATUS
 NTAPI
 KeUserModeCallback(
@@ -155,58 +240,10 @@ 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