OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [services/] [objloader/] [current/] [include/] [objelf.h] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef __OBJELF_H__
2
#define __OBJELF_H__
3
 
4
/* =================================================================
5
 *
6
 *      objelf.h
7
 *
8
 * =================================================================
9
 * ####ECOSGPLCOPYRIGHTBEGIN####
10
 * -------------------------------------------
11
 * This file is part of eCos, the Embedded Configurable Operating System.
12
 * Copyright (C) 2005, 2008, 2009 Free Software Foundation, Inc.
13
 *
14
 * eCos is free software; you can redistribute it and/or modify it under
15
 * the terms of the GNU General Public License as published by the Free
16
 * Software Foundation; either version 2 or (at your option) any later
17
 * version.
18
 *
19
 * eCos is distributed in the hope that it will be useful, but WITHOUT
20
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22
 * for more details.
23
 *
24
 * You should have received a copy of the GNU General Public License
25
 * along with eCos; if not, write to the Free Software Foundation, Inc.,
26
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
27
 *
28
 * As a special exception, if other files instantiate templates or use
29
 * macros or inline functions from this file, or you compile this file
30
 * and link it with other works to produce a work based on this file,
31
 * this file does not by itself cause the resulting work to be covered by
32
 * the GNU General Public License. However the source code for this file
33
 * must still be made available in accordance with section (3) of the GNU
34
 * General Public License v2.
35
 *
36
 * This exception does not invalidate any other reasons why a work based
37
 * on this file might be covered by the GNU General Public License.
38
 * -------------------------------------------
39
 * ####ECOSGPLCOPYRIGHTEND####
40
 * =================================================================
41
 * #####DESCRIPTIONBEGIN####
42
 *
43
 *  Author(s):    Anthony Tonizzo (atonizzo@gmail.com)
44
 *  Contributors: nickg@ecoscentric.com
45
 *  Date:         2005-05-13
46
 *  Purpose:
47
 *  Description:
48
 *
49
 * ####DESCRIPTIONEND####
50
 *
51
 * =================================================================
52
 */
53
 
54
//==============================================================================
55
 
56
#include <pkgconf/system.h>
57
#include <pkgconf/objloader.h>
58
#include <cyg/hal/hal_tables.h>
59
 
60
//==============================================================================
61
 
62
extern char *cyg_ldr_last_error;
63
 
64
//==============================================================================
65
 
66
#define CYG_LDR_MODE_FILESYSTEM              0
67
#define CYG_LDR_MODE_FTP                     1
68
#define CYG_LDR_MODE_TFTP                    2
69
#define CYG_LDR_MODE_MEMORY                  3
70
#define CYG_LDR_MODE_HTTP                    4
71
 
72
//==============================================================================
73
 
74
typedef struct ELF_OBJECT
75
{
76
    CYG_ADDRWORD  ptr;
77
    cyg_uint32    mode;
78
 
79
    size_t    (*read)(struct ELF_OBJECT*, size_t, size_t, void*);
80
    cyg_int32 (*seek)(struct ELF_OBJECT*, cyg_uint32);
81
    cyg_int32 (*close)(struct ELF_OBJECT*);
82
 
83
    // This is the absolute address in memory where the library resides.
84
    Elf32_Ehdr*   p_elfhdr;
85
 
86
    // Start of the section header.
87
    Elf32_Shdr*   p_sechdr;
88
 
89
    cyg_int32     hdrndx_symtab;
90
    cyg_int32     hdrndx_strtab;
91
 
92
    cyg_uint32    **sections;
93
 
94
} ELF_OBJECT, *PELF_OBJECT;
95
 
96
 
97
//==============================================================================
98
// Debug functions.
99
 
100
#if CYGPKG_SERVICES_OBJLOADER_DEBUG_LEVEL > 0
101
void      cyg_ldr_print_section_data(PELF_OBJECT);
102
void      cyg_ldr_print_symbol_names(PELF_OBJECT);
103
cyg_int32 cyg_ldr_print_rel_names(PELF_OBJECT);
104
#endif
105
 
106
//==============================================================================
107
// Internal functions
108
 
109
cyg_uint32 *cyg_ldr_load_elf_section(PELF_OBJECT, cyg_uint32);
110
void        cyg_ldr_delete_elf_section(PELF_OBJECT, cyg_uint32);
111
cyg_uint32 *cyg_ldr_section_address(PELF_OBJECT, cyg_uint32);
112
void*       cyg_ldr_scan_file(PELF_OBJECT);
113
cyg_int32   cyg_ldr_relocate_section(PELF_OBJECT, cyg_uint32);
114
void*       cyg_ldr_find_symbol(void*, char*);
115
void*       cyg_ldr_symbol_address(PELF_OBJECT, cyg_uint32);
116
void*       cyg_ldr_external_address(PELF_OBJECT, cyg_uint32);
117
 
