Lines Matching refs:table
126 /* Pointer to the symbol table. */
174 /* Hash table mapping symbol names to function infos. */
177 /* Hash table mapping symbol names to variable infos. */
180 /* Head of comp_unit list in the last hash table update. */
222 /* The abbrev hash table. */
234 /* TRUE if there is a line number table associated with this comp. unit. */
244 /* The offset into .debug_line of the line number table. */
278 /* TRUE if symbols are cached in hash table for faster lookup by name. */
393 /* Function to create a new entry in info hash table. */
397 struct bfd_hash_table *table,
406 ret = (struct info_hash_entry *) bfd_hash_allocate (table,
414 bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
423 /* Function to create a new info hash table. It returns a pointer to the
424 newly created table or NULL if there is any error. We need abfd
447 /* Insert an info entry into an info hash table. We do not check of
478 /* Look up an info entry list from an info hash table. Return NULL
843 /* Lookup an abbrev_info structure in the abbrev hash table. */
868 in a hash table. */
969 table is reached. */
1209 /* Source line information table routines. */
1317 add_line_info (struct line_info_table *table,
1327 struct line_sequence* seq = table->sequences;
1328 struct line_info* info = (struct line_info *) bfd_alloc (table->abfd, amt);
1344 info->filename = (char *) bfd_alloc (table->abfd, strlen (filename) + 1);
1361 Note: table->lcl_head is used to head an *actual* or *possible*
1363 headed by table->last_line
1374 if (table->lcl_head == seq->last_line)
1375 table->lcl_head = info;
1387 seq->prev_sequence = table->sequences;
1389 table->lcl_head = info;
1390 table->sequences = seq;
1391 table->num_sequences++;
1400 if (!table->lcl_head)
1401 table->lcl_head = info;
1403 else if (!new_line_sorts_after (info, table->lcl_head)
1404 && (!table->lcl_head->prev_line
1405 || new_line_sorts_after (info, table->lcl_head->prev_line)))
1408 info->prev_line = table->lcl_head->prev_line;
1409 table->lcl_head->prev_line = info;
1427 table->lcl_head = li2;
1428 info->prev_line = table->lcl_head->prev_line;
1429 table->lcl_head->prev_line = info;
1436 /* Extract a fully qualified filename from a line info table.
1441 concat_filename (struct line_info_table *table, unsigned int file)
1445 if (file - 1 >= table->num_files)
1454 filename = table->files[file - 1].name;
1463 if (table->files[file - 1].dir
1465 && table->files[file - 1].dir <= table->num_dirs
1467 && table->dirs != NULL)
1468 subdir_name = table->dirs[table->files[file - 1].dir - 1];
1471 dir_name = table->comp_dir;
1584 sort_line_sequences (struct line_info_table* table)
1590 unsigned int num_sequences = table->num_sequences;
1598 sequences = (struct line_sequence *) bfd_alloc (table->abfd, amt);
1603 seq = table->sequences;
1623 for (n = 1; n < table->num_sequences; n++)
1644 table->sequences = sequences;
1645 table->num_sequences = num_sequences;
1655 struct line_info_table* table;
1671 table = (struct line_info_table *) bfd_alloc (abfd, amt);
1672 if (table == NULL)
1674 table->abfd = abfd;
1675 table->comp_dir = unit->comp_dir;
1677 table->num_files = 0;
1678 table->files = NULL;
1680 table->num_dirs = 0;
1681 table->dirs = NULL;
1683 table->num_sequences = 0;
1684 table->sequences = NULL;
1686 table->lcl_head = NULL;
1801 /* Read directory table. */
1806 if ((table->num_dirs % DIR_ALLOC_CHUNK) == 0)
1810 amt = table->num_dirs + DIR_ALLOC_CHUNK;
1813 tmp = (char **) bfd_realloc (table->dirs, amt);
1816 table->dirs = tmp;
1819 table->dirs[table->num_dirs++] = cur_dir;
1824 /* Read file name table. */
1829 if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
1833 amt = table->num_files + FILE_ALLOC_CHUNK;
1836 tmp = (struct fileinfo *) bfd_realloc (table->files, amt);
1839 table->files = tmp;
1842 table->files[table->num_files].name = cur_file;
1843 table->files[table->num_files].dir =
1846 table->files[table->num_files].time = safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
1848 table->files[table->num_files].size = safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
1850 table->num_files++;
1861 char * filename = table->num_files ? concat_filename (table, 1) : NULL;
1875 /* Decode the table. */
1900 if (!add_line_info (table, address, op_index, filename,
1921 if (!add_line_info (table, address, op_index, filename, line,
1940 if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
1944 amt = table->num_files + FILE_ALLOC_CHUNK;
1946 tmp = (struct fileinfo *) bfd_realloc (table->files, amt);
1949 table->files = tmp;
1951 table->files[table->num_files].name = cur_file;
1952 table->files[table->num_files].dir =
1955 table->files[table->num_files].time =
1958 table->files[table->num_files].size =
1961 table->num_files++;
1982 if (!add_line_info (table, address, op_index,
2020 filename = concat_filename (table, file);
2065 if (sort_line_sequences (table))
2066 return table;
2069 if (table->sequences != NULL)
2070 free (table->sequences);
2071 if (table->files != NULL)
2072 free (table->files);
2073 if (table->dirs != NULL)
2074 free (table->dirs);
2078 /* If ADDR is within TABLE set the output parameters and return the
2085 lookup_address_in_line_info_table (struct line_info_table *table,
2097 high = table->num_sequences;
2101 seq = &table->sequences[mid];
2145 /* Function table functions. */
2150 them being ordered in TABLE by increasing range. */
2190 /* If SYM at ADDR is within function table of UNIT, set FILENAME_PTR
2240 /* Variable table functions. */
2242 /* If SYM is within variable table of UNIT, set FILENAME_PTR and
2449 to the function table and variables to the variable table. */
2794 /* Read the abbrevs for this compilation unit into a table. */
2840 partial symbol table. */
2919 need to consult the line info table to see if a compilation unit
3129 /* There is no need to copy name string into hash table as
3149 /* There is no need to copy name string into hash table as
3387 /* Look up a funcinfo by name using the given info hash table. If found,
3440 /* Look up a varinfo by name using the given info hash table. If found,
3858 SYMBOLS contains the symbol table for ABFD.
3942 /* Keep info hash table up to date if they are available. Note that we
4025 offset of the abbreviation table, should both be 4-byte values.
4105 unit->high == 0), we need to consult the line info table