Lines Matching defs:table

57     symbol_table_t* table = NULL;
58 ALOGV("Loading symbol table from '%s'.", filename);
98 table = malloc(sizeof(symbol_table_t));
99 if(!table) {
102 table->num_symbols = 0;
126 // Iterate through the dynamic symbol table, and count how many symbols
137 // Iterate through the symbol table, and count how many symbols
149 // Now, create an entry in our symbol table structure for each symbol...
150 table->num_symbols += symbol_count + dynsymbol_count;
151 table->symbols = malloc(table->num_symbols * sizeof(symbol_t));
152 if (!table->symbols) {
153 free(table);
154 table = NULL;
163 table->symbols[symbol_index].name = strdup(dynstr + dynsyms[i].st_name);
164 table->symbols[symbol_index].start = dynsyms[i].st_value;
165 table->symbols[symbol_index].end = dynsyms[i].st_value + dynsyms[i].st_size;
167 symbol_index, table->symbols[symbol_index].name,
168 table->symbols[symbol_index].start, table->symbols[symbol_index].end);
181 table->symbols[symbol_index].name = strdup(str + syms[i].st_name);
182 table->symbols[symbol_index].start = syms[i].st_value;
183 table->symbols[symbol_index].end = syms[i].st_value + syms[i].st_size;
185 symbol_index, table->symbols[symbol_index].name,
186 table->symbols[symbol_index].start, table->symbols[symbol_index].end);
192 // Sort the symbol table entries, so they can be bsearched later
193 qsort(table->symbols, table->num_symbols, sizeof(symbol_t), qcompar);
202 return table;
205 void free_symbol_table(symbol_table_t* table) {
206 if (table) {
207 for (size_t i = 0; i < table->num_symbols; i++) {
208 free(table->symbols[i].name);
210 free(table->symbols);
211 free(table);
215 const symbol_t* find_symbol(const symbol_table_t* table, uintptr_t addr) {
216 if (!table) return NULL;
217 return (const symbol_t*)bsearch(&addr, table->symbols, table->num_symbols,