use crate::{Elf64Addr, Elf64Off, Elf64Word, Elf64Xword};
use super::SectionHeaderType;
#[derive(Clone, Default, Debug)]
pub struct Elf64SectionHeader {
pub name: Elf64Word,
pub section_type: SectionHeaderType,
pub flags: Elf64Xword,
pub addr: Elf64Addr,
pub offset: Elf64Off,
pub size: Elf64Xword,
pub link: Elf64Word,
pub info: Elf64Word,
pub addralign: Elf64Xword,
pub entsize: Elf64Xword,
}
impl From<RawElf64SectionHeader> for Elf64SectionHeader {
fn from(value: RawElf64SectionHeader) -> Self {
Self {
name: value.sh_name,
section_type: SectionHeaderType::from(value.sh_type),
flags: value.sh_flags,
addr: value.sh_addr,
offset: value.sh_offset,
size: value.sh_size,
link: value.sh_link,
info: value.sh_info,
addralign: value.sh_addralign,
entsize: value.sh_entsize,
}
}
}
#[derive(Clone, Default, Debug)]
pub struct RawElf64SectionHeader {
pub sh_name: Elf64Word,
pub sh_type: Elf64Word,
pub sh_flags: Elf64Xword,
pub sh_addr: Elf64Addr,
pub sh_offset: Elf64Off,
pub sh_size: Elf64Xword,
pub sh_link: Elf64Word,
pub sh_info: Elf64Word,
pub sh_addralign: Elf64Xword,
pub sh_entsize: Elf64Xword,
}