summaryrefslogtreecommitdiff
path: root/tools/elf2uf2/elf.h
diff options
context:
space:
mode:
authorLoïc Guégan <manzerbredes@mailbox.org>2025-03-24 09:33:49 +0100
committerLoïc Guégan <manzerbredes@mailbox.org>2025-03-24 09:33:49 +0100
commit7741f014456df395b655b72d9ebb848af72cc37e (patch)
tree5ddae273929780ac7c0af2a26b64ba1a382e4b05 /tools/elf2uf2/elf.h
parentd3ecfe3498d73d3ba924063bc1001cca3f333170 (diff)
Init repository
Diffstat (limited to 'tools/elf2uf2/elf.h')
-rw-r--r--tools/elf2uf2/elf.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/elf2uf2/elf.h b/tools/elf2uf2/elf.h
new file mode 100644
index 0000000..e39c167
--- /dev/null
+++ b/tools/elf2uf2/elf.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _ELF_H
+#define _ELF_H
+
+#include <stdint.h>
+
+#define ELF_MAGIC 0x464c457fu
+
+#define EM_ARM 0x28u
+
+#define EF_ARM_ABI_FLOAT_HARD 0x00000400u
+
+#define PT_LOAD 0x00000001u
+
+#pragma pack(push, 1)
+struct elf_header {
+ uint32_t magic;
+ uint8_t arch_class;
+ uint8_t endianness;
+ uint8_t version;
+ uint8_t abi;
+ uint8_t abi_version;
+ uint8_t _pad[7];
+ uint16_t type;
+ uint16_t machine;
+ uint32_t version2;
+};
+
+struct elf32_header {
+ struct elf_header common;
+ uint32_t entry;
+ uint32_t ph_offset;
+ uint32_t sh_offset;
+ uint32_t flags;
+ uint16_t eh_size;
+ uint16_t ph_entry_size;
+ uint16_t ph_num;
+ uint16_t sh_entry_size;
+ uint16_t sh_num;
+ uint16_t sh_str_index;
+};
+
+struct elf32_ph_entry {
+ uint32_t type;
+ uint32_t offset;
+ uint32_t vaddr;
+ uint32_t paddr;
+ uint32_t filez;
+ uint32_t memsz;
+ uint32_t flags;
+ uint32_t align;
+};
+#pragma pack(pop)
+
+#endif