118
//==============================================================================
119
// User interface.
120
 
121
PELF_OBJECT cyg_ldr_open_library(CYG_ADDRWORD, cyg_int32);
122
void        cyg_ldr_close_library(void*);
123
char*       cyg_ldr_error(void);
124
void*       cyg_ldr_get_symbol(void*, char*);
125
 
126
//==============================================================================
127
 
128
void *cyg_ldr_malloc(size_t) CYGBLD_ATTRIB_WEAK;
129
void cyg_ldr_free(void *) CYGBLD_ATTRIB_WEAK;
130
 
131
//==============================================================================
132
 
133
struct cyg_ldr_table_entry
134
{
135
    char   *symbol_name;
136
    void   *handler;
137
} CYG_HAL_TABLE_TYPE;
138
 
139
typedef struct cyg_ldr_table_entry cyg_ldr_table_entry;
140
 
141
#define CYG_LDR_TABLE_ENTRY(__name, __symbol_name, __handler)                \
142
                cyg_ldr_table_entry __name CYG_HAL_TABLE_ENTRY(ldr_table) =  \
143
                                                 { __symbol_name, __handler }
144
 
145
//==============================================================================
146
 
147
#define CYG_LDR_TABLE_KAPI_ALARM()                                            \
148
CYG_LDR_TABLE_ENTRY(cyg_alarm_create_entry,                                   \
149
                     "cyg_alarm_create", cyg_alarm_create);                   \
150
CYG_LDR_TABLE_ENTRY(cyg_alarm_delete_entry,                                   \
151
                     "cyg_alarm_delete", cyg_alarm_delete);                   \
152
CYG_LDR_TABLE_ENTRY(cyg_alarm_initialize_entry,                               \
153
                     "cyg_alarm_initialize", cyg_alarm_initialize);           \
154
CYG_LDR_TABLE_ENTRY(cyg_alarm_get_times_entry,                                \
155
                     "cyg_alarm_get_times", cyg_alarm_get_times);             \
156
CYG_LDR_TABLE_ENTRY(cyg_alarm_enable_entry,                                   \
157
                     "cyg_alarm_enable", cyg_alarm_enable);                   \
158
CYG_LDR_TABLE_ENTRY(cyg_alarm_disable_entry,                                  \
159
                     "cyg_alarm_disable", cyg_alarm_disable);
160
 
161
#define CYG_LDR_TABLE_KAPI_CLOCK()                                            \
162
CYG_LDR_TABLE_ENTRY(cyg_clock_create_entry,                                   \
163
                     "cyg_clock_create", cyg_clock_create);                   \
164
CYG_LDR_TABLE_ENTRY(cyg_clock_delete_entry,                                   \
165
                     "cyg_clock_delete", cyg_clock_delete);                   \
166
CYG_LDR_TABLE_ENTRY(cyg_clock_to_counter_entry,                               \
167
                     "cyg_clock_to_counter", cyg_clock_to_counter);           \
168
CYG_LDR_TABLE_ENTRY(cyg_clock_set_resolution_entry,                           \
169
                     "cyg_clock_set_resolution", cyg_clock_set_resolution);   \
170
CYG_LDR_TABLE_ENTRY(cyg_clock_get_resolution_entry,                           \
171
                     "cyg_clock_get_resolution",cyg_clock_get_resolution);    \
172
CYG_LDR_TABLE_ENTRY(cyg_real_time_clock_entry,                                \
173
                     "cyg_real_time_clock", cyg_real_time_clock);             \
174
CYG_LDR_TABLE_ENTRY(cyg_current_time_entry,                                   \
175
                     "cyg_current_time", cyg_current_time);
176
 
177
#define CYG_LDR_TABLE_KAPI_COND()                                             \
178
CYG_LDR_TABLE_ENTRY(cyg_cond_init_entry,                                      \
179
                     "cyg_cond_init", cyg_cond_init);                         \
180
CYG_LDR_TABLE_ENTRY(cyg_cond_destroy_entry,                                   \
181
                     "cyg_cond_destroy", cyg_cond_destroy);                   \
182
CYG_LDR_TABLE_ENTRY(cyg_cond_wait_entry,                                      \
183
                     "cyg_cond_wait", cyg_cond_wait);                         \
184
CYG_LDR_TABLE_ENTRY(cyg_cond_signal_entry,                                    \
185
                     "cyg_cond_signal", cyg_cond_signal);                     \
186
CYG_LDR_TABLE_ENTRY(cyg_cond_broadcast_entry,                                 \
187
                     "cyg_cond_broadcast", cyg_cond_broadcast);               \
188
CYG_LDR_TABLE_ENTRY(cyg_cond_timed_wait_entry,                                \
189
                     "cyg_cond_timed_wait", cyg_cond_timed_wait);
