alarm.h

#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 []


型定義


関数

void call_almhdr ( ALMCB p_almcb  ) 

alarm.c306 行で定義されています。

参照先 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   ) 

alarm.c119 行で定義されています。

参照先 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 ID tmax_almid


Copyright © 2008 by Kijineko Inc.

ホームページ制作