/* |------------------+-------------------------------------------------------------| */ StatusType CancelAlarm ( AlarmType xAlarmID ) { StatusType ercd = E_OK; if(xAlarmID >= cfgOSEK_ALARM_NUM) { ercd = E_OS_ID; goto Error_Exit; } if(OsekAlarmIdTable[xAlarmID] == ALARM_NOT_IN_USE) { ercd = E_OS_NOFUNC; goto Error_Exit; } if(OsekAlarmTypeTable[xAlarmID] == ALARM_CYC) { ercd = tk_del_cyc(OsekAlarmTypeTable[xAlarmID]); } else if(OsekAlarmTypeTable[xAlarmID] == ALARM_ALM) { ercd = tk_del_alm(OsekAlarmTypeTable[xAlarmID]); } else { ercd = E_OS_ID; } Error_Exit: return ercd; }
/* * release alarm handler */ LOCAL ER finishAlarm( AlarmState *alm ) { ER ercd; if ( alm->almno != InvalidHNO ) { /* cancel alarm handler */ ercd = tk_stp_alm(alm->almno); ercd |= tk_del_alm(alm->almno); if ( ercd != E_OK ) { DEBUG_PRINT(("finishAlarm, err = %d\n", ercd)); return ercd; } } return E_OK; }