use crate::prelude::*;
use super::{ProgramHeaderFlagSet, ProgramHeaderType};
#[derive(Clone, Default)]
pub struct Elf64ProgramHeader {
pub header_type: ProgramHeaderType,
pub flags: ProgramHeaderFlagSet,
pub offset: Elf64Off,
pub vaddr: Elf64Addr,
pub paddr: Elf64Addr,
pub filesz: Elf64Xword,
pub memsz: Elf64Xword,
pub align: Elf64Xword,
}
impl From<RawElf64ProgramHeader> for Elf64ProgramHeader {
fn from(value: RawElf64ProgramHeader) -> Self {
Self {
header_type: ProgramHeaderType::from(value.p_type),
flags: ProgramHeaderFlagSet::from(value.p_flags),
offset: value.p_offset,
vaddr: value.p_vaddr,
paddr: value.p_paddr,
filesz: value.p_filesz,
memsz: value.p_memsz,
align: value.p_align,
}
}
}
#[derive(Clone, Default, Debug)]
pub struct RawElf64ProgramHeader {
pub p_type: Elf64Word,
pub p_flags: Elf64Word,
pub p_offset: Elf64Off,
pub p_vaddr: Elf64Addr,
pub p_paddr: Elf64Addr,
pub p_filesz: Elf64Xword,
pub p_memsz: Elf64Xword,
pub p_align: Elf64Xword,
}