]> git.proxmox.com Git - rustc.git/blobdiff - vendor/linux-raw-sys/src/elf.rs
New upstream version 1.75.0+dfsg1
[rustc.git] / vendor / linux-raw-sys / src / elf.rs
index 0141329f651ba7efaa6882b30c52faa767d8aff6..d4a641067cf556b41966811cf11bdb131d7dfc5a 100644 (file)
@@ -42,6 +42,9 @@ pub const DT_SYMTAB: usize = 6;
 pub const DT_RELA: usize = 7;
 pub const DT_RELASZ: usize = 8;
 pub const DT_RELAENT: usize = 9;
+pub const DT_REL: usize = 17;
+pub const DT_RELSZ: usize = 18;
+pub const DT_RELENT: usize = 19;
 pub const DT_SYMENT: usize = 11;
 pub const DT_VERSYM: usize = 0x6fff_fff0;
 pub const DT_VERDEF: usize = 0x6fff_fffc;
@@ -233,6 +236,34 @@ impl Elf_Rela {
     }
 }
 
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+pub struct Elf_Rel {
+    pub r_offset: usize,
+    pub r_info: u32,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+pub struct Elf_Rel {
+    pub r_offset: usize,
+    pub r_info: u64,
+}
+
+impl Elf_Rel {
+    #[inline]
+    pub fn type_(&self) -> u32 {
+        #[cfg(target_pointer_width = "32")]
+        {
+            self.r_info & 0xff
+        }
+        #[cfg(target_pointer_width = "64")]
+        {
+            (self.r_info & 0xffff_ffff) as u32
+        }
+    }
+}
+
 #[cfg(target_arch = "x86_64")]
 pub const R_RELATIVE: u32 = 8; // `R_X86_64_RELATIVE`
 #[cfg(target_arch = "x86")]