39 typedef uint16_t cle_off;
40 typedef uint16_t cle_word;
41 typedef uint16_t cle_half;
45 typedef uint32_t cle_addr;
47 typedef uintptr_t cle_addr;
50 typedef char cle_scratch[32];
56 cle_off textrelaoff, datarelaoff;
57 cle_word textrelasize, datarelasize;
59 cle_off textoff, dataoff;
60 cle_word textsize, datasize, bsssize;
62 cle_off symtaboff, strtaboff;
65 unsigned char text_shndx;
66 unsigned char data_shndx;
67 unsigned char bss_shndx;
68 unsigned char unused_shndx;
74 cle_read_info(
struct cle_info *info,
75 int (*read)(
void *,
int, off_t),
79 cle_relocate(
struct cle_info *info,
80 int (*read)(
void *,
int, off_t),
87 cle_lookup(
struct cle_info *info,
88 int (*read)(
void *,
int, off_t),
94 int cle_write_reloc(
void *,
95 const struct elf32_rela *,
97 const struct cle_info *);
103 #define CLE_BAD_HEADER 1
104 #define CLE_NO_SYMTAB 2
105 #define CLE_NO_STRTAB 3
106 #define CLE_NO_TEXT 4
107 #define CLE_UNDEFINED 5
108 #define CLE_UNKNOWN_SEGMENT 6
109 #define CLE_NO_STARTPOINT 7
110 #define CLE_TEXT_TO_LARGE 8
111 #define CLE_DATA_TO_LARGE 9
112 #define CLE_UNKNOWN_RELOC 10
113 #define CLE_MULTIPLY_DEFINED 11