190
 
191
#define CYG_LDR_TABLE_KAPI_COUNTER()                                          \
192
CYG_LDR_TABLE_ENTRY(cyg_counter_create_entry,                                 \
193
                     "cyg_counter_create", cyg_counter_create);               \
194
CYG_LDR_TABLE_ENTRY(cyg_counter_delete_entry,                                 \
195
                     "cyg_counter_delete", cyg_counter_delete);               \
196
CYG_LDR_TABLE_ENTRY(cyg_counter_current_value_entry,                          \
197
                     "cyg_counter_current_value", cyg_counter_current_value); \
198
CYG_LDR_TABLE_ENTRY(cyg_counter_set_value_entry,                              \
199
                     "cyg_counter_set_value", cyg_counter_set_value);         \
200
CYG_LDR_TABLE_ENTRY(cyg_counter_tick_entry,                                   \
201
                     "cyg_counter_tick", cyg_counter_tick);                   \
202
CYG_LDR_TABLE_ENTRY(cyg_counter_multi_tick_entry,                             \
203
                     "cyg_counter_multi_tick", cyg_counter_multi_tick);
204
 
205
#define CYG_LDR_TABLE_KAPI_EXCEPTIONS()                                       \
206
CYG_LDR_TABLE_ENTRY(cyg_exception_set_handler_entry,                          \
207
                     "cyg_exception_set_handler", cyg_exception_set_handler); \
208
CYG_LDR_TABLE_ENTRY(cyg_exception_clear_handler_entry,                        \
209
                     "cyg_exception_clear_handler",                           \
210
                     cyg_exception_clear_handler);                            \
211
CYG_LDR_TABLE_ENTRY(cyg_exception_call_handler_entry,                         \
212
                     "cyg_exception_call_handler",                            \
213
                     cyg_exception_call_handler);
214
 
215
#define CYG_LDR_TABLE_KAPI_FLAG()                                             \
216
CYG_LDR_TABLE_ENTRY(cyg_flag_init_entry,                                      \
217
                     "cyg_flag_init", cyg_flag_init);                         \
218
CYG_LDR_TABLE_ENTRY(cyg_flag_destroy_entry,                                   \
219
                     "cyg_flag_destroy", cyg_flag_destroy);                   \
220
CYG_LDR_TABLE_ENTRY(cyg_flag_setbits_entry,                                   \
221
                     "cyg_flag_setbits", cyg_flag_setbits);                   \
222
CYG_LDR_TABLE_ENTRY(cyg_flag_maskbits_entry,                                  \
223
                     "cyg_flag_maskbits", cyg_flag_maskbits);                 \
224
CYG_LDR_TABLE_ENTRY(cyg_flag_wait_entry,                                      \
225
                     "cyg_flag_wait", cyg_flag_wait);                         \
226
CYG_LDR_TABLE_ENTRY(cyg_flag_timed_wait_entry,                                \
227
                     "cyg_flag_timed_wait", cyg_flag_timed_wait);             \
228
CYG_LDR_TABLE_ENTRY(cyg_flag_poll_entry,                                      \
229
                     "cyg_flag_poll", cyg_flag_poll);                         \
230
CYG_LDR_TABLE_ENTRY(cyg_flag_peek_entry,                                      \
231
                     "cyg_flag_peek", cyg_flag_peek);                         \
232
CYG_LDR_TABLE_ENTRY(cyg_flag_waiting_entry,                                   \
233
                     "cyg_flag_waiting", cyg_flag_waiting);
234
 
235
#define CYG_LDR_TABLE_KAPI_INTERRUPTS()                                       \
236
CYG_LDR_TABLE_ENTRY(cyg_interrupt_create_entry,                               \
237
                     "cyg_interrupt_create", cyg_interrupt_create);           \
238
CYG_LDR_TABLE_ENTRY(cyg_interrupt_delete_entry,                               \
239
                     "cyg_interrupt_delete", cyg_interrupt_delete);           \
240
CYG_LDR_TABLE_ENTRY(cyg_interrupt_attach_entry,                               \
241
                     "cyg_interrupt_attach", cyg_interrupt_attach);           \
242
CYG_LDR_TABLE_ENTRY(cyg_interrupt_detach_entry,                               \
243
                     "cyg_interrupt_detach", cyg_interrupt_detach);           \
244
CYG_LDR_TABLE_ENTRY(cyg_interrupt_get_vsr_entry,                              \
245
                     "cyg_interrupt_get_vsr", cyg_interrupt_get_vsr);         \
246
CYG_LDR_TABLE_ENTRY(cyg_interrupt_set_vsr_entry,                              \
247
                     "cyg_interrupt_set_vsr", cyg_interrupt_set_vsr);         \
