| KrnAddIRQHandler() | KrnFmtAlertInfo() | KrnGetSystemAttr() | KrnScheduleCPU() |
void * KrnAddIRQHandler(
uint32_t irq,
irqhandler_t * handler,
void * handlerData,
void * handlerData2 );
Add a raw hardware IRQ handler to the chain of handlers.
num - hardware-specific IRQ number
handler - Pointer to a handler function
handlerData,
handlerData2 - User-defined data which is passed to the
handler.
Handler function uses a C calling convention and must be
declared as follows:
void IRQHandler(void *handlerData, void *handlerData2)
handlerData and handlerData2 will be values passed to the
KrnAddExceptionHandler() function.
There is no return code for the IRQ handler.
An opaque handle that can be used for handler removal or NULL in case of failure (like unsupported exception number).
void KrnFmtAlertInfo(
STRPTR * TemplatePtr,
IPTR * ParamPtr );
intptr_t KrnGetSystemAttr(
uint32_t id );
Get value of internal system attributes. Currently defined attributes are: KATTR_Architecture [.G] (char *) - Name of architecture the kernel built for. KATTR_PeripheralBase [.G] IPTR - IO Base address for ARM peripherals
id - ID of the attribute to get
Value of the attribute
void KrnScheduleCPU(
void * cpu_mask );
Run task scheduling sequence on all CPUs given in the cpu_mask
None
None
This entry point directly calls task scheduling routine in supervisor mode. It neither performs any checks of caller status nor obeys interrupt enable state. This function is safe to call only from within user mode. This function is considered internal, and not meant to be called by user's software.