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: