mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 13:33:23 +00:00
[ntos]
- Fix several issues with msvc in ntoskrnl - Add ATTRIB_NORETURN definition which will be used by function pointers because msvc doesn't like DECLSPEC_NORETURN in function pointers svn path=/trunk/; revision=48287
This commit is contained in:
parent
f126b1d282
commit
91f37cae9a
17 changed files with 70 additions and 52 deletions
|
@ -28,10 +28,9 @@ VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
FASTCALL
|
|
||||||
VOID
|
VOID
|
||||||
DECLSPEC_NORETURN
|
ATTRIB_NORETURN
|
||||||
(*PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(
|
(FASTCALL *PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(
|
||||||
IN PKTRAP_FRAME TrapFrame
|
IN PKTRAP_FRAME TrapFrame
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -558,8 +557,8 @@ VOID NTAPI HalpInitializePICs(IN BOOLEAN EnableInterrupts);
|
||||||
VOID HalpApcInterrupt(VOID);
|
VOID HalpApcInterrupt(VOID);
|
||||||
VOID HalpDispatchInterrupt(VOID);
|
VOID HalpDispatchInterrupt(VOID);
|
||||||
VOID HalpDispatchInterrupt2(VOID);
|
VOID HalpDispatchInterrupt2(VOID);
|
||||||
VOID FASTCALL DECLSPEC_NORETURN HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame);
|
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame);
|
||||||
VOID FASTCALL DECLSPEC_NORETURN HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame);
|
DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame);
|
||||||
|
|
||||||
/* timer.c */
|
/* timer.c */
|
||||||
VOID NTAPI HalpInitializeClock(VOID);
|
VOID NTAPI HalpInitializeClock(VOID);
|
||||||
|
|
|
@ -205,6 +205,12 @@ allow GCC to optimize away some EH unwind code, at least in DW2 case. */
|
||||||
#define _CRT_UNUSED(x) (void)x
|
#define _CRT_UNUSED(x) (void)x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define ATTRIB_NORETURN
|
||||||
|
#else
|
||||||
|
#define ATTRIB_NORETURN DECLSPEC_NORETURN
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "_mingw_mac.h"
|
#include "_mingw_mac.h"
|
||||||
|
|
||||||
#endif /* !_INC_MINGW */
|
#endif /* !_INC_MINGW */
|
||||||
|
|
|
@ -136,7 +136,7 @@ extern "C" {
|
||||||
#define _JMP_BUF_DEFINED
|
#define _JMP_BUF_DEFINED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline __attribute__((always_inline)) void * mingw_getsp(void)
|
FORCEINLINE void * mingw_getsp(void)
|
||||||
{
|
{
|
||||||
void *value;
|
void *value;
|
||||||
#if defined(__x86_64)
|
#if defined(__x86_64)
|
||||||
|
|
|
@ -489,7 +489,9 @@ extern "C" {
|
||||||
|
|
||||||
__MINGW_EXTENSION lldiv_t __cdecl lldiv(long long, long long);
|
__MINGW_EXTENSION lldiv_t __cdecl lldiv(long long, long long);
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
__MINGW_EXTENSION __CRT_INLINE long long __cdecl llabs(long long _j) { return (_j >= 0 ? _j : -_j); }
|
__MINGW_EXTENSION __CRT_INLINE long long __cdecl llabs(long long _j) { return (_j >= 0 ? _j : -_j); }
|
||||||
|
#endif
|
||||||
|
|
||||||
__MINGW_EXTENSION long long __cdecl strtoll(const char* __restrict__, char** __restrict, int);
|
__MINGW_EXTENSION long long __cdecl strtoll(const char* __restrict__, char** __restrict, int);
|
||||||
__MINGW_EXTENSION unsigned long long __cdecl strtoull(const char* __restrict__, char** __restrict__, int);
|
__MINGW_EXTENSION unsigned long long __cdecl strtoull(const char* __restrict__, char** __restrict__, int);
|
||||||
|
|
|
@ -1230,6 +1230,8 @@ ExpInitializeExecutive(IN ULONG Cpu,
|
||||||
SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_ARCHITECTURE;
|
SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_ARCHITECTURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern BOOLEAN AllowPagedPool;
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
Phase1InitializationDiscard(IN PVOID Context)
|
Phase1InitializationDiscard(IN PVOID Context)
|
||||||
|
@ -1860,7 +1862,6 @@ Phase1InitializationDiscard(IN PVOID Context)
|
||||||
InbvEnableDisplayString(TRUE);
|
InbvEnableDisplayString(TRUE);
|
||||||
|
|
||||||
/* Enough fun for now */
|
/* Enough fun for now */
|
||||||
extern BOOLEAN AllowPagedPool;
|
|
||||||
AllowPagedPool = FALSE;
|
AllowPagedPool = FALSE;
|
||||||
|
|
||||||
/* Wait 5 seconds for it to initialize */
|
/* Wait 5 seconds for it to initialize */
|
||||||
|
|
|
@ -455,7 +455,7 @@ extern ULONG Ke386CacheAlignment;
|
||||||
extern ULONG KiFastSystemCallDisable;
|
extern ULONG KiFastSystemCallDisable;
|
||||||
extern UCHAR KiDebugRegisterTrapOffsets[9];
|
extern UCHAR KiDebugRegisterTrapOffsets[9];
|
||||||
extern UCHAR KiDebugRegisterContextOffsets[9];
|
extern UCHAR KiDebugRegisterContextOffsets[9];
|
||||||
extern VOID __cdecl KiTrap02(VOID);
|
extern DECLSPEC_NORETURN VOID __cdecl KiTrap02(VOID);
|
||||||
extern VOID __cdecl KiTrap08(VOID);
|
extern VOID __cdecl KiTrap08(VOID);
|
||||||
extern VOID __cdecl KiTrap13(VOID);
|
extern VOID __cdecl KiTrap13(VOID);
|
||||||
extern VOID __cdecl KiFastCallEntry(VOID);
|
extern VOID __cdecl KiFastCallEntry(VOID);
|
||||||
|
|
|
@ -940,6 +940,7 @@ KiContinue(
|
||||||
IN PKTRAP_FRAME TrapFrame
|
IN PKTRAP_FRAME TrapFrame
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
KiServiceExit(
|
KiServiceExit(
|
||||||
|
@ -947,6 +948,7 @@ KiServiceExit(
|
||||||
IN NTSTATUS Status
|
IN NTSTATUS Status
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
KiServiceExit2(
|
KiServiceExit2(
|
||||||
|
|
|
@ -199,7 +199,7 @@ DECLSPEC_NORETURN VOID FASTCALL KiTrapReturn(IN PKTRAP_FRAME TrapFrame);
|
||||||
DECLSPEC_NORETURN VOID FASTCALL KiTrapReturnNoSegments(IN PKTRAP_FRAME TrapFrame);
|
DECLSPEC_NORETURN VOID FASTCALL KiTrapReturnNoSegments(IN PKTRAP_FRAME TrapFrame);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
DECLSPEC_NORETURN
|
ATTRIB_NORETURN
|
||||||
VOID
|
VOID
|
||||||
(FASTCALL *PFAST_SYSTEM_CALL_EXIT)(
|
(FASTCALL *PFAST_SYSTEM_CALL_EXIT)(
|
||||||
IN PKTRAP_FRAME TrapFrame
|
IN PKTRAP_FRAME TrapFrame
|
||||||
|
|
|
@ -29,8 +29,8 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
IopReadyDeviceObjects(IN PDRIVER_OBJECT Driver)
|
IopReadyDeviceObjects(IN PDRIVER_OBJECT Driver)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
PDEVICE_OBJECT DeviceObject;
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
/* Set the driver as initialized */
|
/* Set the driver as initialized */
|
||||||
Driver->Flags |= DRVO_INITIALIZED;
|
Driver->Flags |= DRVO_INITIALIZED;
|
||||||
|
|
|
@ -3035,10 +3035,11 @@ NTAPI
|
||||||
PpIrpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject,
|
PpIrpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject,
|
||||||
OUT PDEVICE_CAPABILITIES DeviceCaps)
|
OUT PDEVICE_CAPABILITIES DeviceCaps)
|
||||||
{
|
{
|
||||||
PAGED_CODE();
|
|
||||||
PVOID Dummy;
|
PVOID Dummy;
|
||||||
IO_STACK_LOCATION Stack;
|
IO_STACK_LOCATION Stack;
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
/* Set up the Header */
|
/* Set up the Header */
|
||||||
RtlZeroMemory(DeviceCaps, sizeof(DEVICE_CAPABILITIES));
|
RtlZeroMemory(DeviceCaps, sizeof(DEVICE_CAPABILITIES));
|
||||||
DeviceCaps->Size = sizeof(DEVICE_CAPABILITIES);
|
DeviceCaps->Size = sizeof(DEVICE_CAPABILITIES);
|
||||||
|
|
|
@ -1173,7 +1173,12 @@ KiIsNpxPresent(VOID)
|
||||||
Cr0 = __readcr0() & ~(CR0_MP | CR0_TS | CR0_EM | CR0_ET);
|
Cr0 = __readcr0() & ~(CR0_MP | CR0_TS | CR0_EM | CR0_ET);
|
||||||
|
|
||||||
/* Store on FPU stack */
|
/* Store on FPU stack */
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
__asm fninit;
|
||||||
|
__asm fnstsw Magic;
|
||||||
|
#else
|
||||||
asm volatile ("fninit;" "fnstsw %0" : "+m"(Magic));
|
asm volatile ("fninit;" "fnstsw %0" : "+m"(Magic));
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Magic should now be cleared */
|
/* Magic should now be cleared */
|
||||||
if (Magic & 0xFF)
|
if (Magic & 0xFF)
|
||||||
|
@ -1210,7 +1215,7 @@ KiIsNpxErrataPresent(VOID)
|
||||||
__writecr0(Cr0 & ~(CR0_MP | CR0_TS | CR0_EM));
|
__writecr0(Cr0 & ~(CR0_MP | CR0_TS | CR0_EM));
|
||||||
|
|
||||||
/* Initialize FPU state */
|
/* Initialize FPU state */
|
||||||
asm volatile ("fninit");
|
Ke386FnInit();
|
||||||
|
|
||||||
/* Multiply the magic values and divide, we should get the result back */
|
/* Multiply the magic values and divide, we should get the result back */
|
||||||
Value1 = 4195835.0;
|
Value1 = 4195835.0;
|
||||||
|
@ -1227,8 +1232,8 @@ KiIsNpxErrataPresent(VOID)
|
||||||
return ErrataPresent;
|
return ErrataPresent;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTAPI
|
|
||||||
VOID
|
VOID
|
||||||
|
NTAPI
|
||||||
KiFlushNPXState(IN PFLOATING_SAVE_AREA SaveArea)
|
KiFlushNPXState(IN PFLOATING_SAVE_AREA SaveArea)
|
||||||
{
|
{
|
||||||
ULONG EFlags, Cr0;
|
ULONG EFlags, Cr0;
|
||||||
|
|
|
@ -1106,9 +1106,9 @@ Handled:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code,
|
KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code,
|
||||||
IN ULONG_PTR Address,
|
IN ULONG_PTR Address,
|
||||||
IN ULONG ParameterCount,
|
IN ULONG ParameterCount,
|
||||||
|
@ -1145,9 +1145,9 @@ KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code,
|
||||||
KiEoiHelper(TrapFrame);
|
KiEoiHelper(TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiSystemFatalException(IN ULONG ExceptionCode,
|
KiSystemFatalException(IN ULONG ExceptionCode,
|
||||||
IN PKTRAP_FRAME TrapFrame)
|
IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,9 +184,8 @@ KiUnexpectedInterruptTailHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
FASTCALL
|
|
||||||
VOID
|
VOID
|
||||||
(PKI_INTERRUPT_DISPATCH)(
|
(FASTCALL *PKI_INTERRUPT_DISPATCH)(
|
||||||
IN PKTRAP_FRAME TrapFrame,
|
IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PKINTERRUPT Interrupt
|
IN PKINTERRUPT Interrupt
|
||||||
);
|
);
|
||||||
|
@ -310,7 +309,7 @@ KiInterruptTemplateHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
KiEnterInterruptTrap(TrapFrame);
|
KiEnterInterruptTrap(TrapFrame);
|
||||||
|
|
||||||
/* Call the correct dispatcher */
|
/* Call the correct dispatcher */
|
||||||
((PKI_INTERRUPT_DISPATCH*)Interrupt->DispatchAddress)(TrapFrame, Interrupt);
|
((PKI_INTERRUPT_DISPATCH)Interrupt->DispatchAddress)(TrapFrame, Interrupt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
/* Boot and double-fault/NMI/DPC stack */
|
/* Boot and double-fault/NMI/DPC stack */
|
||||||
UCHAR P0BootStackData[KERNEL_STACK_SIZE] __attribute__((aligned (16))) = {0};
|
UCHAR DECLSPEC_ALIGN(16) P0BootStackData[KERNEL_STACK_SIZE] = {0};
|
||||||
UCHAR KiDoubleFaultStackData[KERNEL_STACK_SIZE] __attribute__((aligned (16))) = {0};
|
UCHAR DECLSPEC_ALIGN(16) KiDoubleFaultStackData[KERNEL_STACK_SIZE] = {0};
|
||||||
ULONG_PTR P0BootStack = (ULONG_PTR)&P0BootStackData[KERNEL_STACK_SIZE];
|
ULONG_PTR P0BootStack = (ULONG_PTR)&P0BootStackData[KERNEL_STACK_SIZE];
|
||||||
ULONG_PTR KiDoubleFaultStack = (ULONG_PTR)&KiDoubleFaultStackData[KERNEL_STACK_SIZE];
|
ULONG_PTR KiDoubleFaultStack = (ULONG_PTR)&KiDoubleFaultStackData[KERNEL_STACK_SIZE];
|
||||||
|
|
||||||
|
|
|
@ -102,9 +102,9 @@ KiCommonExit(IN PKTRAP_FRAME TrapFrame, const ULONG Flags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
|
KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Common trap exit code */
|
/* Common trap exit code */
|
||||||
|
@ -123,9 +123,9 @@ KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiTrapReturnNoSegments(TrapFrame);
|
KiTrapReturnNoSegments(TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiServiceExit(IN PKTRAP_FRAME TrapFrame,
|
KiServiceExit(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN NTSTATUS Status)
|
IN NTSTATUS Status)
|
||||||
{
|
{
|
||||||
|
@ -161,9 +161,9 @@ KiServiceExit(IN PKTRAP_FRAME TrapFrame,
|
||||||
KiSystemCallReturn(TrapFrame);
|
KiSystemCallReturn(TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
|
KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Common trap exit code */
|
/* Common trap exit code */
|
||||||
|
@ -188,9 +188,9 @@ KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
|
||||||
|
|
||||||
/* TRAP HANDLERS **************************************************************/
|
/* TRAP HANDLERS **************************************************************/
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
|
KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN ULONG Parameter1,
|
IN ULONG Parameter1,
|
||||||
IN ULONG Parameter2,
|
IN ULONG Parameter2,
|
||||||
|
@ -212,9 +212,9 @@ KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
|
KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PKTHREAD Thread,
|
IN PKTHREAD Thread,
|
||||||
IN PFX_SAVE_AREA SaveArea)
|
IN PFX_SAVE_AREA SaveArea)
|
||||||
|
@ -369,9 +369,9 @@ KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
KeBugCheckWithTf(TRAP_CAUSE_UNKNOWN, 1, Error, 0, 0, TrapFrame);
|
KeBugCheckWithTf(TRAP_CAUSE_UNKNOWN, 1, Error, 0, 0, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -389,9 +389,9 @@ KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -410,8 +410,9 @@ KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
|
||||||
DECLSPEC_NORETURN
|
DECLSPEC_NORETURN
|
||||||
|
VOID
|
||||||
|
__cdecl
|
||||||
KiTrap02(VOID)
|
KiTrap02(VOID)
|
||||||
{
|
{
|
||||||
PKTSS Tss, NmiTss;
|
PKTSS Tss, NmiTss;
|
||||||
|
@ -556,9 +557,9 @@ KiTrap02(VOID)
|
||||||
KiSystemFatalException(EXCEPTION_NMI, NULL);
|
KiSystemFatalException(EXCEPTION_NMI, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -568,9 +569,9 @@ KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiDebugHandler(TrapFrame, BREAKPOINT_BREAK, 0, 0);
|
KiDebugHandler(TrapFrame, BREAKPOINT_BREAK, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -588,9 +589,9 @@ KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -611,9 +612,9 @@ KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
PUCHAR Instruction;
|
PUCHAR Instruction;
|
||||||
|
@ -693,9 +694,9 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
PKTHREAD Thread, NpxThread;
|
PKTHREAD Thread, NpxThread;
|
||||||
|
@ -803,18 +804,18 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiNpxHandler(TrapFrame, Thread, SaveArea);
|
KiNpxHandler(TrapFrame, Thread, SaveArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap08Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap08Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* FIXME: Not handled */
|
/* FIXME: Not handled */
|
||||||
KiSystemFatalException(EXCEPTION_DOUBLE_FAULT, TrapFrame);
|
KiSystemFatalException(EXCEPTION_DOUBLE_FAULT, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -825,9 +826,9 @@ KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_NPX_OVERRUN, TrapFrame);
|
KiSystemFatalException(EXCEPTION_NPX_OVERRUN, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -840,9 +841,9 @@ KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_INVALID_TSS, TrapFrame);
|
KiSystemFatalException(EXCEPTION_INVALID_TSS, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -853,9 +854,9 @@ KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_SEGMENT_NOT_PRESENT, TrapFrame);
|
KiSystemFatalException(EXCEPTION_SEGMENT_NOT_PRESENT, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -866,9 +867,9 @@ KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_STACK_FAULT, TrapFrame);
|
KiSystemFatalException(EXCEPTION_STACK_FAULT, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
ULONG i, j, Iopl;
|
ULONG i, j, Iopl;
|
||||||
|
@ -1145,9 +1146,9 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiTrapReturn(TrapFrame);
|
KiTrapReturn(TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
PKTHREAD Thread;
|
PKTHREAD Thread;
|
||||||
|
@ -1260,9 +1261,9 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -1273,9 +1274,9 @@ KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_RESERVED_TRAP, TrapFrame);
|
KiSystemFatalException(EXCEPTION_RESERVED_TRAP, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
PKTHREAD Thread;
|
PKTHREAD Thread;
|
||||||
|
@ -1301,9 +1302,9 @@ KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiNpxHandler(TrapFrame, Thread, SaveArea);
|
KiNpxHandler(TrapFrame, Thread, SaveArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -1314,9 +1315,9 @@ KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiSystemFatalException(EXCEPTION_ALIGNMENT_CHECK, TrapFrame);
|
KiSystemFatalException(EXCEPTION_ALIGNMENT_CHECK, TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiTrap13Handler(IN PKTRAP_FRAME TrapFrame)
|
KiTrap13Handler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
PKTHREAD Thread;
|
PKTHREAD Thread;
|
||||||
|
@ -1417,9 +1418,9 @@ KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
while (TRUE);
|
while (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
|
KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -1434,9 +1435,9 @@ KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
TrapFrame);
|
TrapFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
|
KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
{
|
{
|
||||||
/* Save trap frame */
|
/* Save trap frame */
|
||||||
|
@ -1449,9 +1450,9 @@ KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
KiDebugHandler(TrapFrame, TrapFrame->Eax, TrapFrame->Ecx, TrapFrame->Edx);
|
KiDebugHandler(TrapFrame, TrapFrame->Eax, TrapFrame->Ecx, TrapFrame->Edx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FORCEINLINE
|
FORCEINLINE
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiSystemCall(IN PKTRAP_FRAME TrapFrame,
|
KiSystemCall(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PVOID Arguments)
|
IN PVOID Arguments)
|
||||||
{
|
{
|
||||||
|
@ -1574,9 +1575,9 @@ ExitCall:
|
||||||
KiServiceExit(TrapFrame, Result);
|
KiServiceExit(TrapFrame, Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiSystemServiceHandler(IN PKTRAP_FRAME TrapFrame,
|
KiSystemServiceHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PVOID Arguments)
|
IN PVOID Arguments)
|
||||||
{
|
{
|
||||||
|
@ -1584,9 +1585,9 @@ KiSystemServiceHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
KiSystemCall(TrapFrame, Arguments);
|
KiSystemCall(TrapFrame, Arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLSPEC_NORETURN
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
DECLSPEC_NORETURN
|
|
||||||
KiFastCallEntryHandler(IN PKTRAP_FRAME TrapFrame,
|
KiFastCallEntryHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
IN PVOID Arguments)
|
IN PVOID Arguments)
|
||||||
{
|
{
|
||||||
|
|
|
@ -145,6 +145,8 @@ MiComputeNonPagedPoolVa(IN ULONG FreePages)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern KEVENT ZeroPageThreadEvent;
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||||
|
@ -497,7 +499,6 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||||
MiInitializeColorTables();
|
MiInitializeColorTables();
|
||||||
|
|
||||||
/* ReactOS Stuff */
|
/* ReactOS Stuff */
|
||||||
extern KEVENT ZeroPageThreadEvent;
|
|
||||||
KeInitializeEvent(&ZeroPageThreadEvent, NotificationEvent, TRUE);
|
KeInitializeEvent(&ZeroPageThreadEvent, NotificationEvent, TRUE);
|
||||||
|
|
||||||
/* Build the PFN Database */
|
/* Build the PFN Database */
|
||||||
|
|
|
@ -566,6 +566,8 @@ MiRemoveHeadList(IN PMMPFNLIST ListHead)
|
||||||
return Pfn1;
|
return Pfn1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern KEVENT ZeroPageThreadEvent;
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
|
MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
|
||||||
|
@ -674,7 +676,6 @@ MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Notify zero page thread if enough pages are on the free list now */
|
/* Notify zero page thread if enough pages are on the free list now */
|
||||||
extern KEVENT ZeroPageThreadEvent;
|
|
||||||
if ((MmFreePageListHead.Total > 8) && !(KeReadStateEvent(&ZeroPageThreadEvent)))
|
if ((MmFreePageListHead.Total > 8) && !(KeReadStateEvent(&ZeroPageThreadEvent)))
|
||||||
{
|
{
|
||||||
/* This is ReactOS-specific */
|
/* This is ReactOS-specific */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue