owl_file_handle OWLENTRY OWLFileInit( owl_handle handle, const char *name, owl_client_file client_handle, owl_format format, owl_file_type type ) { //************************************************************************************************************************************************* owl_file_handle file; file = handle->client_funcs.alloc( sizeof( *file ) ); file->info = handle; file->format = format; file->client_handle = client_handle; file->log = NULL; file->type = type; file->string_table = OWLStringInit( file ); file->symbol_table = OWLSymbolTableInit( file ); file->sections = NULL; file->next_index = 0; file->name = NULL; addFile( handle, file ); OWLFileSymbol( file, name ); file->name = OWLStringAdd( file->string_table, name ); return( file ); }
void main( int argc, char *argv[] ) { char buffer[ BUFFER_SIZE ]; owl_handle owl; owl_file_handle file; owl_string_table *table; owl_client_funcs funcs = { NULL, NULL, NULL, malloc, free }; char *t_buff; owl = OWLInit( &funcs, OWL_CPU_PPC ); file = OWLFileInit( owl, "test", NULL, OWL_FORMAT_ELF, OWL_FILE_OBJECT ); table = OWLStringInit( file ); while( fgets( buffer, BUFFER_SIZE, stdin ) != NULL ) { addStrings( table, buffer ); OWLStringDump( table ); } t_buff = malloc( OWLStringTableSize( table ) + 1 ); OWLStringEmit( table, t_buff ); write( STDOUT_FILENO, t_buff, OWLStringTableSize( table ) ); free( t_buff ); OWLStringFini( table ); OWLFileFini( file ); OWLFini( owl ); }