RTEMS  5.1
rtl-unresolved.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT (c) 2012, 2019 Chris Johns <chrisj@rtems.org>
3  *
4  * The license and distribution terms for this file may be
5  * found in the file LICENSE in this distribution or at
6  * http://www.rtems.org/license/LICENSE.
7  */
52 #if !defined (_RTEMS_RTL_UNRESOLVED_H_)
53 #define _RTEMS_RTL_UNRESOLVED_H_
54 
55 #include <rtems.h>
56 #include <rtems/chain.h>
57 #include "rtl-obj-fwd.h"
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif /* __cplusplus */
62 
67 typedef uint32_t rtems_rtl_word;
68 
73 {
79 
83 #define RTEMS_RTL_UNRESOLV_SYM_SEARCH_ARCHIVE (1 << 0)
84 #define RTEMS_RTL_UNRESOLV_SYM_HAS_ERROR (1 << 1)
95 typedef struct rtems_rtl_unresolv_symbol
96 {
97  uint16_t refs;
98  uint16_t flags;
99  uint16_t length;
100  const char name[];
102 
107 typedef struct rtems_rtl_unresolv_reloc
108 {
109  rtems_rtl_obj* obj;
110  uint16_t flags;
111  uint16_t name;
112  uint16_t sect;
115 
119 typedef struct rtems_rtl_tramp_reloc
120 {
121  rtems_rtl_obj* obj;
122  uint16_t flags;
123  uint16_t sect;
127 
131 typedef struct rtems_rtl_unresolv_rec
132 {
134  union
135  {
139  } rec;
141 
145 typedef struct rtems_rtl_unresolv_block
146 {
148  uint32_t recs;
151 
155 typedef struct rtems_rtl_unresolved
156 {
157  uint32_t marker;
158  size_t block_recs;
161 
171  void* data);
172 
183  size_t block_records);
184 
191 
196  void* data);
197 
211  const uint16_t flags,
212  const char* name,
213  const uint16_t sect,
214  const rtems_rtl_word* rel);
215 
219 void rtems_rtl_unresolved_resolve (void);
220 
230  const char* name,
231  const uint16_t sect,
232  const rtems_rtl_word* rel);
233 
239 
243 void rtems_rtl_unresolved_dump (void);
244 
245 #ifdef __cplusplus
246 }
247 #endif /* __cplusplus */
248 
249 #endif
Definition: rtl-unresolved.h:75
Definition: rtl-unresolved.h:108
Definition: chain.h:68
uint16_t flags
Definition: rtl-unresolved.h:111
bool rtems_rtl_unresolved_add(rtems_rtl_obj *obj, const uint16_t flags, const char *name, const uint16_t sect, const rtems_rtl_word *rel)
Definition: rtl-unresolved.c:535
rtems_chain_control blocks
Definition: rtl-unresolved.h:160
rtems_rtl_obj * obj
Definition: rtl-unresolved.h:122
rtems_rtl_tramp_reloc tramp
Definition: rtl-unresolved.h:139
size_t block_recs
Definition: rtl-unresolved.h:159
rtems_chain_node link
Definition: rtl-unresolved.h:148
void rtems_rtl_unresolved_table_close(rtems_rtl_unresolved *unresolved)
Definition: rtl-unresolved.c:497
rtems_rtl_unresolved_rtype
Definition: rtl-unresolved.h:72
bool rtems_rtl_unresolved_iterator(rtems_rtl_unresolv_rec *rec, void *data)
Definition: rtl-unresolved.h:171
Definition: rtl-unresolved.h:156
Definition: chain.h:86
Definition: rtl-obj.h:183
uint16_t name
Definition: rtl-unresolved.h:112
uint16_t flags
Definition: rtl-unresolved.h:123
Definition: rtl-unresolved.h:120
void rtems_rtl_unresolved_dump(void)
Definition: rtl-unresolved.c:808
uint16_t sect
Definition: rtl-unresolved.h:113
rtems_rtl_unresolv_rec rec[]
Definition: rtl-unresolved.h:150
bool rtems_rtl_unresolved_table_open(rtems_rtl_unresolved *unresolved, size_t block_records)
Definition: rtl-unresolved.c:487
rtems_rtl_obj * obj
Definition: rtl-unresolved.h:110
struct rtems_rtl_unresolv_rec rtems_rtl_unresolv_rec
rtems_rtl_word symvalue
Definition: rtl-unresolved.h:125
void rtems_rtl_unresolved_resolve(void)
Definition: rtl-unresolved.c:636
uint32_t recs
Definition: rtl-unresolved.h:149
uint16_t sect
Definition: rtl-unresolved.h:124
bool rtems_rtl_unresolved_iterate(rtems_rtl_unresolved_iterator iterator, void *data)
Definition: rtl-unresolved.c:509
Definition: rtl-unresolved.h:76
bool rtems_rtl_unresolved_remove(rtems_rtl_obj *obj, const char *name, const uint16_t sect, const rtems_rtl_word *rel)
rtems_rtl_word rel[3]
Definition: rtl-unresolved.h:126
Chain API.
rtems_rtl_unresolv_reloc reloc
Definition: rtl-unresolved.h:138
Definition: rtl-unresolved.h:77
Definition: rtl-unresolved.h:96
struct rtems_rtl_unresolv_block rtems_rtl_unresolv_block
Definition: rtl-unresolved.h:132
rtems_rtl_word rel[3]
Definition: rtl-unresolved.h:114
void rtems_rtl_unresolved_set_archive_search(void)
Definition: rtl-unresolved.c:816
uint32_t rtems_rtl_word
Definition: rtl-unresolved.h:67
uint32_t marker
Definition: rtl-unresolved.h:158
struct rtems_rtl_unresolved rtems_rtl_unresolved
Definition: rtl-unresolved.h:146
RTEMS Run-Time Linker ELF Headers.
struct rtems_rtl_tramp_reloc rtems_rtl_tramp_reloc
Definition: rtl-unresolved.h:74
rtems_rtl_unresolv_symbol name
Definition: rtl-unresolved.h:137
struct rtems_rtl_unresolv_symbol rtems_rtl_unresolv_symbol
struct rtems_rtl_unresolv_reloc rtems_rtl_unresolv_reloc