mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 23:55:41 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
141
hal/halarm/generic/processor.c
Normal file
141
hal/halarm/generic/processor.c
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* PROJECT: ReactOS HAL
|
||||
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||
* FILE: hal/halarm/generic/processor.c
|
||||
* PURPOSE: HAL Processor Routines
|
||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include <hal.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS ********************************************************************/
|
||||
|
||||
LONG HalpActiveProcessors;
|
||||
KAFFINITY HalpDefaultInterruptAffinity;
|
||||
BOOLEAN HalpProcessorIdentified;
|
||||
BOOLEAN HalpTestCleanSupported;
|
||||
|
||||
/* PRIVATE FUNCTIONS **********************************************************/
|
||||
|
||||
VOID
|
||||
HalpIdentifyProcessor(VOID)
|
||||
{
|
||||
ARM_ID_CODE_REGISTER IdRegister;
|
||||
|
||||
/* Don't do it again */
|
||||
HalpProcessorIdentified = TRUE;
|
||||
|
||||
// fixfix: Use Pcr->ProcessorId
|
||||
|
||||
/* Read the ID Code */
|
||||
IdRegister = KeArmIdCodeRegisterGet();
|
||||
|
||||
/* Architecture "6" CPUs support test-and-clean (926EJ-S and 1026EJ-S) */
|
||||
HalpTestCleanSupported = (IdRegister.Architecture == 6);
|
||||
}
|
||||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
HalInitializeProcessor(IN ULONG ProcessorNumber,
|
||||
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||
{
|
||||
/* Do nothing */
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
HalAllProcessorsStarted(VOID)
|
||||
{
|
||||
/* Do nothing */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
|
||||
IN PKPROCESSOR_STATE ProcessorState)
|
||||
{
|
||||
/* Ready to start */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
HalProcessorIdle(VOID)
|
||||
{
|
||||
/* Enable interrupts and halt the processor */
|
||||
_enable();
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
HalRequestIpi(KAFFINITY TargetProcessors)
|
||||
{
|
||||
/* Not implemented on UP */
|
||||
UNIMPLEMENTED;
|
||||
while (TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
HalSweepDcache(VOID)
|
||||
{
|
||||
/*
|
||||
* We get called very early on, before HalInitSystem or any of the Hal*
|
||||
* processor routines, so we need to figure out what CPU we're on.
|
||||
*/
|
||||
if (!HalpProcessorIdentified) HalpIdentifyProcessor();
|
||||
|
||||
/*
|
||||
* Check if we can do it the ARMv5TE-J way
|
||||
*/
|
||||
if (HalpTestCleanSupported)
|
||||
{
|
||||
/* Test, clean, flush D-Cache */
|
||||
__asm__ __volatile__ ("1: mrc p15, 0, pc, c7, c14, 3; bne 1b");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We need to do it it by set/way. For now always call ARMv7 function */
|
||||
//extern VOID v7_flush_dcache_all(VOID);
|
||||
//v7_flush_dcache_all();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
HalSweepIcache(VOID)
|
||||
{
|
||||
/* All ARM cores support the same Icache flush command */
|
||||
KeArmFlushIcache();
|
||||
}
|
||||
|
||||
/* EOF */
|
Loading…
Add table
Add a link
Reference in a new issue