248
CYG_LDR_TABLE_ENTRY(cyg_interrupt_disable_entry,                              \
249
                     "cyg_interrupt_disable", cyg_interrupt_disable);         \
250
CYG_LDR_TABLE_ENTRY(cyg_interrupt_enable_entry,                               \
251
                     "cyg_interrupt_enable", cyg_interrupt_enable);           \
252
CYG_LDR_TABLE_ENTRY(cyg_interrupt_mask_entry,                                 \
253
                     "cyg_interrupt_mask", cyg_interrupt_mask);               \
254
CYG_LDR_TABLE_ENTRY(cyg_interrupt_mask_intunsafe_entry,                       \
255
                     "cyg_interrupt_mask_intunsafe",                          \
256
                     cyg_interrupt_mask_intunsafe);                           \
257
CYG_LDR_TABLE_ENTRY(cyg_interrupt_unmask_entry,                               \
258
                     "cyg_interrupt_unmask", cyg_interrupt_unmask);           \
259
CYG_LDR_TABLE_ENTRY(cyg_interrupt_unmask_intunsafe_entry,                     \
260
                     "cyg_interrupt_unmask_intunsafe",                        \
261
                     cyg_interrupt_unmask_intunsafe);                         \
262
CYG_LDR_TABLE_ENTRY(cyg_interrupt_acknowledge_entry,                          \
263
                     "cyg_interrupt_acknowledge",                             \
264
                     cyg_interrupt_acknowledge);                              \
265
CYG_LDR_TABLE_ENTRY(cyg_interrupt_configure_entry,                            \
266
                     "cyg_interrupt_configure", cyg_interrupt_configure);     \
267
CYG_LDR_TABLE_ENTRY(cyg_interrupt_set_cpu_entry,                              \
268
                     "cyg_interrupt_set_cpu", cyg_interrupt_set_cpu);         \
269
CYG_LDR_TABLE_ENTRY(cyg_interrupt_get_cpu_entry,                              \
270
                     "cyg_interrupt_get_cpu", cyg_interrupt_get_cpu);
271
 
272
#define CYG_LDR_TABLE_KAPI_MBOX()                                             \
273
CYG_LDR_TABLE_ENTRY(cyg_mbox_create_entry,                                    \
274
                     "cyg_mbox_create", cyg_mbox_create);                     \
275
CYG_LDR_TABLE_ENTRY(cyg_mbox_delete_entry,                                    \
276
                     "cyg_mbox_delete", cyg_mbox_delete);                     \
277
CYG_LDR_TABLE_ENTRY(cyg_mbox_get_entry,                                       \
278
                     "cyg_mbox_get", cyg_mbox_get);                           \
279
CYG_LDR_TABLE_ENTRY(cyg_mbox_timed_get_entry,                                 \
280
                     "cyg_mbox_timed_get", cyg_mbox_timed_get);               \
281
CYG_LDR_TABLE_ENTRY(cyg_mbox_tryget_entry,                                    \
282
                     "cyg_mbox_tryget", cyg_mbox_tryget);                     \
283
CYG_LDR_TABLE_ENTRY(cyg_mbox_peek_item_entry,                                 \
284
                     "cyg_mbox_peek_item", cyg_mbox_peek_item);               \
285
CYG_LDR_TABLE_ENTRY(cyg_mbox_put_entry,                                       \
286
                     "cyg_mbox_put", cyg_mbox_put);                           \
287
CYG_LDR_TABLE_ENTRY(cyg_mbox_timed_put_entry,                                 \
288
                     "cyg_mbox_timed_put", cyg_mbox_timed_put);               \
289
CYG_LDR_TABLE_ENTRY(cyg_mbox_tryput_entry,                                    \
290
                     "cyg_mbox_tryput", cyg_mbox_tryput);                     \
291
CYG_LDR_TABLE_ENTRY(cyg_mbox_peek_entry,                                      \
292
                     "cyg_mbox_peek", cyg_mbox_peek);                         \
293
CYG_LDR_TABLE_ENTRY(cyg_mbox_waiting_to_get_entry,                            \
294
                     "cyg_mbox_waiting_to_get",                               \
295
                     cyg_mbox_waiting_to_get);                                \
296
CYG_LDR_TABLE_ENTRY(cyg_mbox_waiting_to_put_entry,                            \
297
                     "cyg_mbox_waiting_to_put",                               \
298
                     cyg_mbox_waiting_to_put);
299
 
300
#define CYG_LDR_TABLE_KAPI_MEMPOOL_FIX()                                      \
301
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_create_entry,                             \
302
                     "cyg_mempool_fix_create", cyg_mempool_fix_create);       \
303
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_delete_entry,                             \
304
                     "cyg_mempool_fix_delete", cyg_mempool_fix_delete);       \
305
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_alloc_entry,                              \
306
                     "cyg_mempool_fix_alloc", cyg_mempool_fix_alloc);         \
