Lines Matching refs:shdr
340 GElf_Shdr shdr; in sort_iidescs() local
354 gelf_getshdr(scn, &shdr); in sort_iidescs()
355 nent = shdr.sh_size / shdr.sh_entsize; in sort_iidescs()
357 scn = elf_getscn(elf, shdr.sh_link); in sort_iidescs()
461 GElf_Shdr shdr; in write_file() local
540 gelf_getshdr(sscn, &shdr); in write_file()
557 pad = new_offset % shdr.sh_addralign; in write_file()
560 new_offset += shdr.sh_addralign - pad; in write_file()
561 shdr.sh_offset = new_offset; in write_file()
564 shdr.sh_link = secxlate[shdr.sh_link]; in write_file()
566 if (shdr.sh_type == SHT_REL || shdr.sh_type == SHT_RELA) in write_file()
567 shdr.sh_info = secxlate[shdr.sh_info]; in write_file()
569 sname = elf_strptr(src, sehdr.e_shstrndx, shdr.sh_name); in write_file()
572 shdr.sh_name); in write_file()
576 if (gelf_update_shdr(dscn, &shdr) == 0) in write_file()
603 ddata->d_buf = xmalloc(ddata->d_size + shdr.sh_size + in write_file()
605 bcopy(sdata->d_buf, ddata->d_buf, shdr.sh_size); in write_file()
606 strcpy((caddr_t)ddata->d_buf + shdr.sh_size, in write_file()
608 ctfnameoff = (off_t)shdr.sh_size; in write_file()
609 shdr.sh_size += seclen + 1; in write_file()
616 if (shdr.sh_type == symtab_type && shdr.sh_entsize != 0) { in write_file()
617 int nsym = shdr.sh_size / shdr.sh_entsize; in write_file()
621 ddata->d_buf = xmalloc(shdr.sh_size); in write_file()
622 bcopy(sdata->d_buf, ddata->d_buf, shdr.sh_size); in write_file()
646 ddata->d_buf = xmalloc(shdr.sh_size); in write_file()
647 bcopy(sdata->d_buf, ddata->d_buf, shdr.sh_size); in write_file()
651 if (gelf_update_shdr(dscn, &shdr) == 0) in write_file()
654 new_offset = (off_t)shdr.sh_offset; in write_file()
655 if (shdr.sh_type != SHT_NOBITS) in write_file()
656 new_offset += shdr.sh_size; in write_file()
666 gelf_getshdr(dscn, &shdr); in write_file()
667 shdr.sh_name = ctfnameoff; in write_file()
668 shdr.sh_type = SHT_PROGBITS; in write_file()
669 shdr.sh_size = ctfsize; in write_file()
670 shdr.sh_link = symtab_idx; in write_file()
671 shdr.sh_addralign = 4; in write_file()
673 pad = new_offset % shdr.sh_addralign; in write_file()
676 new_offset += shdr.sh_addralign - pad; in write_file()
678 shdr.sh_offset = new_offset; in write_file()
679 new_offset += shdr.sh_size; in write_file()
685 ddata->d_align = shdr.sh_addralign; in write_file()
688 gelf_update_shdr(dscn, &shdr); in write_file()