Lines Matching refs:symbol
98 struct symbol { struct
101 struct symbol *next; argument
154 static void free_symbol(struct symbol *symbol)
156 if (symbol == NULL)
158 if (symbol->name)
159 free(symbol->name);
160 free(symbol);
164 static void insert_symbol(struct symbol *symbol) in insert_symbol() argument
166 static struct symbol *prev = NULL; in insert_symbol()
167 struct symbol *s = symbol_table; in insert_symbol()
170 symbol_table = symbol; in insert_symbol()
171 symbol->next = NULL; in insert_symbol()
177 && prev->address <= symbol->address in insert_symbol()
178 && (!prev->next || prev->next->address > symbol->address)) { in insert_symbol()
182 while (s->next && s->next->address <= symbol->address) in insert_symbol()
186 symbol->next = s->next; in insert_symbol()
187 s->next = symbol; in insert_symbol()
188 prev = symbol; in insert_symbol()
191 static struct symbol *lookup_symbol(guest_word_t address) in lookup_symbol()
193 struct symbol *s = symbol_table; in lookup_symbol()
206 struct symbol *s; in print_symbol()
226 struct symbol *symbol; in read_symbol_table() local
266 symbol = malloc(sizeof(*symbol)); in read_symbol_table()
267 if (symbol == NULL) { in read_symbol_table()
272 symbol->address = address; in read_symbol_table()
273 symbol->name = strdup(p); in read_symbol_table()
274 if (symbol->name == NULL) { in read_symbol_table()
275 free(symbol); in read_symbol_table()
280 insert_symbol(symbol); in read_symbol_table()