307
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_timed_alloc_entry,                        \
308
                     "cyg_mempool_fix_timed_alloc",                           \
309
                     cyg_mempool_fix_timed_alloc);                            \
310
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_try_alloc_entry,                          \
311
                     "cyg_mempool_fix_try_alloc",                             \
312
                     cyg_mempool_fix_try_alloc);                              \
313
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_free_entry,                               \
314
                     "cyg_mempool_fix_free", cyg_mempool_fix_free);           \
315
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_waiting_entry,                            \
316
                     "cyg_mempool_fix_waiting", cyg_mempool_fix_waiting);     \
317
CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_get_info_entry,                           \
318
                     "cyg_mempool_fix_get_info", cyg_mempool_fix_get_info);
319
 
320
#define CYG_LDR_TABLE_KAPI_MEMPOOL_VAR()                                      \
321
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_create_entry,                             \
322
                     "cyg_mempool_var_create", cyg_mempool_var_create);       \
323
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_delete_entry,                             \
324
                     "cyg_mempool_var_delete", cyg_mempool_var_delete);       \
325
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_alloc_entry,                              \
326
                     "cyg_mempool_var_alloc", cyg_mempool_var_alloc);         \
327
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_timed_alloc_entry,                        \
328
                     "cyg_mempool_var_timed_alloc",                           \
329
                     cyg_mempool_var_timed_alloc);                            \
330
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_try_alloc_entry,                          \
331
                     "cyg_mempool_var_try_alloc",                             \
332
                     cyg_mempool_var_try_alloc);                              \
333
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_free_entry,                               \
334
                     "cyg_mempool_var_free", cyg_mempool_var_free);           \
335
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_waiting_entry,                            \
336
                     "cyg_mempool_var_waiting", cyg_mempool_var_waiting);     \
337
CYG_LDR_TABLE_ENTRY(cyg_mempool_var_get_info_entry,                           \
338
                     "cyg_mempool_var_get_info", cyg_mempool_var_get_info);
339
 
340
#define CYG_LDR_TABLE_KAPI_MUTEX()                                            \
341
CYG_LDR_TABLE_ENTRY(cyg_mutex_init_entry,                                     \
342
                     "cyg_mutex_init", cyg_mutex_init);                       \
343
CYG_LDR_TABLE_ENTRY(cyg_mutex_destroy_entry,                                  \
344
                     "cyg_mutex_destroy", cyg_mutex_destroy);                 \
345
CYG_LDR_TABLE_ENTRY(cyg_mutex_lock_entry,                                     \
346
                     "cyg_mutex_lock", cyg_mutex_lock);                       \
347
CYG_LDR_TABLE_ENTRY(cyg_mutex_trylock_entry,                                  \
348
                     "cyg_mutex_trylock", cyg_mutex_trylock);                 \
349
CYG_LDR_TABLE_ENTRY(cyg_mutex_unlock_entry,                                   \
350
                     "cyg_mutex_unlock", cyg_mutex_unlock);                   \
351
CYG_LDR_TABLE_ENTRY(cyg_mutex_release_entry,                                  \
352
                     "cyg_mutex_release", cyg_mutex_release);                 \
353
CYG_LDR_TABLE_ENTRY(cyg_mutex_set_ceiling_entry,                              \
354
                     "cyg_mutex_set_ceiling", cyg_mutex_set_ceiling);         \
355
CYG_LDR_TABLE_ENTRY(cyg_mutex_set_protocol_entry,                             \
356
                     "cyg_mutex_set_protocol", cyg_mutex_set_protocol);
357
 
358
#define CYG_LDR_TABLE_KAPI_SCHEDULER()                                        \
359
CYG_LDR_TABLE_ENTRY(cyg_scheduler_start_entry,                                \
360
                     "cyg_scheduler_start", cyg_scheduler_start);             \
361
CYG_LDR_TABLE_ENTRY(cyg_scheduler_lock_entry,                                 \
362
                     "cyg_scheduler_lock", cyg_scheduler_lock);               \
363
CYG_LDR_TABLE_ENTRY(cyg_scheduler_safe_lock_entry,                            \
364
                     "cyg_scheduler_safe_lock", cyg_scheduler_safe_lock);     \
365
CYG_LDR_TABLE_ENTRY(cyg_scheduler_unlock_entry,                               \
366
                     "cyg_scheduler_unlock", cyg_scheduler_unlock);           \
367
CYG_LDR_TABLE_ENTRY(cyg_scheduler_read_lock_entry,                            \
368
                     "cyg_scheduler_read_lock", cyg_scheduler_read_lock);     \
369
 
370
#define CYG_LDR_TABLE_KAPI_SEMAPHORE()                                        \
371
CYG_LDR_TABLE_ENTRY(cyg_semaphore_init_entry,                                 \
372
                     "cyg_semaphore_init", cyg_semaphore_init);               \
