Interrupt controller interface.
InterruptHandler * handler
Executed at time of interrupt.
API * m_api
API handlers object.
Represents a process which may run on the host.
void InterruptHandler(struct CPUState *state, ulong param, ulong vector)
Function which is called when the CPU is interrupted.
Virtual memory abstract interface.
virtual Result loadBootProgram(const BootImageStorage &bootImage, const BootSymbol &program)
Load a boot program.
unsigned long ulong
Unsigned long number.
CoreInfo * m_coreInfo
CoreInfo object for this core.
Represents a process which may run on the host.
bool operator==(InterruptHook *i)
Comparision operator.
MemoryContext * getMemoryContext()
Get the current MMU context.
Timer * m_timer
Timer device.
static Error initializeHeap()
Initialize heap.
Uses a BootImage as a storage provider.
struct InterruptHook InterruptHook
Interrupt hook class.
void param(Terminal *term, int key, int value)
Set terminal parameters.
int run()
Execute the kernel.
SplitAllocator * getAllocator()
Get physical memory allocator.
Generic Kernel API implementation.
Represents a configurable timer device.
virtual Result sendIRQ(const uint coreId, const uint irq)
Send a inter-processor-interrupt (IPI) to another core.
ProcessManager * getProcessManager()
Get process manager.
unsigned int uint
Unsigned integer number.
Allocator which separates kernel mapped memory at virtual and physical addresses.
IntController * m_intControl
Interrupt Controller.
CoreInfo * getCoreInfo()
Get CoreInfo.
Vector< List< InterruptHook * > * > m_interrupts
Interrupt handlers.
virtual void enableIRQ(u32 irq, bool enabled)
Enable or disable an hardware interrupt (IRQ).
slong Error
Error code defined in Error.h.
Kernel(CoreInfo *info)
Constructor function.
unsigned int u32
Unsigned 32-bit number.
ulong param
Passed to the handler.
FreeNOS kernel implementation.
Singleton design pattern: only one instance is allowed.
Contains all the CPU registers.
Per-Core information structure.
Program embedded in the BootImage.
InterruptHook(InterruptHandler *h, ulong p)
Constructor function.
virtual void hookIntVector(u32 vec, InterruptHandler h, ulong p)
Hooks a function to an hardware interrupt.
ProcessManager * m_procs
Process Manager.
SplitAllocator * m_alloc
Physical memory allocator.
virtual Result loadBootImage()
Loads the boot image.
Vectors are dynamically resizeable Arrays.
Timer * getTimer()
Get Timer.
virtual void executeIntVector(u32 vec, CPUState *state)
Execute an interrupt handler.