- 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:
ReactOS Portable Systems Group 2008-07-19 06:13:10 +00:00
parent 7272eb9108
commit b95845bf85
7 changed files with 42 additions and 53 deletions

View file

@ -52,4 +52,7 @@ KeFlushTb(
#define KeArchInitThreadWithContext KeArmInitThreadWithContext
#define KiSystemStartupReal KiSystemStartup
#define KiGetPreviousMode(tf) \
((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode
#endif

View file

@ -984,6 +984,30 @@ KiSaveProcessorControlState(
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"
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */

View file

@ -9,16 +9,10 @@
/* INCLUDES *******************************************************************/
#include <ntoskrnl.h>
#include <internal/arm/ksarm.h>
#define NDEBUG
#include <debug.h>
/* GLOBALS ********************************************************************/
#include <internal/arm/ksarm.h>
#define KiGetPreviousMode(tf) \
((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode
/* FUNCTIONS ******************************************************************/
VOID
@ -194,7 +188,7 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
Context.ContextFlags = CONTEXT_FULL;
//
// FIXME: Fuck floating point
// FIXME-V6: VFP Support
//
//
@ -290,7 +284,7 @@ KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord,
else
{
//
// FIXME: User mode
// FIXME-USER: Do user-mode exception handling
//
ASSERT(FALSE);
}

View file

@ -23,21 +23,13 @@ extern PVOID KiArmVectorTable;
/* FUNCTIONS ******************************************************************/
//
// FIXME: Header cleanup
//
VOID
KiIdleLoop(
VOID
);
VOID
DebugService2(IN ULONG Arg1,
IN ULONG Arg2,
IN ULONG Service)
{
//
// FIXME: TODO
// FIXME-TODO: Implement this for symbol load and such
//
return;
}
@ -230,7 +222,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
else
{
//
// FIXME: No MP Support
// FIXME-V6: See if we want to support MP
//
DPRINT1("ARM MPCore not supported\n");
}

View file

@ -224,7 +224,7 @@ KeUpdateRunTime(IN PKTRAP_FRAME TrapFrame,
Prcb->DpcTime++;
//
// FIXME: Handle DPC checks
// FIXME-TODO: Handle DPC checks
//
}
}

View file

@ -13,30 +13,6 @@
#define NDEBUG
#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 ******************************************************************/
VOID
@ -104,7 +80,7 @@ KiIdleLoop(VOID)
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)
{
//
// FIXME: TODO
// We don't support this yet on x86 either
//
DPRINT1("WMI Tracing not supported\n");
ASSERT(FALSE);
@ -149,7 +125,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
NewProcess->DirectoryTableBase.LowPart)
{
//
// FIXME: TODO
// FIXME-USER: Support address space switch
//
DPRINT1("Address space switch not implemented\n");
ASSERT(FALSE);
@ -179,7 +155,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
if (Prcb->DpcRoutineActive)
{
//
// FIXME: FAIL
// FIXME-TODO: Implement bugcheck code
//
DPRINT1("DPCS ACTIVE!!!\n");
ASSERT(FALSE);
@ -191,7 +167,7 @@ KiSwapContextInternal(IN PKTHREAD OldThread,
if (NewThread->ApcState.KernelApcPending)
{
//
// FIXME: TODO
// FIXME-TODO: Implement bugcheck code
//
DPRINT1("APCs pending!\n");
ASSERT(FALSE);
@ -217,7 +193,7 @@ KiApcInterrupt(VOID)
PreviousMode = KiGetPreviousMode(TrapFrame);
//
// FIXME No use-mode support
// FIXME-USER: Handle APC interrupt while in user-mode
//
if (PreviousMode == UserMode) ASSERT(FALSE);
@ -372,7 +348,7 @@ KiInterruptHandler(IN PKTRAP_FRAME TrapFrame,
if (Irql > DISPATCH_LEVEL)
{
//
// FIXME: Switch to interrupt stack
// FIXME-TODO: Switch to interrupt stack
//
//DPRINT1("[ISR]\n");
}
@ -543,7 +519,7 @@ KiSoftwareInterruptHandler(IN PKTRAP_FRAME TrapFrame)
Instruction = *(PULONG)(TrapFrame->Pc - sizeof(ULONG));
//
// FIXME: Enable interrupts?
// FIXME-TODO: Enable interrupts?
//
//

View file

@ -173,7 +173,7 @@ KiSystemService(IN PKTHREAD Thread,
if (Thread->PreviousMode == UserMode)
{
//
// FIXME: Validate the user stack
// FIXME-USER: Validate the user stack
//
ASSERT(FALSE);
Argument = (PVOID*)TrapFrame->UserSp;