NeKernel dev
Loading...
Searching...
No Matches
HalApplicationProcessor.cc File Reference

Classes

struct  Kernel::HAL_HARDWARE_THREAD
 Hardware thread information structure. More...

Namespaces

namespace  Kernel
 UPS inline definitions.
namespace  Kernel::Detail
 Implementation details namespace.

Macros

#define GICD_BASE   0x08000000
#define GICC_BASE   0x08010000
#define GICD_CTLR   0x000
#define GICD_ISENABLER   0x100
#define GICD_ICENABLER   0x180
#define GICD_ISPENDR   0x200
#define GICD_ICPENDR   0x280
#define GICD_IPRIORITYR   0x400
#define GICD_ITARGETSR   0x800
#define GICD_ICFGR   0xC00
#define GICC_CTLR   0x000
#define GICC_PMR   0x004
#define GICC_IAR   0x00C
#define GICC_EOIR   0x010

Functions

STATIC Void Kernel::Detail::mp_setup_gic_el0 (Void)
 Enables the GIC with EL0 configuration.
EXTERN_C BOOL Kernel::Detail::mp_handle_gic_interrupt_el0 (Void)
EXTERN_C HAL::StackFramePtr Kernel::mp_get_current_task (ProcessID thrdid)
 Get current stack frame for a thread.
EXTERN_C Bool Kernel::mp_register_task (HAL::StackFramePtr stack_frame, ProcessID thrdid)
 Register current stack frame for a thread.
Void Kernel::mp_init_cores (Void)
 Initialize the Global Interrupt Controller.

Variables

STATIC HAL_HARDWARE_THREAD Kernel::kHWThread [kMaxAPInsideSched] = {{nullptr}}
STATIC BOOL Kernel::Detail::kGICEnabled = NO

Macro Definition Documentation

◆ GICC_BASE

#define GICC_BASE   0x08010000

◆ GICC_CTLR

#define GICC_CTLR   0x000

◆ GICC_EOIR

#define GICC_EOIR   0x010

◆ GICC_IAR

#define GICC_IAR   0x00C

◆ GICC_PMR

#define GICC_PMR   0x004

◆ GICD_BASE

#define GICD_BASE   0x08000000

◆ GICD_CTLR

#define GICD_CTLR   0x000

◆ GICD_ICENABLER

#define GICD_ICENABLER   0x180

◆ GICD_ICFGR

#define GICD_ICFGR   0xC00

◆ GICD_ICPENDR

#define GICD_ICPENDR   0x280

◆ GICD_IPRIORITYR

#define GICD_IPRIORITYR   0x400

◆ GICD_ISENABLER

#define GICD_ISENABLER   0x100

◆ GICD_ISPENDR

#define GICD_ISPENDR   0x200

◆ GICD_ITARGETSR

#define GICD_ITARGETSR   0x800