Home | History | Annotate | Download | only in bfd

Lines Matching full:secinfo

52   struct sec_merge_sec_info *secinfo;
125 ret->secinfo = NULL;
263 unsigned int alignment, struct sec_merge_sec_info *secinfo)
271 if (entry->secinfo == NULL)
274 entry->secinfo = secinfo;
288 struct sec_merge_sec_info *secinfo = entry->secinfo;
289 asection *sec = secinfo->sec;
301 for (; entry != NULL && entry->secinfo == secinfo; entry = entry->next)
347 struct sec_merge_sec_info *secinfo;
384 if ((secinfo = sinfo->chain)
385 && ! ((secinfo->sec->flags ^ sec->flags) & (SEC_MERGE | SEC_STRINGS))
386 && secinfo->sec->entsize == sec->entsize
387 && secinfo->sec->alignment_power == sec->alignment_power
388 && secinfo->sec->output_section == sec->output_section)
418 secinfo = (struct sec_merge_sec_info *) *psecinfo;
421 secinfo->next = sinfo->chain->next;
422 sinfo->chain->next = secinfo;
425 secinfo->next = secinfo;
426 sinfo->chain = secinfo;
427 secinfo->sec = sec;
428 secinfo->psecinfo = psecinfo;
429 secinfo->htab = sinfo->htab;
430 secinfo->first_str = NULL;
434 memset (secinfo->contents + sec->size, 0, sec->entsize);
435 contents = secinfo->contents;
449 struct sec_merge_sec_info *secinfo)
451 asection *sec = secinfo->sec;
459 end = secinfo->contents + sec->size;
464 for (p = secinfo->contents; p < end; )
466 eltalign = p - secinfo->contents;
471 secinfo);
479 if (!nul && !((p - secinfo->contents) & mask))
483 (unsigned) mask + 1, secinfo);
499 if (!nul && !((p - secinfo->contents) & mask))
503 (unsigned) mask + 1, secinfo);
514 for (p = secinfo->contents; p < end; p += sec->entsize)
516 entry = sec_merge_add (sinfo->htab, (char *) p, 1, secinfo);
525 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
526 *secinfo->psecinfo = NULL;
600 struct sec_merge_sec_info *secinfo;
659 secinfo = sinfo->htab->first->secinfo;
662 if (e->secinfo != secinfo)
664 secinfo->sec->size = size;
665 secinfo = e->secinfo;
669 if (e->secinfo->first_str == NULL)
671 e->secinfo->first_str = e;
679 secinfo->sec->size = size;
680 if (secinfo->sec->alignment_power != 0)
682 bfd_size_type align = (bfd_size_type) 1 << secinfo->sec->alignment_power;
683 secinfo->sec->size = (secinfo->sec->size + align - 1) & -align;
696 e->secinfo = e->u.suffix->secinfo;
716 struct sec_merge_sec_info * secinfo;
722 secinfo = sinfo->chain;
723 sinfo->chain = secinfo->next;
724 secinfo->next = NULL;
727 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
728 if (secinfo->sec->flags & SEC_EXCLUDE)
730 *secinfo->psecinfo = NULL;
732 (*remove_hook) (abfd, secinfo->sec);
734 else if (! record_section (sinfo, secinfo))
737 if (secinfo)
752 secinfo = NULL;
755 if (e->secinfo->first_str == NULL)
757 if (secinfo)
758 secinfo->sec->size = size;
759 e->secinfo->first_str = e;
766 secinfo = e->secinfo;
768 secinfo->sec->size = size;
773 for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next)
774 if (secinfo->first_str == NULL)
775 secinfo->sec->flags |= SEC_EXCLUDE | SEC_KEEP;
786 struct sec_merge_sec_info *secinfo;
789 secinfo = (struct sec_merge_sec_info *) psecinfo;
791 if (!secinfo)
794 if (secinfo->first_str == NULL)
802 if (! sec_merge_emit (output_bfd, secinfo->first_str))
816 struct sec_merge_sec_info *secinfo;
821 secinfo = (struct sec_merge_sec_info *) psecinfo;
823 if (!secinfo)
834 return secinfo->first_str ? sec->size : 0;
837 if (secinfo->htab->strings)
841 p = secinfo->contents + offset - 1;
842 while (p >= secinfo->contents && *p)
848 p = secinfo->contents + (offset / sec->entsize) * sec->entsize;
850 while (p >= secinfo->contents)
866 p = secinfo->contents + (offset / sec->entsize) * sec->entsize;
868 entry = sec_merge_hash_lookup (secinfo->htab, (char *) p, 0, FALSE);
871 if (! secinfo->htab->strings)
877 if (! secinfo->htab->first)
879 entry = secinfo->htab->first;
880 p = (secinfo->contents + (offset / sec->entsize + 1) * sec->entsize
884 *psec = entry->secinfo->sec;
885 return entry->u.index + (secinfo->contents + offset - p);