RTEMS 6.1-rc5
Loading...
Searching...
No Matches
rtl-unresolved.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/*
4 * COPYRIGHT (c) 2012, 2019 Chris Johns <chrisj@rtems.org>
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
71#if !defined (_RTEMS_RTL_UNRESOLVED_H_)
72#define _RTEMS_RTL_UNRESOLVED_H_
73
74#include <rtems.h>
75#include <rtems/chain.h>
76#include "rtl-obj-fwd.h"
77
78#ifdef __cplusplus
79extern "C" {
80#endif /* __cplusplus */
81
86typedef uint32_t rtems_rtl_word;
87
92{
98
102#define RTEMS_RTL_UNRESOLV_SYM_SEARCH_ARCHIVE (1 << 0)
103#define RTEMS_RTL_UNRESOLV_SYM_HAS_ERROR (1 << 1)
115{
116 uint16_t refs;
117 uint16_t flags;
118 uint16_t length;
119 const char name[];
121
127{
129 uint16_t flags;
130 uint16_t name;
131 uint16_t sect;
134
139{
141 uint16_t flags;
142 uint16_t sect;
146
151{
153 union
154 {
158 } rec;
160
165{
167 uint32_t recs;
170
175{
176 uint32_t marker;
177 size_t block_recs;
180
190 void* data);
191
202 size_t block_records);
203
210
215 void* data);
216
230 const uint16_t flags,
231 const char* name,
232 const uint16_t sect,
233 const rtems_rtl_word* rel);
234
239
249 const char* name,
250 const uint16_t sect,
251 const rtems_rtl_word* rel);
252
258
262void rtems_rtl_unresolved_dump (void);
263
264#ifdef __cplusplus
265}
266#endif /* __cplusplus */
267
268#endif
This header file provides the Chains API.
This header file defines the RTEMS Classic API.
RTEMS Run-Time Linker ELF Headers.
bool rtems_rtl_unresolved_iterate(rtems_rtl_unresolved_iterator iterator, void *data)
Definition: rtl-unresolved.c:529
void rtems_rtl_unresolved_resolve(void)
Definition: rtl-unresolved.c:656
rtems_rtl_unresolved_rtype
Definition: rtl-unresolved.h:92
@ rtems_rtl_unresolved_reloc
Definition: rtl-unresolved.h:95
@ rtems_rtl_unresolved_symbol
Definition: rtl-unresolved.h:94
@ rtems_rtl_unresolved_empty
Definition: rtl-unresolved.h:93
@ rtems_rtl_trampoline_reloc
Definition: rtl-unresolved.h:96
uint32_t rtems_rtl_word
Definition: rtl-unresolved.h:86
void rtems_rtl_unresolved_dump(void)
Definition: rtl-unresolved.c:828
void rtems_rtl_unresolved_set_archive_search(void)
Definition: rtl-unresolved.c:836
bool rtems_rtl_unresolved_iterator(rtems_rtl_unresolv_rec *rec, void *data)
Definition: rtl-unresolved.h:189
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:555
bool rtems_rtl_unresolved_remove(rtems_rtl_obj *obj, const char *name, const uint16_t sect, const rtems_rtl_word *rel)
void rtems_rtl_unresolved_table_close(rtems_rtl_unresolved *unresolved)
Definition: rtl-unresolved.c:517
bool rtems_rtl_unresolved_table_open(rtems_rtl_unresolved *unresolved, size_t block_records)
Definition: rtl-unresolved.c:507
This structure represents a chain node.
Definition: chain.h:78
Definition: rtl-obj.h:200
Definition: rtl-unresolved.h:139
rtems_rtl_word symvalue
Definition: rtl-unresolved.h:143
uint16_t sect
Definition: rtl-unresolved.h:142
rtems_rtl_obj * obj
Definition: rtl-unresolved.h:140
uint16_t flags
Definition: rtl-unresolved.h:141
rtems_rtl_word rel[3]
Definition: rtl-unresolved.h:144
Definition: rtl-unresolved.h:165
uint32_t recs
Definition: rtl-unresolved.h:167
rtems_rtl_unresolv_rec rec[]
Definition: rtl-unresolved.h:168
rtems_chain_node link
Definition: rtl-unresolved.h:166
Definition: rtl-unresolved.h:151
rtems_rtl_unresolv_symbol name
Definition: rtl-unresolved.h:155
rtems_rtl_tramp_reloc tramp
Definition: rtl-unresolved.h:157
rtems_rtl_unresolv_reloc reloc
Definition: rtl-unresolved.h:156
Definition: rtl-unresolved.h:127
rtems_rtl_obj * obj
Definition: rtl-unresolved.h:128
uint16_t flags
Definition: rtl-unresolved.h:129
uint16_t name
Definition: rtl-unresolved.h:130
rtems_rtl_word rel[3]
Definition: rtl-unresolved.h:132
uint16_t sect
Definition: rtl-unresolved.h:131
Definition: rtl-unresolved.h:115
uint16_t flags
Definition: rtl-unresolved.h:117
uint16_t length
Definition: rtl-unresolved.h:118
uint16_t refs
Definition: rtl-unresolved.h:116
const char name[]
Definition: rtl-unresolved.h:119
Definition: rtl-unresolved.h:175
rtems_chain_control blocks
Definition: rtl-unresolved.h:178
uint32_t marker
Definition: rtl-unresolved.h:176
size_t block_recs
Definition: rtl-unresolved.h:177
This union represents a chain control block.
Definition: chain.h:96