373
CYG_LDR_TABLE_ENTRY(cyg_semaphore_destroy_entry,                              \
374
                     "cyg_semaphore_destroy", cyg_semaphore_destroy);         \
375
CYG_LDR_TABLE_ENTRY(cyg_semaphore_wait_entry,                                 \
376
                     "cyg_semaphore_wait", cyg_semaphore_wait);               \
377
CYG_LDR_TABLE_ENTRY(cyg_semaphore_timed_wait_entry,                           \
378
                     "cyg_semaphore_timed_wait", cyg_semaphore_timed_wait);   \
379
CYG_LDR_TABLE_ENTRY(cyg_semaphore_try_wait_entry,                             \
380
                     "cyg_semaphore_trywait", cyg_semaphore_trywait);         \
381
CYG_LDR_TABLE_ENTRY(cyg_semaphore_post_entry,                                 \
382
                     "cyg_semaphore_post", cyg_semaphore_post);               \
383
CYG_LDR_TABLE_ENTRY(cyg_semaphore_peek_entry,                                 \
384
                     "cyg_semaphore_peek", cyg_semaphore_peek);
385
 
386
#define CYG_LDR_TABLE_KAPI_THREAD()                                           \
387
CYG_LDR_TABLE_ENTRY(cyg_thread_create_entry,                                  \
388
                     "cyg_thread_create", cyg_thread_create);                 \
389
CYG_LDR_TABLE_ENTRY(cyg_thread_exit_entry,                                    \
390
                     "cyg_thread_exit", cyg_thread_exit);                     \
391
CYG_LDR_TABLE_ENTRY(cyg_thread_delete_entry,                                  \
392
                     "cyg_thread_delete", cyg_thread_delete);                 \
393
CYG_LDR_TABLE_ENTRY(cyg_thread_suspend_entry,                                 \
394
                     "cyg_thread_suspend", cyg_thread_suspend);               \
395
CYG_LDR_TABLE_ENTRY(cyg_thread_resume_entry,                                  \
396
                     "cyg_thread_resume", cyg_thread_resume);                 \
397
CYG_LDR_TABLE_ENTRY(cyg_thread_kill_entry,                                    \
398
                     "cyg_thread_kill", cyg_thread_kill);                     \
399
CYG_LDR_TABLE_ENTRY(cyg_thread_release_entry,                                 \
400
                     "cyg_thread_release", cyg_thread_release);               \
401
CYG_LDR_TABLE_ENTRY(cyg_thread_yield_entry,                                   \
402
                     "cyg_thread_yield", cyg_thread_yield);                   \
403
CYG_LDR_TABLE_ENTRY(cyg_thread_self_entry,                                    \
404
                     "cyg_thread_self", cyg_thread_self);                     \
405
CYG_LDR_TABLE_ENTRY(cyg_thread_idle_thread_entry,                             \
406
                     "cyg_thread_idle_thread", cyg_thread_idle_thread);       \
407
CYG_LDR_TABLE_ENTRY(cyg_thread_set_priority_entry,                            \
408
                     "cyg_thread_set_priority", cyg_thread_set_priority);     \
409
CYG_LDR_TABLE_ENTRY(cyg_thread_get_priority_entry,                            \
410
                     "cyg_thread_get_priority", cyg_thread_get_priority);     \
411
CYG_LDR_TABLE_ENTRY(cyg_thread_get_current_priority_entry,                    \
412
                     "cyg_thread_get_current_priority",                       \
413
                     cyg_thread_get_current_priority);                        \
414
CYG_LDR_TABLE_ENTRY(cyg_thread_delay_entry,                                   \
415
                     "cyg_thread_delay", cyg_thread_delay);                   \
416
CYG_LDR_TABLE_ENTRY(cyg_thread_get_stack_base_entry,                          \
417
                     "cyg_thread_get_stack_base", cyg_thread_get_stack_base); \
418
CYG_LDR_TABLE_ENTRY(cyg_thread_get_stack_size_entry,                          \
419
                     "cyg_thread_get_stack_size", cyg_thread_get_stack_size); \
420
CYG_LDR_TABLE_ENTRY(cyg_thread_new_data_index_entry,                          \
421
                     "cyg_thread_new_data_index", cyg_thread_new_data_index); \
422
CYG_LDR_TABLE_ENTRY(cyg_thread_free_data_index_entry,                         \
423
                     "cyg_thread_free_data_index",                            \
424
                     cyg_thread_free_data_index);                             \
425
CYG_LDR_TABLE_ENTRY(cyg_thread_get_data_entry,                                \
426
                     "cyg_thread_get_data", cyg_thread_get_data);             \
