[PATCH v3 06/22] rtemstoolkit/elf: Add data size and endian support to the ELF interface.

Chris Johns chrisj at rtems.org
Mon Jun 18 02:29:04 UTC 2018


---
 rtemstoolkit/rld-elf.cpp | 22 ++++++++++++++++++++++
 rtemstoolkit/rld-elf.h   | 10 ++++++++++
 2 files changed, 32 insertions(+)

diff --git a/rtemstoolkit/rld-elf.cpp b/rtemstoolkit/rld-elf.cpp
index 2d3d090..60ba484 100644
--- a/rtemstoolkit/rld-elf.cpp
+++ b/rtemstoolkit/rld-elf.cpp
@@ -1082,6 +1082,28 @@ namespace rld
       return writable;
     }
 
+    size_t
+    file::machine_size () const
+    {
+      size_t bytes;
+      switch (object_class ())
+      {
+      case ELFCLASS64:
+        bytes = sizeof (uint64_t);
+        break;
+      default:
+        bytes = sizeof (uint32_t);
+        break;
+      }
+      return bytes;
+    }
+
+    bool
+    file::is_little_endian () const
+    {
+      return data_type () == ELFDATA2LSB;
+    }
+
     void
     file::check (const char* where) const
     {
diff --git a/rtemstoolkit/rld-elf.h b/rtemstoolkit/rld-elf.h
index 92e92c1..4919135 100644
--- a/rtemstoolkit/rld-elf.h
+++ b/rtemstoolkit/rld-elf.h
@@ -655,6 +655,16 @@ namespace rld
        */
       void reference_release ();
 
+      /**
+       * Get the machine size in bytes.
+       */
+      size_t machine_size () const;
+
+      /**
+       * Returns true if little endian.
+       */
+      bool is_little_endian () const;
+
     private:
 
       /**
-- 
2.15.1




More information about the devel mailing list