RTEMS CPU Kit with SuperCore  4.11.3
rtl-sym.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT (c) 2012-2014 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  */
16 #if !defined (_RTEMS_RTL_SYM_H_)
17 #define _RTEMS_RTL_SYM_H_
18 
19 #include <rtems.h>
20 #include "rtl-obj-fwd.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* __cplusplus */
25 
29 typedef struct rtems_rtl_obj_sym_s
30 {
32  const char* name;
33  void* value;
34  uint32_t data;
36 
40 typedef struct rtems_rtl_symbols_s
41 {
42  rtems_chain_control* buckets;
43  size_t nbuckets;
45 
56  size_t buckets);
57 
64 
87  const unsigned char* esyms,
88  unsigned int size);
89 
98 
108  const char* name);
109 
116 
123 
130 
131 #ifdef __cplusplus
132 }
133 #endif /* __cplusplus */
134 
135 #endif
This is used to manage each element (node) which is placed on a chain.
Definition: chain.h:65
bool rtems_rtl_symbol_table_open(rtems_rtl_symbols_t *symbols, size_t buckets)
Open a symbol table with the specified number of buckets.
Definition: rtl-sym.c:60
This is used to manage a chain.
Definition: chain.h:83
const char * name
The symbol&#39;s name.
Definition: rtl-sym.h:32
Table of symbols stored in a hash table.
Definition: rtl-sym.h:40
void rtems_rtl_symbol_table_close(rtems_rtl_symbols_t *symbols)
Close the table and erase the hash table.
Definition: rtl-sym.c:79
void rtems_rtl_symbol_obj_erase_local(rtems_rtl_obj_t *obj)
Erase the object file&#39;s local symbols.
Definition: rtl-sym.c:240
rtems_chain_node node
The node&#39;s link in the chain.
Definition: rtl-sym.h:31
An object file symbol.
Definition: rtl-sym.h:29
bool rtems_rtl_symbol_global_add(rtems_rtl_obj_t *obj, const unsigned char *esyms, unsigned int size)
Add a table of exported symbols to the symbol table.
Definition: rtl-sym.c:85
rtems_rtl_obj_sym_t * rtems_rtl_symbol_obj_find(rtems_rtl_obj_t *obj, const char *name)
Find a symbol given the symbol label in the local object file.
Definition: rtl-sym.c:203
struct rtems_rtl_obj_sym_s rtems_rtl_obj_sym_t
An object file symbol.
void rtems_rtl_symbol_obj_erase(rtems_rtl_obj_t *obj)
Erase the object file&#39;s symbols.
Definition: rtl-sym.c:252
RTL Object.
Definition: rtl-obj.h:156
uint32_t data
Format specific data.
Definition: rtl-sym.h:34
void rtems_rtl_symbol_obj_add(rtems_rtl_obj_t *obj)
Add the object file&#39;s symbols to the global table.
Definition: rtl-sym.c:227
void * value
The value of the symbol.
Definition: rtl-sym.h:33
RTEMS Run-Time Linker ELF Headers.
struct rtems_rtl_symbols_s rtems_rtl_symbols_t
Table of symbols stored in a hash table.
rtems_rtl_obj_sym_t * rtems_rtl_symbol_global_find(const char *name)
Find a symbol given the symbol label in the global symbol table.
Definition: rtl-sym.c:175