mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
- Cleanup some stray header issues for ARM.
- Separate kernel FIXMEs into clearer groupings: - TODO FIXMEs are highest priority, as they are missing required functionality. - USER FIXMEs are the next highest priority, since they will be required for user mode support. - V6 FIXMEs and future groupings are lowest priority, since they relate to hardware support we don't care about for now. svn path=/trunk/; revision=34583
This commit is contained in:
parent
7272eb9108
commit
b95845bf85
7 changed files with 42 additions and 53 deletions
|
@ -52,4 +52,7 @@ KeFlushTb(
|
||||||
#define KeArchInitThreadWithContext KeArmInitThreadWithContext
|
#define KeArchInitThreadWithContext KeArmInitThreadWithContext
|
||||||
#define KiSystemStartupReal KiSystemStartup
|
#define KiSystemStartupReal KiSystemStartup
|
||||||
|
|
||||||
|
#define KiGetPreviousMode(tf) \
|
||||||
|
((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -984,6 +984,30 @@ KiSaveProcessorControlState(
|
||||||
OUT PKPROCESSOR_STATE ProcessorState
|
OUT PKPROCESSOR_STATE ProcessorState
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
KiRetireDpcList(
|
||||||
|
IN PKPRCB Prcb
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
KiQuantumEnd(
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
KiSystemService(
|
||||||
|
IN PKTHREAD Thread,
|
||||||
|
IN PKTRAP_FRAME TrapFrame,
|
||||||
|
IN ULONG Instruction
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
KiIdleLoop(
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
#include "ke_x.h"
|
#include "ke_x.h"
|
||||||
|
|
||||||
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */
|
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */
|
||||||
|
|
|
@ -9,16 +9,10 @@
|
||||||
/* INCLUDES *******************************************************************/
|
/* INCLUDES *******************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
#include <internal/arm/ksarm.h>
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
/* GLOBALS ********************************************************************/
|
|
||||||
|
|
||||||
#include <internal/arm/ksarm.h>
|
|
||||||
#define KiGetPreviousMode(tf) \
|
|
||||||
((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode
|
|
||||||
|
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -194,7 +188,7 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
|
||||||
Context.ContextFlags = CONTEXT_FULL;
|
Context.ContextFlags = CONTEXT_FULL;
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME: Fuck floating point
|
// FIXME-V6: VFP Support
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -290,7 +284,7 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: User mode
|
// FIXME-USER: Do user-mode exception handling
|
||||||
//
|
//
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,21 +23,13 @@ extern PVOID KiArmVectorTable;
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
//
|
|
||||||
// FIXME: Header cleanup
|
|
||||||
//
|
|
||||||
VOID
|
|
||||||
KiIdleLoop(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DebugService2(IN ULONG Arg1,
|
DebugService2(IN ULONG Arg1,
|
||||||
IN ULONG Arg2,
|
IN ULONG Arg2,
|
||||||
IN ULONG Service)
|
IN ULONG Service)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: TODO
|
// FIXME-TODO: Implement this for symbol load and such
|
||||||
//
|
//
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -230,7 +222,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: No MP Support
|
// FIXME-V6: See if we want to support MP
|
||||||
//
|
//
|
||||||
DPRINT1("ARM MPCore not supported\n");
|
DPRINT1("ARM MPCore not supported\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -224,7 +224,7 @@ KeUpdateRunTime(IN PKTRAP_FRAME TrapFrame,
|
||||||
Prcb->DpcTime++;
|
Prcb->DpcTime++;
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME: Handle DPC checks
|
// FIXME-TODO: Handle DPC checks
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,30 +13,6 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
/* GLOBALS ********************************************************************/
|
|
||||||
|
|
||||||
#define KiGetPreviousMode(tf) \
|
|
||||||
((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode
|
|
||||||
|
|
||||||
VOID
|
|
||||||
FASTCALL
|
|
||||||
KiRetireDpcList(
|
|
||||||
IN PKPRCB Prcb
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
FASTCALL
|
|
||||||
KiQuantumEnd(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
KiSystemService(
|
|
||||||
IN PKTHREAD Thread,
|
|
||||||
IN PKTRAP_FRAME TrapFrame,
|
|
||||||
IN ULONG Instruction
|
|
||||||
);
|
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -104,7 +80,7 @@ KiIdleLoop(VOID)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: Wait-For-Interrupt ARM Opcode
|
// FIXME-TODO: Wait-For-Interrupt ARM Opcode
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +105,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
|
||||||
if (Pcr->PerfGlobalGroupMask)
|
if (Pcr->PerfGlobalGroupMask)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: TODO
|
// We don't support this yet on x86 either
|
||||||
//
|
//
|
||||||
DPRINT1("WMI Tracing not supported\n");
|
DPRINT1("WMI Tracing not supported\n");
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
|
@ -149,7 +125,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
|
||||||
NewProcess->DirectoryTableBase.LowPart)
|
NewProcess->DirectoryTableBase.LowPart)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: TODO
|
// FIXME-USER: Support address space switch
|
||||||
//
|
//
|
||||||
DPRINT1("Address space switch not implemented\n");
|
DPRINT1("Address space switch not implemented\n");
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
|
@ -179,7 +155,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
|
||||||
if (Prcb->DpcRoutineActive)
|
if (Prcb->DpcRoutineActive)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: FAIL
|
// FIXME-TODO: Implement bugcheck code
|
||||||
//
|
//
|
||||||
DPRINT1("DPCS ACTIVE!!!\n");
|
DPRINT1("DPCS ACTIVE!!!\n");
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
|
@ -191,7 +167,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
|
||||||
if (NewThread->ApcState.KernelApcPending)
|
if (NewThread->ApcState.KernelApcPending)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: TODO
|
// FIXME-TODO: Implement bugcheck code
|
||||||
//
|
//
|
||||||
DPRINT1("APCs pending!\n");
|
DPRINT1("APCs pending!\n");
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
|
@ -217,7 +193,7 @@ KiApcInterrupt(VOID)
|
||||||
PreviousMode = KiGetPreviousMode(TrapFrame);
|
PreviousMode = KiGetPreviousMode(TrapFrame);
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME No use-mode support
|
// FIXME-USER: Handle APC interrupt while in user-mode
|
||||||
//
|
//
|
||||||
if (PreviousMode == UserMode) ASSERT(FALSE);
|
if (PreviousMode == UserMode) ASSERT(FALSE);
|
||||||
|
|
||||||
|
@ -372,7 +348,7 @@ KiInterruptHandler(IN PKTRAP_FRAME TrapFrame,
|
||||||
if (Irql > DISPATCH_LEVEL)
|
if (Irql > DISPATCH_LEVEL)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: Switch to interrupt stack
|
// FIXME-TODO: Switch to interrupt stack
|
||||||
//
|
//
|
||||||
//DPRINT1("[ISR]\n");
|
//DPRINT1("[ISR]\n");
|
||||||
}
|
}
|
||||||
|
@ -543,7 +519,7 @@ KiSoftwareInterruptHandler(IN PKTRAP_FRAME TrapFrame)
|
||||||
Instruction = *(PULONG)(TrapFrame->Pc - sizeof(ULONG));
|
Instruction = *(PULONG)(TrapFrame->Pc - sizeof(ULONG));
|
||||||
|
|
||||||
//
|
//
|
||||||
// FIXME: Enable interrupts?
|
// FIXME-TODO: Enable interrupts?
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -173,7 +173,7 @@ KiSystemService(IN PKTHREAD Thread,
|
||||||
if (Thread->PreviousMode == UserMode)
|
if (Thread->PreviousMode == UserMode)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// FIXME: Validate the user stack
|
// FIXME-USER: Validate the user stack
|
||||||
//
|
//
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
Argument = (PVOID*)TrapFrame->UserSp;
|
Argument = (PVOID*)TrapFrame->UserSp;
|
||||||
|
|
Loading…
Reference in a new issue