Skip to main content

userspace/file/format/elf/header/
class_32.rs

1use crate::file::format::elf::dtype::class_32::*;
2
3ample::r#struct!(
4    #[repr(C)]
5    pub struct Header32 {
6        pub e_ident: super::Identifier,
7        pub e_type: Half,
8        pub e_machine: Half,
9        pub e_version: Word,
10        pub e_entry: Addr,
11        pub e_phoff: Off,
12        pub e_shoff: Off,
13        pub e_flags: Word,
14        pub e_ehsize: Half,
15        pub e_phentsize: Half,
16        pub e_phnum: Half,
17        pub e_shentsize: Half,
18        pub e_shnum: Half,
19        pub e_shstrndx: Half,
20    }
21);
22
23impl core::fmt::Debug for Header32 {
24    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25        write!(f, "Header32 {{\n")?;
26        write!(f, "\tident     ({:?})\n", self.e_ident)?;
27        write!(f, "\ttype      ({:?})\n", self.e_type)?;
28        write!(f, "\tmachine   ({:?})\n", self.e_machine)?;
29        write!(f, "\tversion   ({:?})\n", self.e_version)?;
30        write!(f, "\tentry     ({:?})\n", self.e_entry)?;
31        write!(f, "\tphoff     ({:?})\n", self.e_phoff)?;
32        write!(f, "\tshoff     ({:?})\n", self.e_shoff)?;
33        write!(f, "\tflags     ({:?})\n", self.e_flags)?;
34        write!(f, "\tehsize    ({:?})\n", self.e_ehsize)?;
35        write!(f, "\tphentsize ({:?})\n", self.e_phentsize)?;
36        write!(f, "\tphnum     ({:?})\n", self.e_phnum)?;
37        write!(f, "\tshentsize ({:?})\n", self.e_shentsize)?;
38        write!(f, "\tshnum     ({:?})\n", self.e_shnum)?;
39        write!(f, "\tshstrndx  ({:?})\n", self.e_shstrndx)?;
40        write!(f, "}} Header64")
41    }
42}