exception.c

#include "kernel_impl.h"
#include "task.h"
#include "exception.h"

ソースコードを見る。

マクロ定義

#define LOG_XSNS_DPN_ENTER(p_excinf)
#define LOG_XSNS_DPN_LEAVE(state)
#define LOG_XSNS_XPN_ENTER(p_excinf)
#define LOG_XSNS_XPN_LEAVE(state)

関数

void initialize_exception (void)
bool_t xsns_dpn (void *p_excinf)
bool_t xsns_xpn (void *p_excinf)


マクロ定義

#define LOG_XSNS_DPN_ENTER ( p_excinf   ) 

exception.c55 行で定義されています。

参照元 xsns_dpn().

#define LOG_XSNS_DPN_LEAVE ( state   ) 

exception.c59 行で定義されています。

参照元 xsns_dpn().

#define LOG_XSNS_XPN_ENTER ( p_excinf   ) 

exception.c63 行で定義されています。

参照元 xsns_xpn().

#define LOG_XSNS_XPN_LEAVE ( state   ) 

exception.c67 行で定義されています。

参照元 xsns_xpn().


関数

void initialize_exception ( void   ) 

exception.c77 行で定義されています。

参照先 cpu_exception_handler_initialization_block::exc_entry, excinib_table, cpu_exception_handler_initialization_block::excno, tnum_excno, と x_define_exc().

00078 {
00079     uint_t          i;
00080     const EXCINIB   *p_excinib;
00081 
00082     for (p_excinib = excinib_table, i = 0; i < tnum_excno; p_excinib++, i++) {
00083         x_define_exc(p_excinib->excno, p_excinib->exc_entry);
00084     }
00085 }

bool_t xsns_dpn ( void *  p_excinf  ) 

exception.c103 行で定義されています。

参照先 disdsp, exc_sense_intmask(), LOG_XSNS_DPN_ENTER, と LOG_XSNS_DPN_LEAVE.

00104 {
00105     bool_t  state;
00106 
00107     LOG_XSNS_DPN_ENTER(p_excinf);
00108     state = (exc_sense_intmask(p_excinf) && !disdsp) ? false : true;
00109     LOG_XSNS_DPN_LEAVE(state);
00110     return(state);
00111 }

bool_t xsns_xpn ( void *  p_excinf  ) 

exception.c125 行で定義されています。

参照先 exc_sense_unlock(), LOG_XSNS_XPN_ENTER, LOG_XSNS_XPN_LEAVE, NULL, と p_runtsk.

00126 {
00127     bool_t  state;
00128 
00129     LOG_XSNS_XPN_ENTER(p_excinf);
00130     state = (exc_sense_unlock(p_excinf)
00131                 && p_runtsk != NULL && p_runtsk->enatex) ? false : true;
00132     LOG_XSNS_XPN_LEAVE(state);
00133     return(state);
00134 }


Copyright © 2008 by Kijineko Inc.

ホームページ制作