Go to the documentation of this file.
18 #include <FreeNOS/System.h>
19 #include <FreeNOS/ProcessManager.h>
30 , m_exception(RAM_ADDR)
140 DEBUG(
"result = " << r <<
" scheduled = " << (
bool)(proc != proc2));
void logException(CPUState *state) const
Log a CPU exception.
static Size copy(void *dest, const void *src, Size count)
Copy memory from one place to another.
void unset(SystemControlFlags flags)
Unset system control flags in CP15.
virtual Result allocate(Range &args)
Allocate physical memory.
Represents a process which may run on the host.
Result invoke(Number number, ulong arg1, ulong arg2, ulong arg3, ulong arg4, ulong arg5)
Execute a generic API function.
#define NOTICE(msg)
Output a notice message.
CoreInfo * m_coreInfo
CoreInfo object for this core.
static void prefetchAbort(CPUState state)
Prefetch abort routine.
ProcessID getID() const
Retrieve our ID number.
#define PAGESIZE
ARM uses 4K pages.
static void interrupt(CPUState state)
Interrupt handler routine.
u32 ProcessID
Process Identification Number.
Memory::Range memory
Defines the physical memory available to the core.
Number
Enumeration of supported generic kernel API functions.
ProcessManager * getProcessManager()
Get process manager.
uint coreId
Core identifier.
#define MegaByte(v)
Convert megabytes to bytes.
#define FATAL(msg)
Output a critical message and terminate program immediatly.
#define DEBUG(msg)
Output a debug message to standard output.
ARM System Control Coprocessor (CP15).
Address phys
Physical address.
Result install(ExceptionType vector, Handler handler)
Install an exception handler.
#define NULL
NULL means zero.
unsigned int u32
Unsigned 32-bit number.
unsigned int Size
Any sane size indicator cannot go negative.
static Kernel * instance()
Retrieve the instance.
ARM specific process implementation.
FreeNOS kernel implementation.
Process * get(const ProcessID id)
Retrieve a Process by it's ID.
Contains all the CPU registers.
Per-Core information structure.
ARMException m_exception
ARM exception handling subsystem.
CoreInfo coreInfo
Local CoreInfo instance.
static void dataAbort(CPUState state)
Data abort routine.
void set(SystemControlFlags flags)
Set system control flags in CP15.
void setCpuState(const CPUState *cpuState)
Overwrite the saved CPU registers for this task.
SplitAllocator * m_alloc
Physical memory allocator.
static void reserved(CPUState state)
Reserved routine.
ARMKernel(CoreInfo *info)
Constructor function.
Process * current()
Current process running.
Class representing an ARM processor core.
static void undefinedInstruction(CPUState state)
Undefined instruction routine.
static void trap(CPUState state)
Software trap routine.