427
CYG_LDR_TABLE_ENTRY(cyg_thread_get_data_ptr_entry,                            \
428
                     "cyg_thread_get_data_ptr", cyg_thread_get_data_ptr);     \
429
CYG_LDR_TABLE_ENTRY(cyg_thread_set_data_entry,                                \
430
                     "cyg_thread_set_data", cyg_thread_set_data);
431
 
432
#define CYG_LDR_TABLE_STRING()                                               \
433
CYG_LDR_TABLE_ENTRY(memchr_entry,  "memchr",  memchr);                       \
434
CYG_LDR_TABLE_ENTRY(memcmp_entry,  "memcmp",  memcmp);                       \
435
CYG_LDR_TABLE_ENTRY(memcpy_entry,  "memcpy",  memcpy);                       \
436
CYG_LDR_TABLE_ENTRY(memmove_entry, "memmove", memmove);                      \
437
CYG_LDR_TABLE_ENTRY(memset_entry,  "memset",  memset);                       \
438
CYG_LDR_TABLE_ENTRY(strcpy_entry,  "strcpy",  strcpy);                       \
439
CYG_LDR_TABLE_ENTRY(strncpy_entry, "strncpy", strncpy);                      \
440
CYG_LDR_TABLE_ENTRY(strcat_entry,  "strcat",  strcat);                       \
441
CYG_LDR_TABLE_ENTRY(strncat_entry, "strncat", strncat);                      \
442
CYG_LDR_TABLE_ENTRY(strchr_entry,  "strchr",  strchr);                       \
443
CYG_LDR_TABLE_ENTRY(strrchr_entry, "strrchr", strrchr);                      \
444
CYG_LDR_TABLE_ENTRY(strcoll_entry, "strcoll", strcoll);                      \
445
CYG_LDR_TABLE_ENTRY(strlen_entry,  "strlen",  strlen);                       \
446
CYG_LDR_TABLE_ENTRY(strcmp_entry,  "strcmp",  strcmp);                       \
447
CYG_LDR_TABLE_ENTRY(strncmp_entry, "strncmp", strncmp);                      \
448
CYG_LDR_TABLE_ENTRY(strcspn_entry, "strcspn", strcspn);                      \
449
CYG_LDR_TABLE_ENTRY(strerror_entry, "strerror", strerror);                   \
450
CYG_LDR_TABLE_ENTRY(strpbrk_entry, "strpbrk", strpbrk);                      \
451
CYG_LDR_TABLE_ENTRY(strspn_entry,  "strspn",  strspn);                       \
452
CYG_LDR_TABLE_ENTRY(strstr_entry,  "strstr",  strstr);                       \
453
CYG_LDR_TABLE_ENTRY(strtok_entry,  "strtok",  strtok);                       \
454
CYG_LDR_TABLE_ENTRY(strxfrm_entry, "strxfrm", strxfrm);
455
 
456
#define CYG_LDR_TABLE_STDIO()                                                \
457
CYG_LDR_TABLE_ENTRY(clearerr_entry,  "clearerr",  clearerr);                 \
458
CYG_LDR_TABLE_ENTRY(fclose_entry,  "fclose",  fclose);                       \
459
CYG_LDR_TABLE_ENTRY(feof_entry,    "feof",    feof);                         \
460
CYG_LDR_TABLE_ENTRY(ferror_entry,  "ferror",  ferror);                       \
461
CYG_LDR_TABLE_ENTRY(fflush_entry,  "fflush",  fflush);                       \
462
CYG_LDR_TABLE_ENTRY(fgetc_entry,   "fgetc",   fgetc);                        \
463
CYG_LDR_TABLE_ENTRY(fgetpos_entry, "fgetpos", fgetpos);                      \
464
CYG_LDR_TABLE_ENTRY(fgets_entry,   "fgets",   fgets);                        \
465
CYG_LDR_TABLE_ENTRY(fopen_entry,   "fopen",   fopen);                        \
466
CYG_LDR_TABLE_ENTRY(fprintf_entry, "fprintf", fprintf);                      \
467
CYG_LDR_TABLE_ENTRY(fputc_entry,   "fputc",   fputc);                        \
468
CYG_LDR_TABLE_ENTRY(fputs_entry,   "fputs",   fputs);                        \
469
CYG_LDR_TABLE_ENTRY(fread_entry,   "fread",   fread);                        \
470
CYG_LDR_TABLE_ENTRY(freopen_entry, "freopen", freopen);                      \
471
CYG_LDR_TABLE_ENTRY(fscanf_entry,  "fscanf",  fscanf);                       \
472
CYG_LDR_TABLE_ENTRY(fseek_entry,   "fseek",   fseek);                        \
473
CYG_LDR_TABLE_ENTRY(fsetpos_entry, "fsetpos", fsetpos);                      \
474
CYG_LDR_TABLE_ENTRY(ftell_entry,   "ftell",   ftell);                        \
475
CYG_LDR_TABLE_ENTRY(fwrite_entry,  "fwrite",  fwrite);                       \
476
CYG_LDR_TABLE_ENTRY(perror_entry,  "perror",  perror);                       \
477
CYG_LDR_TABLE_ENTRY(printf_entry,  "printf",  printf);                       \
478
CYG_LDR_TABLE_ENTRY(putc_entry,    "putc",    putc);                         \
479
CYG_LDR_TABLE_ENTRY(putchar_entry, "putchar", putchar);                      \
480
CYG_LDR_TABLE_ENTRY(puts_entry,    "puts",    puts);                         \
481
CYG_LDR_TABLE_ENTRY(remove_entry,  "remove",  remove);                       \
482
CYG_LDR_TABLE_ENTRY(rename_entry,  "rename",  rename);                       \
483
CYG_LDR_TABLE_ENTRY(rewind_entry,  "rewind",  rewind);                       \
484
CYG_LDR_TABLE_ENTRY(scanf_entry,   "scanf",   scanf);                        \
485
CYG_LDR_TABLE_ENTRY(setbuf_entry,  "setbuf",  setbuf);                       \
486
CYG_LDR_TABLE_ENTRY(setvbuf_entry, "setvbuf", setvbuf);                      \
487
CYG_LDR_TABLE_ENTRY(sprintf_entry, "sprintf", sprintf);                      \
488
CYG_LDR_TABLE_ENTRY(sscanf_entry,  "sscanf",  sscanf);                       \
489
CYG_LDR_TABLE_ENTRY(tmpfile_entry, "tmpfile", tmpfile);                      \
490
CYG_LDR_TABLE_ENTRY(tmpnam_entry,  "tmpnam",  tmpnam);                       \
491
CYG_LDR_TABLE_ENTRY(ungetc_entry,  "ungetc",  ungetc);
492
 
