static void *GetString( perm_write_info *info, char *str ) /*********************************************************/ { unsigned idx; idx = GetStringTableSize( &info->strtab ); AddStringStringTable( &info->strtab, str ); return( (void *)idx ); }
static void WriteSHStrings( ElfHdr *hdr, int str_idx, stringtable *strtab ) /*************************************************************************/ { Elf32_Shdr *sh; sh = hdr->sh+str_idx; AddSecName(hdr, sh, ".shstrtab"); sh->sh_offset = hdr->curr_off; sh->sh_type = SHT_STRTAB; sh->sh_size = GetStringTableSize( strtab ); hdr->curr_off += sh->sh_size; WriteStringTable( strtab, WriteLoad3, NULL ); }
void AddSecName( ElfHdr *hdr, Elf32_Shdr *sh, char *name ) /***************************************************************/ { sh->sh_name = GetStringTableSize( &hdr->secstrtab ); AddStringStringTable( &hdr->secstrtab, name ); }