#include "time_event.h"
データ構造 | |
struct | alarm_handler_initialization_block |
struct | alarm_handler_control_block |
型定義 | |
typedef struct alarm_handler_initialization_block | ALMINIB |
typedef struct alarm_handler_control_block | ALMCB |
関数 | |
void | initialize_alarm (void) |
void | call_almhdr (ALMCB *p_almcb) |
変数 | |
const ID | tmax_almid |
const ALMINIB | alminib_table [] |
ALMCB | almcb_table [] |
typedef struct alarm_handler_control_block ALMCB |
typedef struct alarm_handler_initialization_block ALMINIB |
void call_almhdr | ( | ALMCB * | p_almcb | ) |
参照先 alarm_handler_initialization_block::almhdr, alarm_handler_control_block::almsta, alarm_handler_initialization_block::exinf, i_get_ipm, i_lock_cpu, i_sense_lock, i_set_ipm, i_unlock_cpu, LOG_ALM_ENTER, LOG_ALM_LEAVE, と alarm_handler_control_block::p_alminib.
00307 { 00308 PRI saved_ipm; 00309 00310 /* 00311 * アラームハンドラを停止状態にする. 00312 */ 00313 p_almcb->almsta = false; 00314 00315 /* 00316 * アラームハンドラを,CPUロック解除状態で呼び出す. 00317 */ 00318 saved_ipm = i_get_ipm(); 00319 i_unlock_cpu(); 00320 00321 LOG_ALM_ENTER(p_almcb); 00322 (*((ALMHDR)(p_almcb->p_alminib->almhdr)))(p_almcb->p_alminib->exinf); 00323 LOG_ALM_LEAVE(p_almcb); 00324 00325 if (!i_sense_lock()) { 00326 i_lock_cpu(); 00327 } 00328 i_set_ipm(saved_ipm); 00329 }
void initialize_alarm | ( | void | ) |
参照先 almcb_table, alminib_table, alarm_handler_control_block::almsta, alarm_handler_control_block::p_alminib, と tnum_alm.
00120 { 00121 uint_t i; 00122 ALMCB *p_almcb; 00123 00124 for (p_almcb = almcb_table, i = 0; i < tnum_alm; p_almcb++, i++) { 00125 p_almcb->p_alminib = &(alminib_table[i]); 00126 p_almcb->almsta = false; 00127 } 00128 }
const ALMINIB alminib_table[] |
const ID tmax_almid |
Copyright © 2008 by Kijineko Inc.