26 #include "sysSymTbl.h" 35 static char *ignore_list[] = {
"_excStub",
"_excIntStub"};
38 int cISRTest(FUNCPTR proutine, FUNCPTR *ppisr,
void **pparam);
39 static void *fetch_pointer(
unsigned char *);
52 char name[MAX_SYS_SYM_LEN];
53 char function_type[10];
61 for(vec=0; vec<
NVEC; vec++){
62 proutine = intVecGet((FUNCPTR *)INUM_TO_IVEC(vec));
64 status =
cISRTest(proutine, &pCISR, &pparam);
68 strcpy(function_type,
"C");
72 strcpy(function_type,
"MACRO");
76 status = symFindByValue(
82 if(status<0 || value != (
int)proutine){
83 sprintf(name,
"0x%X", (
unsigned int) proutine);
89 if(!strcmp(ignore_list[i],name)){
98 printf(
"vec 0x%02X %5s ISR %s",
103 printf(
"(0x%X)", (
unsigned int) pparam);
119 #define ISR_PATTERN 0xaaaaaaaa 120 #define PARAM_PATTERN 0x55555555 121 int cISRTest(FUNCPTR proutine, FUNCPTR *ppisr,
void **pparam)
123 static FUNCPTR handler =
NULL;
132 #if CPU_FAMILY != PPC 133 handler = (FUNCPTR) intHandlerCreate(
144 pchk = (
unsigned char *) proutine;
145 pref = (
unsigned char *) handler;
161 *ppisr = (FUNCPTR) fetch_pointer(pchk);
162 pref +=
sizeof(*ppisr)-1;
163 pchk +=
sizeof(*ppisr)-1;
167 *pparam = fetch_pointer(pchk);
168 pref +=
sizeof(*pparam)-1;
169 pchk +=
sizeof(*pparam)-1;
198 void *fetch_pointer(
unsigned char *plow_byte)
203 for(i=0; i <
sizeof(p); i++){
204 p.char_overlay.byte[
i] = plow_byte[
i];
207 return p.ptr_overlay;
pvd::StructureConstPtr type
int cISRTest(FUNCPTR proutine, FUNCPTR *ppisr, void **pparam)