======
kernel
======

.. This document is automatically generated. Don't edit it!

`Index <index>`_

----------

======================================= ======================================= ======================================= ======================================= 
`KrnAddIRQHandler()`_                   `KrnFmtAlertInfo()`_                    `KrnGetSystemAttr()`_                   `KrnScheduleCPU()`_                     

======================================= ======================================= ======================================= ======================================= 

-----------

KrnAddIRQHandler()
==================

Synopsis
~~~~~~~~
::

 void * KrnAddIRQHandler(
          uint32_t irq,
          irqhandler_t * handler,
          void * handlerData,
          void * handlerData2 );

Function
~~~~~~~~
::

     Add a raw hardware IRQ handler to the chain of handlers.


Inputs
~~~~~~
::

     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.


Result
~~~~~~
::

     An opaque handle that can be used for handler removal or NULL in case
     of failure (like unsupported exception number).



See also
~~~~~~~~

`KrnRemIRQHandler()`_ 

----------

KrnFmtAlertInfo()
=================

Synopsis
~~~~~~~~
::

 void KrnFmtAlertInfo(
          STRPTR * TemplatePtr,
          IPTR * ParamPtr );


----------

KrnGetSystemAttr()
==================

Synopsis
~~~~~~~~
::

 intptr_t KrnGetSystemAttr(
          uint32_t id );

Function
~~~~~~~~
::

     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


Inputs
~~~~~~
::

     id - ID of the attribute to get


Result
~~~~~~
::

     Value of the attribute



----------

KrnScheduleCPU()
================

Synopsis
~~~~~~~~
::

 void KrnScheduleCPU(
          void * cpu_mask );

Function
~~~~~~~~
::

     Run task scheduling sequence on all CPUs given in the cpu_mask


Inputs
~~~~~~
::

     None


Result
~~~~~~
::

     None


Notes
~~~~~
::

     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.