493
#define CYG_LDR_TABLE_INFRA_DIAG()                                            \
494
CYG_LDR_TABLE_ENTRY(diag_init_entry, "diag_init", diag_init);                 \
495
CYG_LDR_TABLE_ENTRY(diag_write_char_entry,                                    \
496
                     "diag_write_char", diag_write_char);                     \
497
CYG_LDR_TABLE_ENTRY(diag_write_string_entry,                                  \
498
                     "diag_write_string", diag_write_string);                 \
499
CYG_LDR_TABLE_ENTRY(diag_write_dec_entry,                                     \
500
                     "diag_write_dec", diag_write_dec);                       \
501
CYG_LDR_TABLE_ENTRY(diag_write_hex_entry,                                     \
502
                     "diag_write_hex", diag_write_hex);                       \
503
CYG_LDR_TABLE_ENTRY(diag_dump_buf_entry,                                      \
504
                     "diag_dump_buf", diag_dump_buf);                         \
505
CYG_LDR_TABLE_ENTRY(diag_dump_buf_32bit_entry,                                \
506
                     "diag_dump_buf_32bit", diag_dump_buf_32bit);             \
507
CYG_LDR_TABLE_ENTRY(diag_dump_buf_16bit_entry,                                \
508
                     "diag_dump_buf_16bit", diag_dump_buf_16bit);             \
509
CYG_LDR_TABLE_ENTRY(diag_vdump_buf_with_offset_entry,                         \
510
                     "diag_vdump_buf_with_offset",                            \
511
                     diag_vdump_buf_with_offset);                             \
512
CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_entry,                          \
513
                     "diag_dump_buf_with_offset",                             \
514
                     diag_dump_buf_with_offset);                              \
515
CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_32bit_entry,                    \
516
                     "diag_dump_buf_with_offset_32bit",                       \
517
                     diag_dump_buf_with_offset_32bit);                        \
518
CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_16bit_entry,                    \
519
                     "diag_dump_buf_with_offset_16bit",                       \
520
                     diag_dump_buf_with_offset_16bit);                        \
521
CYG_LDR_TABLE_ENTRY(diag_printf_entry, "diag_printf", diag_printf);           \
522
CYG_LDR_TABLE_ENTRY(diag_init_putc_entry, "diag_init_putc", diag_init_putc);  \
523
CYG_LDR_TABLE_ENTRY(diag_sprintf_entry, "diag_sprintf", diag_sprintf);        \
524
CYG_LDR_TABLE_ENTRY(diag_snprintf_entry, "diag_snprintf", diag_snprintf);     \
525
CYG_LDR_TABLE_ENTRY(diag_vsprintf_entry, "diag_vsprintf", diag_vsprintf);     \
526
CYG_LDR_TABLE_ENTRY(diag_vprintf_entry, "diag_vprintf", diag_vprintf);
527
 
528
//==============================================================================
529
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.