doc: list internal commands called by init
[fw/openocd] / src / helper / replacements.h
index ac5009549a347166f035b4f71e32ffea1814d388..4d70d9cf30bb347597fae57f258c44bf93db02dd 100644 (file)
@@ -26,6 +26,7 @@
 #define OPENOCD_HELPER_REPLACEMENTS_H
 
 #include <stdint.h>
+#include <helper/system.h>
 
 /* MIN,MAX macros */
 #ifndef MIN
@@ -241,13 +242,13 @@ static inline int socket_select(int max_fd,
 typedef uint32_t Elf32_Addr;
 typedef uint16_t Elf32_Half;
 typedef uint32_t Elf32_Off;
-typedef int32_t Elf32_Sword;
 typedef uint32_t Elf32_Word;
 typedef uint32_t Elf32_Size;
-typedef Elf32_Off Elf32_Hashelt;
+
+#define EI_NIDENT   16
 
 typedef struct {
-       unsigned char e_ident[16];      /* Magic number and other info */
+       unsigned char e_ident[EI_NIDENT];       /* Magic number and other info */
        Elf32_Half e_type;                      /* Object file type */
        Elf32_Half e_machine;                   /* Architecture */
        Elf32_Word e_version;                   /* Object file version */
@@ -289,8 +290,42 @@ typedef struct {
 
 #endif /* HAVE_ELF_H */
 
-#if defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME
-const char *libusb_error_name(int error_code);
-#endif /* defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME */
+#ifndef HAVE_ELF64
+
+typedef uint64_t Elf64_Addr;
+typedef uint16_t Elf64_Half;
+typedef uint64_t Elf64_Off;
+typedef uint32_t Elf64_Word;
+typedef uint64_t Elf64_Xword;
+
+typedef struct {
+       unsigned char e_ident[EI_NIDENT];       /* Magic number and other info */
+       Elf64_Half e_type;                      /* Object file type */
+       Elf64_Half e_machine;           /* Architecture */
+       Elf64_Word e_version;           /* Object file version */
+       Elf64_Addr e_entry;                     /* Entry point virtual address */
+       Elf64_Off e_phoff;                      /* Program header table file offset */
+       Elf64_Off e_shoff;                      /* Section header table file offset */
+       Elf64_Word e_flags;                     /* Processor-specific flags */
+       Elf64_Half e_ehsize;            /* ELF header size in bytes */
+       Elf64_Half e_phentsize;         /* Program header table entry size */
+       Elf64_Half e_phnum;                     /* Program header table entry count */
+       Elf64_Half e_shentsize;         /* Section header table entry size */
+       Elf64_Half e_shnum;                     /* Section header table entry count */
+       Elf64_Half e_shstrndx;          /* Section header string table index */
+} Elf64_Ehdr;
+
+typedef struct {
+       Elf64_Word p_type;              /* Segment type */
+       Elf64_Word p_flags;             /* Segment flags */
+       Elf64_Off p_offset;             /* Segment file offset */
+       Elf64_Addr p_vaddr;             /* Segment virtual address */
+       Elf64_Addr p_paddr;             /* Segment physical address */
+       Elf64_Xword p_filesz;   /* Segment size in file */
+       Elf64_Xword p_memsz;    /* Segment size in memory */
+       Elf64_Xword p_align;    /* Segment alignment */
+} Elf64_Phdr;
+
+#endif /* HAVE_ELF64 */
 
 #endif /* OPENOCD_HELPER_REPLACEMENTS_H */