//-------------------------------------------------------------------------- static void load_dl_header(linput_t *li) { if ( first_text_subspace_fpos == -1 ) return; qlseek(li, first_text_subspace_fpos); dl_header dl; lread(li, &dl, sizeof(dl)); dl.swap(); switch ( dl.hdr_version ) { case OLD_HDR_VERSION: break; case HDR_VERSION : break; default: msg("Unknown DL header version, skipping...\n"); } if ( dl.string_table_size != 0 ) { dl_ssize = dl.string_table_size; dl_strings = (char *)qalloc(dl_ssize); if ( dl_strings == NULL ) nomem("dl_strings"); qlseek(li, first_text_subspace_fpos+dl.string_table_loc); lread(li, dl_strings, dl_ssize); } if ( dl.dreloc_count ) complain_fixup(); load_imports(li, dl); load_exports(li, dl); qfree(dl_strings); dl_strings = NULL; }
int main(int argc, char **argv) { if(process_args(argc, argv)) { if(load_exports()) { if(g_verbose) { dump_exports(); } switch(g_outputmode) { case PSP_BUILD_EXPORTS: build_exports(); break; /* Do the same for both */ case PSP_BUILD_STUBS_NEW: case PSP_BUILD_STUBS : build_stubs(); break; default : /* Argh */ break; }; } free_lib_data(); } else { print_help(); } return 0; }