FreeNOS
Public Member Functions | Static Private Member Functions | Private Attributes
RaspberryKernel Class Reference

Represents the Raspberry Pi kernel implementation. More...

#include <RaspberryKernel.h>

Inheritance diagram for RaspberryKernel:
ARMKernel Kernel WeakSingleton< Kernel >

Public Member Functions

 RaspberryKernel (CoreInfo *info)
 Constructor function. More...
 
- Public Member Functions inherited from ARMKernel
 ARMKernel (CoreInfo *info)
 Constructor function. More...
 
- Public Member Functions inherited from Kernel
 Kernel (CoreInfo *info)
 Constructor function. More...
 
SplitAllocatorgetAllocator ()
 Get physical memory allocator. More...
 
ProcessManagergetProcessManager ()
 Get process manager. More...
 
APIgetAPI ()
 Get API. More...
 
MemoryContextgetMemoryContext ()
 Get the current MMU context. More...
 
CoreInfogetCoreInfo ()
 Get CoreInfo. More...
 
TimergetTimer ()
 Get Timer. More...
 
int run ()
 Execute the kernel. More...
 
virtual void enableIRQ (u32 irq, bool enabled)
 Enable or disable an hardware interrupt (IRQ). More...
 
virtual Result sendIRQ (const uint coreId, const uint irq)
 Send a inter-processor-interrupt (IPI) to another core. More...
 
virtual void hookIntVector (u32 vec, InterruptHandler h, ulong p)
 Hooks a function to an hardware interrupt. More...
 
virtual void executeIntVector (u32 vec, CPUState *state)
 Execute an interrupt handler. More...
 
virtual Result loadBootImage ()
 Loads the boot image. More...
 
- Public Member Functions inherited from WeakSingleton< Kernel >
 WeakSingleton (Kernel *obj)
 Constructor. More...
 

Static Private Member Functions

static void interrupt (CPUState state)
 Interrupt handler routine. More...
 

Private Attributes

BroadcomInterrupt m_bcmIntr
 Broadcom specific interrupt controller. More...
 
BroadcomTimer m_bcmTimer
 Broadcom specific timer module. More...
 
u8 m_timerIrq
 Interrupt number for the timer. More...
 

Additional Inherited Members

- Public Types inherited from Kernel
enum  Result { Success, InvalidBootImage, ProcessError, IOError }
 Result codes. More...
 
- Static Public Member Functions inherited from Kernel
static Error initializeHeap ()
 Initialize heap. More...
 
- Static Public Member Functions inherited from WeakSingleton< Kernel >
static Kernelinstance ()
 Retrieve the instance. More...
 
- Protected Attributes inherited from ARMKernel
ARMException m_exception
 ARM exception handling subsystem. More...
 
- Protected Attributes inherited from Kernel
SplitAllocatorm_alloc
 Physical memory allocator. More...
 
ProcessManagerm_procs
 Process Manager. More...
 
APIm_api
 API handlers object. More...
 
CoreInfom_coreInfo
 CoreInfo object for this core. More...
 
Vector< List< InterruptHook * > * > m_interrupts
 Interrupt handlers. More...
 
IntControllerm_intControl
 Interrupt Controller. More...
 
Timerm_timer
 Timer device. More...
 

Detailed Description

Represents the Raspberry Pi kernel implementation.

Definition at line 40 of file RaspberryKernel.h.

Constructor & Destructor Documentation

◆ RaspberryKernel()

RaspberryKernel::RaspberryKernel ( CoreInfo info)

Member Function Documentation

◆ interrupt()

void RaspberryKernel::interrupt ( CPUState  state)
staticprivate

Field Documentation

◆ m_bcmIntr

BroadcomInterrupt RaspberryKernel::m_bcmIntr
private

Broadcom specific interrupt controller.

Definition at line 63 of file RaspberryKernel.h.

Referenced by RaspberryKernel().

◆ m_bcmTimer

BroadcomTimer RaspberryKernel::m_bcmTimer
private

Broadcom specific timer module.

Definition at line 74 of file RaspberryKernel.h.

Referenced by RaspberryKernel().

◆ m_timerIrq

u8 RaspberryKernel::m_timerIrq
private

Interrupt number for the timer.

Definition at line 77 of file RaspberryKernel.h.

Referenced by interrupt(), and RaspberryKernel().


The documentation for this class was generated from the following files: