dump 10 tools/dumputil.c unsigned ptr_to_offset(dump_t *dump,unsigned ptr) dump 12 tools/dumputil.c if(ptr < dump->base) // warn dump 14 tools/dumputil.c return ptr - dump->base; dump 17 tools/dumputil.c unsigned offset_to_ptr(dump_t *dump,unsigned off) dump 19 tools/dumputil.c if(off >= dump->size) // warn dump 21 tools/dumputil.c return off + dump->base; dump 24 tools/dumputil.c int find_cstring(dump_t *dump, unsigned *pos, const char *string) dump 27 tools/dumputil.c for(i=*pos; i<dump->size - strlen(string); i++) { dump 28 tools/dumputil.c if(strcmp((const char *)(dump->pb+i),string)==0) { dump 36 tools/dumputil.c int find_word_aligned(dump_t *dump, unsigned *index, uint32_t word) dump 39 tools/dumputil.c for(i=*index; i<dump->words - 1; i++) { dump 40 tools/dumputil.c if(dump->pw[i]==word) { dump 49 tools/dumputil.c uint32_t get_word(dump_t *dump,unsigned off) dump 51 tools/dumputil.c if(off > dump->size) // warn dump 53 tools/dumputil.c return *(unsigned *)(dump->pb+off); dump 57 tools/dumputil.c uint32_t deref_word_ptr(dump_t *dump,unsigned off) dump 59 tools/dumputil.c uint32_t ptr=get_word(dump,off); dump 60 tools/dumputil.c return get_word(dump,ptr_to_offset(dump,ptr)); dump 63 tools/dumputil.c uint8_t deref_byte_ptr(dump_t *dump,unsigned off) dump 65 tools/dumputil.c uint32_t ptr=get_word(dump,off); dump 66 tools/dumputil.c return dump->pb[ptr_to_offset(dump,ptr)]; dump 69 tools/dumputil.c const char* deref_string_ptr(dump_t *dump,unsigned off) dump 71 tools/dumputil.c uint32_t ptr=get_word(dump,off); dump 72 tools/dumputil.c return (const char *)(dump->pb + ptr_to_offset(dump,ptr)); dump 75 tools/dumputil.c int load_dump(const char *dumpname,const char *base, dump_t *dump) dump 82 tools/dumputil.c dump->base=strtoul(base,NULL,0); dump 83 tools/dumputil.c if(dump->base != 0xFFC00000 dump 84 tools/dumputil.c && dump->base != 0xFF810000 dump 85 tools/dumputil.c && dump->base != 0xFF000000 dump 86 tools/dumputil.c && dump->base != 0xF8000000 dump 87 tools/dumputil.c && dump->base != 0xFC000000 dump 88 tools/dumputil.c && dump->base != 0xE0000000) { dump 89 tools/dumputil.c fprintf(stderr,"error base '%s' %x\n",base,dump->base); dump 124 tools/dumputil.c dump->pb=p; dump 125 tools/dumputil.c dump->size=st.st_size; dump 126 tools/dumputil.c dump->words = dump->size >> 2; dump 13 tools/dumputil.h unsigned ptr_to_offset(dump_t *dump,unsigned ptr); dump 14 tools/dumputil.h unsigned offset_to_ptr(dump_t *dump,unsigned off); dump 15 tools/dumputil.h int find_cstring(dump_t *dump, unsigned *pos, const char *string); dump 16 tools/dumputil.h int find_word_aligned(dump_t *dump, unsigned *index, uint32_t word); dump 17 tools/dumputil.h uint32_t get_word(dump_t *dump,unsigned off); dump 18 tools/dumputil.h uint32_t deref_word_ptr(dump_t *dump,unsigned off); dump 19 tools/dumputil.h uint8_t deref_byte_ptr(dump_t *dump,unsigned off); dump 20 tools/dumputil.h const char* deref_string_ptr(dump_t *dump,unsigned off); dump 21 tools/dumputil.h int load_dump(const char *dumpname,const char *base, dump_t *dump); dump 17 tools/extract_error_table.c void dump_error_table_dry(dump_t *dump,unsigned index) dump 20 tools/extract_error_table.c for(i=index; i < dump->words - 2 && dump->pw[i+1]; i+=2) { dump 21 tools/extract_error_table.c printf("E%02d %02d %s\n",(short)(dump->pw[i] >> 16),dump->pw[i]&0xFFFF,deref_string_ptr(dump,(i+1)*4)); dump 25 tools/extract_error_table.c void dump_error_table_vx(dump_t *dump,unsigned index) dump 28 tools/extract_error_table.c for(i=index; i < dump->words - 2 && dump->pw[i+1]; i+=2) { dump 29 tools/extract_error_table.c printf("E%02d %s\n",dump->pw[i+1],deref_string_ptr(dump,i*4)); dump 33 tools/extract_error_table.c int process_dump_dry(dump_t *dump) dump 39 tools/extract_error_table.c while(find_cstring(dump,&mark_offset,sig_str)) { dump 40 tools/extract_error_table.c mark_addr=offset_to_ptr(dump,mark_offset); dump 42 tools/extract_error_table.c while(find_word_aligned(dump,&i,mark_addr)) { dump 43 tools/extract_error_table.c if( dump->pw[i-1] == 0) { dump 44 tools/extract_error_table.c printf("error_table 0x%X\n",(i-1)*4+dump->base); dump 45 tools/extract_error_table.c dump_error_table_dry(dump,i-1); dump 61 tools/extract_error_table.c int process_dump_vx(dump_t *dump) dump 67 tools/extract_error_table.c while(find_cstring(dump,&mark_offset,sig_str)) { dump 68 tools/extract_error_table.c mark_addr=offset_to_ptr(dump,mark_offset); dump 70 tools/extract_error_table.c while(find_word_aligned(dump,&i,mark_addr)) { dump 71 tools/extract_error_table.c if( dump->pw[i+1] == 1) { dump 72 tools/extract_error_table.c printf("error_table 0x%X\n",i*4+dump->base); dump 73 tools/extract_error_table.c dump_error_table_vx(dump,i); dump 93 tools/extract_error_table.c dump_t dump; dump 121 tools/extract_error_table.c if(!load_dump(dumpname,base,&dump)) dump 126 tools/extract_error_table.c r=process_dump_vx(&dump); dump 128 tools/extract_error_table.c r=process_dump_dry(&dump); dump 8 tools/extract_event_procedures.c #define HOST_ADDR(addr) ((addr)-baseaddr+dump) dump 72 tools/extract_event_procedures.c char *dump = malloc(DUMP_SIZE); dump 74 tools/extract_event_procedures.c fread(dump, 1, DUMP_SIZE, fd); dump 81 tools/extract_event_procedures.c int idlen = isIdentifies(dump+sidx); dump 98 tools/extract_event_procedures.c MATCH_FOUND(dump+sidx, PEEKW(ADDR(tidx+4)) ); dump 109 tools/extract_event_procedures.c free(dump); dump 15 tools/find_eventproc.c int find_event_proc(dump_t *dump,char *name) dump 20 tools/find_eventproc.c while(find_cstring(dump,&str_offset,name)) { dump 21 tools/find_eventproc.c str_addr=offset_to_ptr(dump,str_offset); dump 23 tools/find_eventproc.c while(find_word_aligned(dump,&i,str_addr)) { dump 24 tools/find_eventproc.c uint32_t pfunc = dump->pw[i+1]; dump 26 tools/find_eventproc.c if(pfunc > dump->base && deref_word_ptr(dump,i*4+4) != 0) { dump 28 tools/find_eventproc.c printf("NHSTUB(%s,0x%08X) // by find_eventproc name @ 0x%08X\n",name,pfunc,offset_to_ptr(dump,i*4)); dump 38 tools/find_eventproc.c int process_dump(dump_t *dump,char **names,unsigned num_procs) dump 44 tools/find_eventproc.c if(find_event_proc(dump,names[i])) dump 53 tools/find_eventproc.c dump_t dump; dump 78 tools/find_eventproc.c if(!load_dump(dumpname,base,&dump)) dump 81 tools/find_eventproc.c if(!process_dump(&dump,argv+3,num_procs)) dump 16 tools/find_levent.c void dump_levent_table(dump_t *dump,unsigned index) dump 20 tools/find_levent.c for(i=index; i < dump->words - 3 && dump->pw[i]; i+=3) { dump 21 tools/find_levent.c printf("0x%04x, %5d, %s, %d\n",dump->pw[i+1], dump 22 tools/find_levent.c dump->pw[i+1], dump 23 tools/find_levent.c (*(deref_string_ptr(dump,i*4)))?deref_string_ptr(dump,i*4):"(none)", dump 24 tools/find_levent.c dump->pw[i+2]); dump 28 tools/find_levent.c int process_dump(dump_t *dump) dump 34 tools/find_levent.c while(find_cstring(dump,&mark_offset,sig_str)) { dump 35 tools/find_levent.c mark_addr=offset_to_ptr(dump,mark_offset); dump 38 tools/find_levent.c while(find_word_aligned(dump,&i,mark_addr)) { dump 39 tools/find_levent.c if( dump->pw[i+1] > 0x800 && dump 40 tools/find_levent.c dump->pw[i+1] < 0xFFFF && dump 41 tools/find_levent.c dump->pw[i+2] == 0) { dump 44 tools/find_levent.c if(dump->pw[j+1]==0x800 && deref_byte_ptr(dump,j*4) == 0 ) { dump 46 tools/find_levent.c printf("DEF(levent_table,0x%X)\n",j*4+dump->base); dump 49 tools/find_levent.c printf("levent_table 0x%X\n",j*4+dump->base); dump 52 tools/find_levent.c dump_levent_table(dump,j); dump 74 tools/find_levent.c dump_t dump; dump 105 tools/find_levent.c if(!load_dump(dumpname,base,&dump)) dump 108 tools/find_levent.c if(!process_dump(&dump))