Lines Matching refs:secinfo

53   struct sec_merge_sec_info *secinfo;  member
126 ret->secinfo = NULL; in sec_merge_hash_newfunc()
264 unsigned int alignment, struct sec_merge_sec_info *secinfo) in sec_merge_add() argument
272 if (entry->secinfo == NULL) in sec_merge_add()
275 entry->secinfo = secinfo; in sec_merge_add()
290 struct sec_merge_sec_info *secinfo = entry->secinfo; in sec_merge_emit() local
291 asection *sec = secinfo->sec; in sec_merge_emit()
305 for (; entry != NULL && entry->secinfo == secinfo; entry = entry->next) in sec_merge_emit()
365 struct sec_merge_sec_info *secinfo; in _bfd_add_merge_section() local
402 if ((secinfo = sinfo->chain) in _bfd_add_merge_section()
403 && ! ((secinfo->sec->flags ^ sec->flags) & (SEC_MERGE | SEC_STRINGS)) in _bfd_add_merge_section()
404 && secinfo->sec->entsize == sec->entsize in _bfd_add_merge_section()
405 && secinfo->sec->alignment_power == sec->alignment_power in _bfd_add_merge_section()
406 && secinfo->sec->output_section == sec->output_section) in _bfd_add_merge_section()
436 secinfo = (struct sec_merge_sec_info *) *psecinfo; in _bfd_add_merge_section()
439 secinfo->next = sinfo->chain->next; in _bfd_add_merge_section()
440 sinfo->chain->next = secinfo; in _bfd_add_merge_section()
443 secinfo->next = secinfo; in _bfd_add_merge_section()
444 sinfo->chain = secinfo; in _bfd_add_merge_section()
445 secinfo->sec = sec; in _bfd_add_merge_section()
446 secinfo->psecinfo = psecinfo; in _bfd_add_merge_section()
447 secinfo->htab = sinfo->htab; in _bfd_add_merge_section()
448 secinfo->first_str = NULL; in _bfd_add_merge_section()
452 memset (secinfo->contents + sec->size, 0, sec->entsize); in _bfd_add_merge_section()
453 contents = secinfo->contents; in _bfd_add_merge_section()
467 struct sec_merge_sec_info *secinfo) in record_section() argument
469 asection *sec = secinfo->sec; in record_section()
477 end = secinfo->contents + sec->size; in record_section()
482 for (p = secinfo->contents; p < end; ) in record_section()
484 eltalign = p - secinfo->contents; in record_section()
489 secinfo); in record_section()
497 if (!nul && !((p - secinfo->contents) & mask)) in record_section()
501 (unsigned) mask + 1, secinfo); in record_section()
517 if (!nul && !((p - secinfo->contents) & mask)) in record_section()
521 (unsigned) mask + 1, secinfo); in record_section()
532 for (p = secinfo->contents; p < end; p += sec->entsize) in record_section()
534 entry = sec_merge_add (sinfo->htab, (char *) p, 1, secinfo); in record_section()
543 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next) in record_section()
544 *secinfo->psecinfo = NULL; in record_section()
618 struct sec_merge_sec_info *secinfo; in merge_strings() local
675 secinfo = sinfo->htab->first->secinfo; in merge_strings()
678 if (e->secinfo != secinfo) in merge_strings()
680 secinfo->sec->size = size; in merge_strings()
681 secinfo = e->secinfo; in merge_strings()
685 if (e->secinfo->first_str == NULL) in merge_strings()
687 e->secinfo->first_str = e; in merge_strings()
695 secinfo->sec->size = size; in merge_strings()
696 if (secinfo->sec->alignment_power != 0) in merge_strings()
698 bfd_size_type align = (bfd_size_type) 1 << secinfo->sec->alignment_power; in merge_strings()
699 secinfo->sec->size = (secinfo->sec->size + align - 1) & -align; in merge_strings()
712 e->secinfo = e->u.suffix->secinfo; in merge_strings()
733 struct sec_merge_sec_info * secinfo; in _bfd_merge_sections() local
739 secinfo = sinfo->chain; in _bfd_merge_sections()
740 sinfo->chain = secinfo->next; in _bfd_merge_sections()
741 secinfo->next = NULL; in _bfd_merge_sections()
744 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next) in _bfd_merge_sections()
745 if (secinfo->sec->flags & SEC_EXCLUDE) in _bfd_merge_sections()
747 *secinfo->psecinfo = NULL; in _bfd_merge_sections()
749 (*remove_hook) (abfd, secinfo->sec); in _bfd_merge_sections()
751 else if (! record_section (sinfo, secinfo)) in _bfd_merge_sections()
754 if (secinfo) in _bfd_merge_sections()
772 secinfo = NULL; in _bfd_merge_sections()
775 if (e->secinfo->first_str == NULL) in _bfd_merge_sections()
777 if (secinfo) in _bfd_merge_sections()
778 secinfo->sec->size = size; in _bfd_merge_sections()
779 e->secinfo->first_str = e; in _bfd_merge_sections()
786 secinfo = e->secinfo; in _bfd_merge_sections()
788 secinfo->sec->size = size; in _bfd_merge_sections()
793 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next) in _bfd_merge_sections()
794 if (secinfo->first_str == NULL) in _bfd_merge_sections()
795 secinfo->sec->flags |= SEC_EXCLUDE | SEC_KEEP; in _bfd_merge_sections()
806 struct sec_merge_sec_info *secinfo; in _bfd_write_merged_section() local
811 secinfo = (struct sec_merge_sec_info *) psecinfo; in _bfd_write_merged_section()
813 if (!secinfo) in _bfd_write_merged_section()
816 if (secinfo->first_str == NULL) in _bfd_write_merged_section()
838 if (! sec_merge_emit (output_bfd, secinfo->first_str, contents, in _bfd_write_merged_section()
853 struct sec_merge_sec_info *secinfo; in _bfd_merged_section_offset() local
858 secinfo = (struct sec_merge_sec_info *) psecinfo; in _bfd_merged_section_offset()
860 if (!secinfo) in _bfd_merged_section_offset()
870 return secinfo->first_str ? sec->size : 0; in _bfd_merged_section_offset()
873 if (secinfo->htab->strings) in _bfd_merged_section_offset()
877 p = secinfo->contents + offset - 1; in _bfd_merged_section_offset()
878 while (p >= secinfo->contents && *p) in _bfd_merged_section_offset()
884 p = secinfo->contents + (offset / sec->entsize) * sec->entsize; in _bfd_merged_section_offset()
886 while (p >= secinfo->contents) in _bfd_merged_section_offset()
902 p = secinfo->contents + (offset / sec->entsize) * sec->entsize; in _bfd_merged_section_offset()
904 entry = sec_merge_hash_lookup (secinfo->htab, (char *) p, 0, FALSE); in _bfd_merged_section_offset()
907 if (! secinfo->htab->strings) in _bfd_merged_section_offset()
913 if (! secinfo->htab->first) in _bfd_merged_section_offset()
915 entry = secinfo->htab->first; in _bfd_merged_section_offset()
916 p = (secinfo->contents + (offset / sec->entsize + 1) * sec->entsize in _bfd_merged_section_offset()
920 *psec = entry->secinfo->sec; in _bfd_merged_section_offset()
921 return entry->u.index + (secinfo->contents + offset - p); in _bfd_merged_section_offset()