eCos Reference Manual
Prev | Chapter 36. µITRON API | Next

# Interrupt management functions

These functions are fully supported in this release:

    void	 ret_int( void )

    ER loc_cpu( void )

    ER unl_cpu( void )

    ER dis_int(
        UINT eintno )

    ER ena_int(
        UINT eintno )

    void	ret_wup(
        ID tskid )

    ER iwup_tsk(
        ID tskid )

    ER isig_sem(
        ID semid )

    ER iset_flg(
        ID flgid ,
        UID setptn )

    ER isend_msg(
        ID mbxid ,
        T_MSG *pk_msg )

Note that `ret_int()` and the `ret_wup()` are implemented as macros, containing a “return” statement.

Also note that `ret_wup()` and the `ixxx_yyy()` style functions will only work when called from an ISR whose associated DSR is `cyg_uitron_dsr()`, as specified in include file `<cyg/compat/uitron/uit_ifnc.h>`, which defines the `ixxx_yyy()` style functions also.

If you are writing interrupt handlers more in the eCos style, with separate ISR and DSR routines both of your own devising, do not use these special functions from a DSR: use plain `xxx_yyy()` style functions (with no ‘i’ prefix) instead, and do not call any µITRON functions from the ISR at all.

The following functions are not supported in this release:

    ER def_int(
        UINT dintno,
      T_DINT *pk_dint )

    ER chg_iXX(
        UINT iXXXX )

    ER ref_iXX(
        UINT * p_iXXXX )

These unsupported functions are all Level C (CPU dependent). Equivalent functionality is available via other eCos-specific APIs.

## Error checking

The following conditions are only checked for, and only return errors if `CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS` is enabled:

- `loc/unl_cpu()` : these must only be called in a µITRON task context, else E_CTX.

- `dis/ena_int()` : the interrupt number must be in range as specified by the platform HAL in qustion, else E_PAR.

Prev | Home | Next
Extended Synchronization and Communication Functions | Up | Memory pool Management Functions