RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
rtems
rtl
rtl-sym.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
3
/*
4
* COPYRIGHT (c) 2012-2014, 2018 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
*/
34
35
#if !defined (_RTEMS_RTL_SYM_H_)
36
#define _RTEMS_RTL_SYM_H_
37
38
#include <
rtems.h
>
39
#include "
rtl-obj-fwd.h
"
40
41
#ifdef __cplusplus
42
extern
"C"
{
43
#endif
/* __cplusplus */
44
48
typedef
struct
rtems_rtl_obj_sym
49
{
50
rtems_chain_node
node
;
51
const
char
*
name
;
52
void
*
value
;
53
uint32_t
data
;
54
}
rtems_rtl_obj_sym
;
55
59
typedef
struct
rtems_rtl_symbols
60
{
61
rtems_chain_control* buckets;
62
size_t
nbuckets;
63
}
rtems_rtl_symbols
;
64
69
typedef
size_t (*
rtems_rtl_tls_offset_func
)(void);
70
75
typedef
struct
rtems_rtl_tls_offset
76
{
77
size_t
index;
78
rtems_rtl_tls_offset_func
offset
;
79
}
rtems_rtl_tls_offset
;
80
90
bool
rtems_rtl_symbol_table_open
(
rtems_rtl_symbols
* symbols,
91
size_t
buckets);
92
98
void
rtems_rtl_symbol_table_close
(
rtems_rtl_symbols
* symbols);
99
106
void
rtems_rtl_symbol_global_insert
(
rtems_rtl_symbols
* symbols,
107
rtems_rtl_obj_sym
* symbol);
108
132
bool
rtems_rtl_symbol_global_add
(
rtems_rtl_obj
* obj,
133
const
unsigned
char
* esyms,
134
unsigned
int
size,
135
const
rtems_rtl_tls_offset
* tls_offsets,
136
unsigned
int
tls_size);
137
145
rtems_rtl_obj_sym
*
rtems_rtl_symbol_global_find
(
const
char
* name);
146
154
void
rtems_rtl_symbol_obj_sort
(
rtems_rtl_obj
* obj);
155
164
rtems_rtl_obj_sym
*
rtems_rtl_symbol_obj_find
(
rtems_rtl_obj
* obj,
165
const
char
* name);
166
172
void
rtems_rtl_symbol_obj_add
(
rtems_rtl_obj
* obj);
173
179
void
rtems_rtl_symbol_obj_erase_local
(
rtems_rtl_obj
* obj);
180
186
void
rtems_rtl_symbol_obj_erase
(
rtems_rtl_obj
* obj);
187
188
#ifdef __cplusplus
189
}
190
#endif
/* __cplusplus */
191
192
#endif
rtems.h
This header file defines the RTEMS Classic API.
rtl-obj-fwd.h
RTEMS Run-Time Linker ELF Headers.
rtems_rtl_symbol_obj_erase_local
void rtems_rtl_symbol_obj_erase_local(rtems_rtl_obj *obj)
Definition
rtl-sym.c:309
rtems_rtl_symbol_global_find
rtems_rtl_obj_sym * rtems_rtl_symbol_global_find(const char *name)
Definition
rtl-sym.c:211
rtems_rtl_symbol_global_insert
void rtems_rtl_symbol_global_insert(rtems_rtl_symbols *symbols, rtems_rtl_obj_sym *symbol)
Definition
rtl-sym.c:102
rtems_rtl_symbol_global_add
bool rtems_rtl_symbol_global_add(rtems_rtl_obj *obj, const unsigned char *esyms, unsigned int size, const rtems_rtl_tls_offset *tls_offsets, unsigned int tls_size)
Definition
rtl-sym.c:111
rtems_rtl_symbol_obj_sort
void rtems_rtl_symbol_obj_sort(rtems_rtl_obj *obj)
Definition
rtl-sym.c:249
rtems_rtl_symbol_table_open
bool rtems_rtl_symbol_table_open(rtems_rtl_symbols *symbols, size_t buckets)
Definition
rtl-sym.c:78
rtems_rtl_symbol_obj_find
rtems_rtl_obj_sym * rtems_rtl_symbol_obj_find(rtems_rtl_obj *obj, const char *name)
Definition
rtl-sym.c:262
rtems_rtl_symbol_obj_add
void rtems_rtl_symbol_obj_add(rtems_rtl_obj *obj)
Definition
rtl-sym.c:296
rtems_rtl_symbol_table_close
void rtems_rtl_symbol_table_close(rtems_rtl_symbols *symbols)
Definition
rtl-sym.c:96
rtems_rtl_tls_offset_func
size_t(*) rtems_rtl_tls_offset_func(void)
Definition
rtl-sym.h:69
rtems_rtl_symbol_obj_erase
void rtems_rtl_symbol_obj_erase(rtems_rtl_obj *obj)
Definition
rtl-sym.c:321
rtems_rtl_obj_sym
Definition
rtl-sym.h:49
rtems_rtl_obj_sym::name
const char * name
Definition
rtl-sym.h:51
rtems_rtl_obj_sym::node
rtems_chain_node node
Definition
rtl-sym.h:50
rtems_rtl_obj_sym::data
uint32_t data
Definition
rtl-sym.h:53
rtems_rtl_obj_sym::value
void * value
Definition
rtl-sym.h:52
rtems_rtl_obj
Definition
rtl-obj.h:200
rtems_rtl_symbols
Definition
rtl-sym.h:60
rtems_rtl_tls_offset
Definition
rtl-sym.h:76
rtems_rtl_tls_offset::offset
rtems_rtl_tls_offset_func offset
Definition
rtl-sym.h:78
Generated by
1.18.0