* =================================================================
* #####DESCRIPTIONBEGIN####
*
- * Author(s): atonizzo@lycos.com
+ * Author(s): Anthony Tonizzo (atonizzo@gmail.com)
* Contributors: nickg@ecoscentric.com
* Date: 2005-05-13
* Purpose:
//==============================================================================
-extern cyg_uint8 *cyg_ldr_last_error;
+extern char *cyg_ldr_last_error;
//==============================================================================
CYG_ADDRWORD ptr;
cyg_uint32 mode;
- size_t (*read)( struct ELF_OBJECT*, size_t, size_t, void* );
- cyg_int32 (*seek)( struct ELF_OBJECT*, cyg_uint32 );
- cyg_int32 (*close)( struct ELF_OBJECT* );
+ size_t (*read)(struct ELF_OBJECT*, size_t, size_t, void*);
+ cyg_int32 (*seek)(struct ELF_OBJECT*, cyg_uint32);
+ cyg_int32 (*close)(struct ELF_OBJECT*);
// This is the absolute address in memory where the library resides.
Elf32_Ehdr* p_elfhdr;
#endif
#if CYGPKG_SERVICES_OBJLOADER_DEBUG_LEVEL > 0
-void cyg_ldr_print_section_data( PELF_OBJECT );
-void cyg_ldr_print_symbol_names( PELF_OBJECT );
-void cyg_ldr_print_rel_names( PELF_OBJECT );
+void cyg_ldr_print_section_data(PELF_OBJECT);
+void cyg_ldr_print_symbol_names(PELF_OBJECT);
+void cyg_ldr_print_rel_names(PELF_OBJECT);
#endif
//==============================================================================
// Internal functions
-cyg_int32 *cyg_ldr_load_elf_section( PELF_OBJECT, cyg_uint32 );
-void cyg_ldr_delete_elf_section( PELF_OBJECT, cyg_uint32 );
-cyg_int32 *cyg_ldr_section_address( PELF_OBJECT, cyg_uint32 );
-void* cyg_ldr_scan_file( PELF_OBJECT );
-cyg_int32 cyg_ldr_relocate_section( PELF_OBJECT, cyg_uint32 );
-void* cyg_ldr_find_symbol( void*, cyg_uint8* );
-void* cyg_ldr_symbol_address( PELF_OBJECT, cyg_uint32 );
-void* cyg_ldr_external_address( PELF_OBJECT, cyg_uint32 );
+cyg_uint32 *cyg_ldr_load_elf_section(PELF_OBJECT, cyg_uint32);
+void cyg_ldr_delete_elf_section(PELF_OBJECT, cyg_uint32);
+cyg_uint32 *cyg_ldr_section_address(PELF_OBJECT, cyg_uint32);
+void* cyg_ldr_scan_file(PELF_OBJECT);
+cyg_int32 cyg_ldr_relocate_section(PELF_OBJECT, cyg_uint32);
+void* cyg_ldr_find_symbol(void*, char*);
+void* cyg_ldr_symbol_address(PELF_OBJECT, cyg_uint32);
+void* cyg_ldr_external_address(PELF_OBJECT, cyg_uint32);
//==============================================================================
// User interface.
-PELF_OBJECT cyg_ldr_open_library( CYG_ADDRWORD, cyg_int32 );
-void cyg_ldr_close_library( void* );
-cyg_uint8* cyg_ldr_error( void );
-void* cyg_ldr_get_symbol( void*, char* );
-
-PELF_OBJECT cyg_ldr_open_library_fs( cyg_uint8* );
-void cyg_ldr_close_library_fs( PELF_OBJECT );
+PELF_OBJECT cyg_ldr_open_library(CYG_ADDRWORD, cyg_int32);
+void cyg_ldr_close_library(void*);
+char* cyg_ldr_error(void);
+void* cyg_ldr_get_symbol(void*, char*);
//==============================================================================
-void *cyg_ldr_malloc( size_t ) CYGBLD_ATTRIB_WEAK;
-void cyg_ldr_free( void * ) CYGBLD_ATTRIB_WEAK;
+void *cyg_ldr_malloc(size_t) CYGBLD_ATTRIB_WEAK;
+void cyg_ldr_free(void *) CYGBLD_ATTRIB_WEAK;
//==============================================================================
typedef struct cyg_ldr_table_entry cyg_ldr_table_entry;
-#define CYG_LDR_TABLE_ENTRY( __name, __symbol_name, __handler ) \
- cyg_ldr_table_entry __name CYG_HAL_TABLE_ENTRY( ldr_table ) = \
+#define CYG_LDR_TABLE_ENTRY(__name, __symbol_name, __handler) \
+ cyg_ldr_table_entry __name CYG_HAL_TABLE_ENTRY(ldr_table) = \
{ __symbol_name, __handler }
//==============================================================================
-#define CYG_LDR_TABLE_KAPI_ALARM() \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_create_entry, \
- "cyg_alarm_create", cyg_alarm_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_delete_entry, \
- "cyg_alarm_delete", cyg_alarm_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_initialize_entry, \
- "cyg_alarm_initialize", cyg_alarm_initialize ); \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_get_times_entry, \
- "cyg_alarm_get_times", cyg_alarm_get_times ); \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_enable_entry, \
- "cyg_alarm_enable", cyg_alarm_enable ); \
-CYG_LDR_TABLE_ENTRY( cyg_alarm_disable_entry, \
- "cyg_alarm_disable", cyg_alarm_disable );
-
-#define CYG_LDR_TABLE_KAPI_CLOCK() \
-CYG_LDR_TABLE_ENTRY( cyg_clock_create_entry, \
- "cyg_clock_create", cyg_clock_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_clock_delete_entry, \
- "cyg_clock_delete", cyg_clock_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_clock_to_counter_entry, \
- "cyg_clock_to_counter", cyg_clock_to_counter ); \
-CYG_LDR_TABLE_ENTRY( cyg_clock_set_resolution_entry, \
- "cyg_clock_set_resolution", cyg_clock_set_resolution ); \
-CYG_LDR_TABLE_ENTRY( cyg_clock_get_resolution_entry, \
- "cyg_clock_get_resolution",cyg_clock_get_resolution ); \
-CYG_LDR_TABLE_ENTRY( cyg_real_time_clock_entry, \
- "cyg_real_time_clock", cyg_real_time_clock ); \
-CYG_LDR_TABLE_ENTRY( cyg_current_time_entry, \
- "cyg_current_time", cyg_current_time );
-
-#define CYG_LDR_TABLE_KAPI_COND() \
-CYG_LDR_TABLE_ENTRY( cyg_cond_init_entry, \
- "cyg_cond_init", cyg_cond_init ); \
-CYG_LDR_TABLE_ENTRY( cyg_cond_destroy_entry, \
- "cyg_cond_destroy", cyg_cond_destroy ); \
-CYG_LDR_TABLE_ENTRY( cyg_cond_wait_entry, \
- "cyg_cond_wait", cyg_cond_wait ); \
-CYG_LDR_TABLE_ENTRY( cyg_cond_signal_entry, \
- "cyg_cond_signal", cyg_cond_signal ); \
-CYG_LDR_TABLE_ENTRY( cyg_cond_broadcast_entry, \
- "cyg_cond_broadcast", cyg_cond_broadcast ); \
-CYG_LDR_TABLE_ENTRY( cyg_cond_timed_wait_entry, \
- "cyg_cond_timed_wait", cyg_cond_timed_wait );
-
-#define CYG_LDR_TABLE_KAPI_COUNTER() \
-CYG_LDR_TABLE_ENTRY( cyg_counter_create_entry, \
- "cyg_counter_create", cyg_counter_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_counter_delete_entry, \
- "cyg_counter_delete", cyg_counter_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_counter_current_value_entry, \
- "cyg_counter_current_value", cyg_counter_current_value ); \
-CYG_LDR_TABLE_ENTRY( cyg_counter_set_value_entry, \
- "cyg_counter_set_value", cyg_counter_set_value ); \
-CYG_LDR_TABLE_ENTRY( cyg_counter_tick_entry, \
- "cyg_counter_tick", cyg_counter_tick ); \
-CYG_LDR_TABLE_ENTRY( cyg_counter_multi_tick_entry, \
- "cyg_counter_multi_tick", cyg_counter_multi_tick );
-
-#define CYG_LDR_TABLE_KAPI_EXCEPTIONS() \
-CYG_LDR_TABLE_ENTRY( cyg_exception_set_handler_entry, \
- "cyg_exception_set_handler", cyg_exception_set_handler ); \
-CYG_LDR_TABLE_ENTRY( cyg_exception_clear_handler_entry, \
- "cyg_exception_clear_handler", \
- cyg_exception_clear_handler ); \
-CYG_LDR_TABLE_ENTRY( cyg_exception_call_handler_entry, \
- "cyg_exception_call_handler", \
- cyg_exception_call_handler );
-
-#define CYG_LDR_TABLE_KAPI_FLAG() \
-CYG_LDR_TABLE_ENTRY( cyg_flag_init_entry, \
- "cyg_flag_init", cyg_flag_init ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_destroy_entry, \
- "cyg_flag_destroy", cyg_flag_destroy ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_setbits_entry, \
- "cyg_flag_setbits", cyg_flag_setbits ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_maskbits_entry, \
- "cyg_flag_maskbits", cyg_flag_maskbits ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_wait_entry, \
- "cyg_flag_wait", cyg_flag_wait ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_timed_wait_entry, \
- "cyg_flag_timed_wait", cyg_flag_timed_wait ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_poll_entry, \
- "cyg_flag_poll", cyg_flag_poll ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_peek_entry, \
- "cyg_flag_peek", cyg_flag_peek ); \
-CYG_LDR_TABLE_ENTRY( cyg_flag_waiting_entry, \
- "cyg_flag_waiting", cyg_flag_waiting );
-
-#define CYG_LDR_TABLE_KAPI_INTERRUPTS() \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_create_entry, \
- "cyg_interrupt_create", cyg_interrupt_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_delete_entry, \
- "cyg_interrupt_delete", cyg_interrupt_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_attach_entry, \
- "cyg_interrupt_attach", cyg_interrupt_attach ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_detach_entry, \
- "cyg_interrupt_detach", cyg_interrupt_detach ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_get_vsr_entry, \
- "cyg_interrupt_get_vsr", cyg_interrupt_get_vsr ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_set_vsr_entry, \
- "cyg_interrupt_set_vsr", cyg_interrupt_set_vsr ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_disable_entry, \
- "cyg_interrupt_disable", cyg_interrupt_disable ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_enable_entry, \
- "cyg_interrupt_enable", cyg_interrupt_enable ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_mask_entry, \
- "cyg_interrupt_mask", cyg_interrupt_mask ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_mask_intunsafe_entry, \
- "cyg_interrupt_mask_intunsafe", \
- cyg_interrupt_mask_intunsafe ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_unmask_entry, \
- "cyg_interrupt_unmask", cyg_interrupt_unmask ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_unmask_intunsafe_entry, \
- "cyg_interrupt_unmask_intunsafe", \
- cyg_interrupt_unmask_intunsafe ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_acknowledge_entry, \
- "cyg_interrupt_acknowledge", \
- cyg_interrupt_acknowledge ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_configure_entry, \
- "cyg_interrupt_configure", cyg_interrupt_configure ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_set_cpu_entry, \
- "cyg_interrupt_set_cpu", cyg_interrupt_set_cpu ); \
-CYG_LDR_TABLE_ENTRY( cyg_interrupt_get_cpu_entry, \
- "cyg_interrupt_get_cpu", cyg_interrupt_get_cpu );
-
-#define CYG_LDR_TABLE_KAPI_MBOX() \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_create_entry, \
- "cyg_mbox_create", cyg_mbox_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_delete_entry, \
- "cyg_mbox_delete", cyg_mbox_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_get_entry, \
- "cyg_mbox_get", cyg_mbox_get ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_timed_get_entry, \
- "cyg_mbox_timed_get", cyg_mbox_timed_get ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_tryget_entry, \
- "cyg_mbox_tryget", cyg_mbox_tryget ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_peek_item_entry, \
- "cyg_mbox_peek_item", cyg_mbox_peek_item ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_put_entry, \
- "cyg_mbox_put", cyg_mbox_put ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_timed_put_entry, \
- "cyg_mbox_timed_put", cyg_mbox_timed_put ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_tryput_entry, \
- "cyg_mbox_tryput", cyg_mbox_tryput ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_peek_entry, \
- "cyg_mbox_peek", cyg_mbox_peek ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_waiting_to_get_entry, \
- "cyg_mbox_waiting_to_get", \
- cyg_mbox_waiting_to_get ); \
-CYG_LDR_TABLE_ENTRY( cyg_mbox_waiting_to_put_entry, \
- "cyg_mbox_waiting_to_put", \
- cyg_mbox_waiting_to_put );
-
-#define CYG_LDR_TABLE_KAPI_MEMPOOL_FIX() \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_create_entry, \
- "cyg_mempool_fix_create", cyg_mempool_fix_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_delete_entry, \
- "cyg_mempool_fix_delete", cyg_mempool_fix_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_alloc_entry, \
- "cyg_mempool_fix_alloc", cyg_mempool_fix_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_timed_alloc_entry, \
- "cyg_mempool_fix_timed_alloc", \
- cyg_mempool_fix_timed_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_try_alloc_entry, \
- "cyg_mempool_fix_try_alloc", \
- cyg_mempool_fix_try_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_free_entry, \
- "cyg_mempool_fix_free", cyg_mempool_fix_free ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_waiting_entry, \
- "cyg_mempool_fix_waiting", cyg_mempool_fix_waiting ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_fix_get_info_entry, \
- "cyg_mempool_fix_get_info", cyg_mempool_fix_get_info );
-
-#define CYG_LDR_TABLE_KAPI_MEMPOOL_VAR() \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_create_entry, \
- "cyg_mempool_var_create", cyg_mempool_var_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_delete_entry, \
- "cyg_mempool_var_delete", cyg_mempool_var_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_alloc_entry, \
- "cyg_mempool_var_alloc", cyg_mempool_var_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_timed_alloc_entry, \
- "cyg_mempool_var_timed_alloc", \
- cyg_mempool_var_timed_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_try_alloc_entry, \
- "cyg_mempool_var_try_alloc", \
- cyg_mempool_var_try_alloc ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_free_entry, \
- "cyg_mempool_var_free", cyg_mempool_var_free ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_waiting_entry, \
- "cyg_mempool_var_waiting", cyg_mempool_var_waiting ); \
-CYG_LDR_TABLE_ENTRY( cyg_mempool_var_get_info_entry, \
- "cyg_mempool_var_get_info", cyg_mempool_var_get_info );
-
-#define CYG_LDR_TABLE_KAPI_MUTEX() \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_init_entry, \
- "cyg_mutex_init", cyg_mutex_init ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_destroy_entry, \
- "cyg_mutex_destroy", cyg_mutex_destroy ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_trylock_entry, \
- "cyg_mutex_trylock", cyg_mutex_trylock ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_unlock_entry, \
- "cyg_mutex_unlock", cyg_mutex_unlock ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_release_entry, \
- "cyg_mutex_release", cyg_mutex_release ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_set_ceiling_entry, \
- "cyg_mutex_set_ceiling", cyg_mutex_set_ceiling ); \
-CYG_LDR_TABLE_ENTRY( cyg_mutex_set_protocol_entry, \
- "cyg_mutex_set_protocol", cyg_mutex_set_protocol );
-
-#define CYG_LDR_TABLE_KAPI_SCHEDULER() \
-CYG_LDR_TABLE_ENTRY( cyg_scheduler_start_entry, \
- "cyg_scheduler_start", cyg_scheduler_start ); \
-CYG_LDR_TABLE_ENTRY( cyg_scheduler_lock_entry, \
- "cyg_scheduler_lock", cyg_scheduler_lock ); \
-CYG_LDR_TABLE_ENTRY( cyg_scheduler_safe_lock_entry, \
- "cyg_scheduler_safe_lock", cyg_scheduler_safe_lock ); \
-CYG_LDR_TABLE_ENTRY( cyg_scheduler_unlock_entry, \
- "cyg_scheduler_unlock", cyg_scheduler_unlock ); \
-CYG_LDR_TABLE_ENTRY( cyg_scheduler_read_lock_entry, \
- "cyg_scheduler_read_lock", cyg_scheduler_read_lock ); \
-
-#define CYG_LDR_TABLE_KAPI_SEMAPHORE() \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_init_entry, \
- "cyg_semaphore_init", cyg_semaphore_init ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_destroy_entry, \
- "cyg_semaphore_destroy", cyg_semaphore_destroy ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_wait_entry, \
- "cyg_semaphore_wait", cyg_semaphore_wait ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_timed_wait_entry, \
- "cyg_semaphore_timed_wait", cyg_semaphore_timed_wait ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_try_wait_entry, \
- "cyg_semaphore_trywait", cyg_semaphore_trywait ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_post_entry, \
- "cyg_semaphore_post", cyg_semaphore_post ); \
-CYG_LDR_TABLE_ENTRY( cyg_semaphore_peek_entry, \
- "cyg_semaphore_peek", cyg_semaphore_peek );
-
-#define CYG_LDR_TABLE_KAPI_THREAD() \
-CYG_LDR_TABLE_ENTRY( cyg_thread_create_entry, \
- "cyg_thread_create", cyg_thread_create ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_exit_entry, \
- "cyg_thread_exit", cyg_thread_exit ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_delete_entry, \
- "cyg_thread_delete", cyg_thread_delete ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_suspend_entry, \
- "cyg_thread_suspend", cyg_thread_suspend ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_resume_entry, \
- "cyg_thread_resume", cyg_thread_resume ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_kill_entry, \
- "cyg_thread_kill", cyg_thread_kill ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_release_entry, \
- "cyg_thread_release", cyg_thread_release ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_yield_entry, \
- "cyg_thread_yield", cyg_thread_yield ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_self_entry, \
- "cyg_thread_self", cyg_thread_self ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_idle_thread_entry, \
- "cyg_thread_idle_thread", cyg_thread_idle_thread ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_set_priority_entry, \
- "cyg_thread_set_priority", cyg_thread_set_priority ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_priority_entry, \
- "cyg_thread_get_priority", cyg_thread_get_priority ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_current_priority_entry, \
- "cyg_thread_get_current_priority", \
- cyg_thread_get_current_priority ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_delay_entry, \
- "cyg_thread_delay", cyg_thread_delay ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_stack_base_entry, \
- "cyg_thread_get_stack_base", cyg_thread_get_stack_base ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_stack_size_entry, \
- "cyg_thread_get_stack_size", cyg_thread_get_stack_size ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_new_data_index_entry, \
- "cyg_thread_new_data_index", cyg_thread_new_data_index ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_free_data_index_entry, \
- "cyg_thread_free_data_index", \
- cyg_thread_free_data_index ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_data_entry, \
- "cyg_thread_get_data", cyg_thread_get_data ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_get_data_ptr_entry, \
- "cyg_thread_get_data_ptr", cyg_thread_get_data_ptr ); \
-CYG_LDR_TABLE_ENTRY( cyg_thread_set_data_entry, \
- "cyg_thread_set_data", cyg_thread_set_data );
-
-#define CYG_LDR_TABLE_STRING() \
-CYG_LDR_TABLE_ENTRY( memchr_entry, "memchr", memchr ); \
-CYG_LDR_TABLE_ENTRY( memcmp_entry, "memcmp", memcmp ); \
-CYG_LDR_TABLE_ENTRY( memcpy_entry, "memcpy", memcpy ); \
-CYG_LDR_TABLE_ENTRY( memmove_entry, "memmove", memmove ); \
-CYG_LDR_TABLE_ENTRY( memset_entry, "memset", memset ); \
-CYG_LDR_TABLE_ENTRY( strcpy_entry, "strcpy", strcpy ); \
-CYG_LDR_TABLE_ENTRY( strncpy_entry, "strncpy", strncpy ); \
-CYG_LDR_TABLE_ENTRY( strcat_entry, "strcat", strcat ); \
-CYG_LDR_TABLE_ENTRY( strncat_entry, "strncat", strncat ); \
-CYG_LDR_TABLE_ENTRY( strchr_entry, "strchr", strchr ); \
-CYG_LDR_TABLE_ENTRY( strrchr_entry, "strrchr", strrchr ); \
-CYG_LDR_TABLE_ENTRY( strcoll_entry, "strcoll", strcoll ); \
-CYG_LDR_TABLE_ENTRY( strlen_entry, "strlen", strlen ); \
-CYG_LDR_TABLE_ENTRY( strcmp_entry, "strcmp", strcmp ); \
-CYG_LDR_TABLE_ENTRY( strncmp_entry, "strncmp", strncmp ); \
-CYG_LDR_TABLE_ENTRY( strcspn_entry, "strcspn", strcspn ); \
-CYG_LDR_TABLE_ENTRY( strerror_entry, "strerror", strerror ); \
-CYG_LDR_TABLE_ENTRY( strpbrk_entry, "strpbrk", strpbrk ); \
-CYG_LDR_TABLE_ENTRY( strspn_entry, "strspn", strspn ); \
-CYG_LDR_TABLE_ENTRY( strstr_entry, "strstr", strstr ); \
-CYG_LDR_TABLE_ENTRY( strtok_entry, "strtok", strtok ); \
-CYG_LDR_TABLE_ENTRY( strxfrm_entry, "strxfrm", strxfrm );
-
-#define CYG_LDR_TABLE_STDIO() \
-CYG_LDR_TABLE_ENTRY( clearerr_entry, "clearerr", clearerr ); \
-CYG_LDR_TABLE_ENTRY( fclose_entry, "fclose", fclose ); \
-CYG_LDR_TABLE_ENTRY( feof_entry, "feof", feof ); \
-CYG_LDR_TABLE_ENTRY( ferror_entry, "ferror", ferror ); \
-CYG_LDR_TABLE_ENTRY( fflush_entry, "fflush", fflush ); \
-CYG_LDR_TABLE_ENTRY( fgetc_entry, "fgetc", fgetc ); \
-CYG_LDR_TABLE_ENTRY( fgetpos_entry, "fgetpos", fgetpos ); \
-CYG_LDR_TABLE_ENTRY( fgets_entry, "fgets", fgets ); \
-CYG_LDR_TABLE_ENTRY( fopen_entry, "fopen", fopen ); \
-CYG_LDR_TABLE_ENTRY( fprintf_entry, "fprintf", fprintf ); \
-CYG_LDR_TABLE_ENTRY( fputc_entry, "fputc", fputc ); \
-CYG_LDR_TABLE_ENTRY( fputs_entry, "fputs", fputs ); \
-CYG_LDR_TABLE_ENTRY( fread_entry, "fread", fread ); \
-CYG_LDR_TABLE_ENTRY( freopen_entry, "freopen", freopen ); \
-CYG_LDR_TABLE_ENTRY( fscanf_entry, "fscanf", fscanf ); \
-CYG_LDR_TABLE_ENTRY( fseek_entry, "fseek", fseek ); \
-CYG_LDR_TABLE_ENTRY( fsetpos_entry, "fsetpos", fsetpos ); \
-CYG_LDR_TABLE_ENTRY( ftell_entry, "ftell", ftell ); \
-CYG_LDR_TABLE_ENTRY( fwrite_entry, "fwrite", fwrite ); \
-CYG_LDR_TABLE_ENTRY( perror_entry, "perror", perror ); \
-CYG_LDR_TABLE_ENTRY( printf_entry, "printf", printf ); \
-CYG_LDR_TABLE_ENTRY( putc_entry, "putc", putc ); \
-CYG_LDR_TABLE_ENTRY( putchar_entry, "putchar", putchar ); \
-CYG_LDR_TABLE_ENTRY( puts_entry, "puts", puts ); \
-CYG_LDR_TABLE_ENTRY( remove_entry, "remove", remove ); \
-CYG_LDR_TABLE_ENTRY( rename_entry, "rename", rename ); \
-CYG_LDR_TABLE_ENTRY( rewind_entry, "rewind", rewind ); \
-CYG_LDR_TABLE_ENTRY( scanf_entry, "scanf", scanf ); \
-CYG_LDR_TABLE_ENTRY( setbuf_entry, "setbuf", setbuf ); \
-CYG_LDR_TABLE_ENTRY( setvbuf_entry, "setvbuf", setvbuf ); \
-CYG_LDR_TABLE_ENTRY( sprintf_entry, "sprintf", sprintf ); \
-CYG_LDR_TABLE_ENTRY( sscanf_entry, "sscanf", sscanf ); \
-CYG_LDR_TABLE_ENTRY( tmpfile_entry, "tmpfile", tmpfile ); \
-CYG_LDR_TABLE_ENTRY( tmpnam_entry, "tmpnam", tmpnam ); \
-CYG_LDR_TABLE_ENTRY( ungetc_entry, "ungetc", ungetc );
-
-#define CYG_LDR_TABLE_INFRA_DIAG() \
-CYG_LDR_TABLE_ENTRY( diag_init_entry, "diag_init", diag_init ); \
-CYG_LDR_TABLE_ENTRY( diag_write_char_entry, \
- "diag_write_char", diag_write_char ); \
-CYG_LDR_TABLE_ENTRY( diag_write_string_entry, \
- "diag_write_string", diag_write_string ); \
-CYG_LDR_TABLE_ENTRY( diag_write_dec_entry, \
- "diag_write_dec", diag_write_dec ); \
-CYG_LDR_TABLE_ENTRY( diag_write_hex_entry, \
- "diag_write_hex", diag_write_hex ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_entry, \
- "diag_dump_buf", diag_dump_buf ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_32bit_entry, \
- "diag_dump_buf_32bit", diag_dump_buf_32bit ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_16bit_entry, \
- "diag_dump_buf_16bit", diag_dump_buf_16bit ); \
-CYG_LDR_TABLE_ENTRY( diag_vdump_buf_with_offset_entry, \
- "diag_vdump_buf_with_offset", \
- diag_vdump_buf_with_offset ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_with_offset_entry, \
- "diag_dump_buf_with_offset", \
- diag_dump_buf_with_offset ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_with_offset_32bit_entry, \
- "diag_dump_buf_with_offset_32bit", \
- diag_dump_buf_with_offset_32bit ); \
-CYG_LDR_TABLE_ENTRY( diag_dump_buf_with_offset_16bit_entry, \
- "diag_dump_buf_with_offset_16bit", \
- diag_dump_buf_with_offset_16bit ); \
-CYG_LDR_TABLE_ENTRY( diag_printf_entry, "diag_printf", diag_printf ); \
-CYG_LDR_TABLE_ENTRY( diag_init_putc_entry, "diag_init_putc", diag_init_putc ); \
-CYG_LDR_TABLE_ENTRY( diag_sprintf_entry, "diag_sprintf", diag_sprintf ); \
-CYG_LDR_TABLE_ENTRY( diag_snprintf_entry, "diag_snprintf", diag_snprintf ); \
-CYG_LDR_TABLE_ENTRY( diag_vsprintf_entry, "diag_vsprintf", diag_vsprintf ); \
-CYG_LDR_TABLE_ENTRY( diag_vprintf_entry, "diag_vprintf", diag_vprintf );
+#define CYG_LDR_TABLE_KAPI_ALARM() \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_create_entry, \
+ "cyg_alarm_create", cyg_alarm_create); \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_delete_entry, \
+ "cyg_alarm_delete", cyg_alarm_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_initialize_entry, \
+ "cyg_alarm_initialize", cyg_alarm_initialize); \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_get_times_entry, \
+ "cyg_alarm_get_times", cyg_alarm_get_times); \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_enable_entry, \
+ "cyg_alarm_enable", cyg_alarm_enable); \
+CYG_LDR_TABLE_ENTRY(cyg_alarm_disable_entry, \
+ "cyg_alarm_disable", cyg_alarm_disable);
+
+#define CYG_LDR_TABLE_KAPI_CLOCK() \
+CYG_LDR_TABLE_ENTRY(cyg_clock_create_entry, \
+ "cyg_clock_create", cyg_clock_create); \
+CYG_LDR_TABLE_ENTRY(cyg_clock_delete_entry, \
+ "cyg_clock_delete", cyg_clock_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_clock_to_counter_entry, \
+ "cyg_clock_to_counter", cyg_clock_to_counter); \
+CYG_LDR_TABLE_ENTRY(cyg_clock_set_resolution_entry, \
+ "cyg_clock_set_resolution", cyg_clock_set_resolution); \
+CYG_LDR_TABLE_ENTRY(cyg_clock_get_resolution_entry, \
+ "cyg_clock_get_resolution",cyg_clock_get_resolution); \
+CYG_LDR_TABLE_ENTRY(cyg_real_time_clock_entry, \
+ "cyg_real_time_clock", cyg_real_time_clock); \
+CYG_LDR_TABLE_ENTRY(cyg_current_time_entry, \
+ "cyg_current_time", cyg_current_time);
+
+#define CYG_LDR_TABLE_KAPI_COND() \
+CYG_LDR_TABLE_ENTRY(cyg_cond_init_entry, \
+ "cyg_cond_init", cyg_cond_init); \
+CYG_LDR_TABLE_ENTRY(cyg_cond_destroy_entry, \
+ "cyg_cond_destroy", cyg_cond_destroy); \
+CYG_LDR_TABLE_ENTRY(cyg_cond_wait_entry, \
+ "cyg_cond_wait", cyg_cond_wait); \
+CYG_LDR_TABLE_ENTRY(cyg_cond_signal_entry, \
+ "cyg_cond_signal", cyg_cond_signal); \
+CYG_LDR_TABLE_ENTRY(cyg_cond_broadcast_entry, \
+ "cyg_cond_broadcast", cyg_cond_broadcast); \
+CYG_LDR_TABLE_ENTRY(cyg_cond_timed_wait_entry, \
+ "cyg_cond_timed_wait", cyg_cond_timed_wait);
+
+#define CYG_LDR_TABLE_KAPI_COUNTER() \
+CYG_LDR_TABLE_ENTRY(cyg_counter_create_entry, \
+ "cyg_counter_create", cyg_counter_create); \
+CYG_LDR_TABLE_ENTRY(cyg_counter_delete_entry, \
+ "cyg_counter_delete", cyg_counter_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_counter_current_value_entry, \
+ "cyg_counter_current_value", cyg_counter_current_value); \
+CYG_LDR_TABLE_ENTRY(cyg_counter_set_value_entry, \
+ "cyg_counter_set_value", cyg_counter_set_value); \
+CYG_LDR_TABLE_ENTRY(cyg_counter_tick_entry, \
+ "cyg_counter_tick", cyg_counter_tick); \
+CYG_LDR_TABLE_ENTRY(cyg_counter_multi_tick_entry, \
+ "cyg_counter_multi_tick", cyg_counter_multi_tick);
+
+#define CYG_LDR_TABLE_KAPI_EXCEPTIONS() \
+CYG_LDR_TABLE_ENTRY(cyg_exception_set_handler_entry, \
+ "cyg_exception_set_handler", cyg_exception_set_handler); \
+CYG_LDR_TABLE_ENTRY(cyg_exception_clear_handler_entry, \
+ "cyg_exception_clear_handler", \
+ cyg_exception_clear_handler); \
+CYG_LDR_TABLE_ENTRY(cyg_exception_call_handler_entry, \
+ "cyg_exception_call_handler", \
+ cyg_exception_call_handler);
+
+#define CYG_LDR_TABLE_KAPI_FLAG() \
+CYG_LDR_TABLE_ENTRY(cyg_flag_init_entry, \
+ "cyg_flag_init", cyg_flag_init); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_destroy_entry, \
+ "cyg_flag_destroy", cyg_flag_destroy); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_setbits_entry, \
+ "cyg_flag_setbits", cyg_flag_setbits); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_maskbits_entry, \
+ "cyg_flag_maskbits", cyg_flag_maskbits); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_wait_entry, \
+ "cyg_flag_wait", cyg_flag_wait); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_timed_wait_entry, \
+ "cyg_flag_timed_wait", cyg_flag_timed_wait); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_poll_entry, \
+ "cyg_flag_poll", cyg_flag_poll); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_peek_entry, \
+ "cyg_flag_peek", cyg_flag_peek); \
+CYG_LDR_TABLE_ENTRY(cyg_flag_waiting_entry, \
+ "cyg_flag_waiting", cyg_flag_waiting);
+
+#define CYG_LDR_TABLE_KAPI_INTERRUPTS() \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_create_entry, \
+ "cyg_interrupt_create", cyg_interrupt_create); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_delete_entry, \
+ "cyg_interrupt_delete", cyg_interrupt_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_attach_entry, \
+ "cyg_interrupt_attach", cyg_interrupt_attach); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_detach_entry, \
+ "cyg_interrupt_detach", cyg_interrupt_detach); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_get_vsr_entry, \
+ "cyg_interrupt_get_vsr", cyg_interrupt_get_vsr); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_set_vsr_entry, \
+ "cyg_interrupt_set_vsr", cyg_interrupt_set_vsr); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_disable_entry, \
+ "cyg_interrupt_disable", cyg_interrupt_disable); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_enable_entry, \
+ "cyg_interrupt_enable", cyg_interrupt_enable); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_mask_entry, \
+ "cyg_interrupt_mask", cyg_interrupt_mask); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_mask_intunsafe_entry, \
+ "cyg_interrupt_mask_intunsafe", \
+ cyg_interrupt_mask_intunsafe); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_unmask_entry, \
+ "cyg_interrupt_unmask", cyg_interrupt_unmask); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_unmask_intunsafe_entry, \
+ "cyg_interrupt_unmask_intunsafe", \
+ cyg_interrupt_unmask_intunsafe); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_acknowledge_entry, \
+ "cyg_interrupt_acknowledge", \
+ cyg_interrupt_acknowledge); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_configure_entry, \
+ "cyg_interrupt_configure", cyg_interrupt_configure); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_set_cpu_entry, \
+ "cyg_interrupt_set_cpu", cyg_interrupt_set_cpu); \
+CYG_LDR_TABLE_ENTRY(cyg_interrupt_get_cpu_entry, \
+ "cyg_interrupt_get_cpu", cyg_interrupt_get_cpu);
+
+#define CYG_LDR_TABLE_KAPI_MBOX() \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_create_entry, \
+ "cyg_mbox_create", cyg_mbox_create); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_delete_entry, \
+ "cyg_mbox_delete", cyg_mbox_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_get_entry, \
+ "cyg_mbox_get", cyg_mbox_get); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_timed_get_entry, \
+ "cyg_mbox_timed_get", cyg_mbox_timed_get); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_tryget_entry, \
+ "cyg_mbox_tryget", cyg_mbox_tryget); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_peek_item_entry, \
+ "cyg_mbox_peek_item", cyg_mbox_peek_item); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_put_entry, \
+ "cyg_mbox_put", cyg_mbox_put); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_timed_put_entry, \
+ "cyg_mbox_timed_put", cyg_mbox_timed_put); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_tryput_entry, \
+ "cyg_mbox_tryput", cyg_mbox_tryput); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_peek_entry, \
+ "cyg_mbox_peek", cyg_mbox_peek); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_waiting_to_get_entry, \
+ "cyg_mbox_waiting_to_get", \
+ cyg_mbox_waiting_to_get); \
+CYG_LDR_TABLE_ENTRY(cyg_mbox_waiting_to_put_entry, \
+ "cyg_mbox_waiting_to_put", \
+ cyg_mbox_waiting_to_put);
+
+#define CYG_LDR_TABLE_KAPI_MEMPOOL_FIX() \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_create_entry, \
+ "cyg_mempool_fix_create", cyg_mempool_fix_create); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_delete_entry, \
+ "cyg_mempool_fix_delete", cyg_mempool_fix_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_alloc_entry, \
+ "cyg_mempool_fix_alloc", cyg_mempool_fix_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_timed_alloc_entry, \
+ "cyg_mempool_fix_timed_alloc", \
+ cyg_mempool_fix_timed_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_try_alloc_entry, \
+ "cyg_mempool_fix_try_alloc", \
+ cyg_mempool_fix_try_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_free_entry, \
+ "cyg_mempool_fix_free", cyg_mempool_fix_free); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_waiting_entry, \
+ "cyg_mempool_fix_waiting", cyg_mempool_fix_waiting); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_fix_get_info_entry, \
+ "cyg_mempool_fix_get_info", cyg_mempool_fix_get_info);
+
+#define CYG_LDR_TABLE_KAPI_MEMPOOL_VAR() \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_create_entry, \
+ "cyg_mempool_var_create", cyg_mempool_var_create); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_delete_entry, \
+ "cyg_mempool_var_delete", cyg_mempool_var_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_alloc_entry, \
+ "cyg_mempool_var_alloc", cyg_mempool_var_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_timed_alloc_entry, \
+ "cyg_mempool_var_timed_alloc", \
+ cyg_mempool_var_timed_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_try_alloc_entry, \
+ "cyg_mempool_var_try_alloc", \
+ cyg_mempool_var_try_alloc); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_free_entry, \
+ "cyg_mempool_var_free", cyg_mempool_var_free); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_waiting_entry, \
+ "cyg_mempool_var_waiting", cyg_mempool_var_waiting); \
+CYG_LDR_TABLE_ENTRY(cyg_mempool_var_get_info_entry, \
+ "cyg_mempool_var_get_info", cyg_mempool_var_get_info);
+
+#define CYG_LDR_TABLE_KAPI_MUTEX() \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_init_entry, \
+ "cyg_mutex_init", cyg_mutex_init); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_destroy_entry, \
+ "cyg_mutex_destroy", cyg_mutex_destroy); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_trylock_entry, \
+ "cyg_mutex_trylock", cyg_mutex_trylock); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_unlock_entry, \
+ "cyg_mutex_unlock", cyg_mutex_unlock); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_release_entry, \
+ "cyg_mutex_release", cyg_mutex_release); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_set_ceiling_entry, \
+ "cyg_mutex_set_ceiling", cyg_mutex_set_ceiling); \
+CYG_LDR_TABLE_ENTRY(cyg_mutex_set_protocol_entry, \
+ "cyg_mutex_set_protocol", cyg_mutex_set_protocol);
+
+#define CYG_LDR_TABLE_KAPI_SCHEDULER() \
+CYG_LDR_TABLE_ENTRY(cyg_scheduler_start_entry, \
+ "cyg_scheduler_start", cyg_scheduler_start); \
+CYG_LDR_TABLE_ENTRY(cyg_scheduler_lock_entry, \
+ "cyg_scheduler_lock", cyg_scheduler_lock); \
+CYG_LDR_TABLE_ENTRY(cyg_scheduler_safe_lock_entry, \
+ "cyg_scheduler_safe_lock", cyg_scheduler_safe_lock); \
+CYG_LDR_TABLE_ENTRY(cyg_scheduler_unlock_entry, \
+ "cyg_scheduler_unlock", cyg_scheduler_unlock); \
+CYG_LDR_TABLE_ENTRY(cyg_scheduler_read_lock_entry, \
+ "cyg_scheduler_read_lock", cyg_scheduler_read_lock); \
+
+#define CYG_LDR_TABLE_KAPI_SEMAPHORE() \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_init_entry, \
+ "cyg_semaphore_init", cyg_semaphore_init); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_destroy_entry, \
+ "cyg_semaphore_destroy", cyg_semaphore_destroy); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_wait_entry, \
+ "cyg_semaphore_wait", cyg_semaphore_wait); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_timed_wait_entry, \
+ "cyg_semaphore_timed_wait", cyg_semaphore_timed_wait); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_try_wait_entry, \
+ "cyg_semaphore_trywait", cyg_semaphore_trywait); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_post_entry, \
+ "cyg_semaphore_post", cyg_semaphore_post); \
+CYG_LDR_TABLE_ENTRY(cyg_semaphore_peek_entry, \
+ "cyg_semaphore_peek", cyg_semaphore_peek);
+
+#define CYG_LDR_TABLE_KAPI_THREAD() \
+CYG_LDR_TABLE_ENTRY(cyg_thread_create_entry, \
+ "cyg_thread_create", cyg_thread_create); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_exit_entry, \
+ "cyg_thread_exit", cyg_thread_exit); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_delete_entry, \
+ "cyg_thread_delete", cyg_thread_delete); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_suspend_entry, \
+ "cyg_thread_suspend", cyg_thread_suspend); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_resume_entry, \
+ "cyg_thread_resume", cyg_thread_resume); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_kill_entry, \
+ "cyg_thread_kill", cyg_thread_kill); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_release_entry, \
+ "cyg_thread_release", cyg_thread_release); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_yield_entry, \
+ "cyg_thread_yield", cyg_thread_yield); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_self_entry, \
+ "cyg_thread_self", cyg_thread_self); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_idle_thread_entry, \
+ "cyg_thread_idle_thread", cyg_thread_idle_thread); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_set_priority_entry, \
+ "cyg_thread_set_priority", cyg_thread_set_priority); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_priority_entry, \
+ "cyg_thread_get_priority", cyg_thread_get_priority); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_current_priority_entry, \
+ "cyg_thread_get_current_priority", \
+ cyg_thread_get_current_priority); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_delay_entry, \
+ "cyg_thread_delay", cyg_thread_delay); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_stack_base_entry, \
+ "cyg_thread_get_stack_base", cyg_thread_get_stack_base); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_stack_size_entry, \
+ "cyg_thread_get_stack_size", cyg_thread_get_stack_size); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_new_data_index_entry, \
+ "cyg_thread_new_data_index", cyg_thread_new_data_index); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_free_data_index_entry, \
+ "cyg_thread_free_data_index", \
+ cyg_thread_free_data_index); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_data_entry, \
+ "cyg_thread_get_data", cyg_thread_get_data); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_get_data_ptr_entry, \
+ "cyg_thread_get_data_ptr", cyg_thread_get_data_ptr); \
+CYG_LDR_TABLE_ENTRY(cyg_thread_set_data_entry, \
+ "cyg_thread_set_data", cyg_thread_set_data);
+
+#define CYG_LDR_TABLE_STRING() \
+CYG_LDR_TABLE_ENTRY(memchr_entry, "memchr", memchr); \
+CYG_LDR_TABLE_ENTRY(memcmp_entry, "memcmp", memcmp); \
+CYG_LDR_TABLE_ENTRY(memcpy_entry, "memcpy", memcpy); \
+CYG_LDR_TABLE_ENTRY(memmove_entry, "memmove", memmove); \
+CYG_LDR_TABLE_ENTRY(memset_entry, "memset", memset); \
+CYG_LDR_TABLE_ENTRY(strcpy_entry, "strcpy", strcpy); \
+CYG_LDR_TABLE_ENTRY(strncpy_entry, "strncpy", strncpy); \
+CYG_LDR_TABLE_ENTRY(strcat_entry, "strcat", strcat); \
+CYG_LDR_TABLE_ENTRY(strncat_entry, "strncat", strncat); \
+CYG_LDR_TABLE_ENTRY(strchr_entry, "strchr", strchr); \
+CYG_LDR_TABLE_ENTRY(strrchr_entry, "strrchr", strrchr); \
+CYG_LDR_TABLE_ENTRY(strcoll_entry, "strcoll", strcoll); \
+CYG_LDR_TABLE_ENTRY(strlen_entry, "strlen", strlen); \
+CYG_LDR_TABLE_ENTRY(strcmp_entry, "strcmp", strcmp); \
+CYG_LDR_TABLE_ENTRY(strncmp_entry, "strncmp", strncmp); \
+CYG_LDR_TABLE_ENTRY(strcspn_entry, "strcspn", strcspn); \
+CYG_LDR_TABLE_ENTRY(strerror_entry, "strerror", strerror); \
+CYG_LDR_TABLE_ENTRY(strpbrk_entry, "strpbrk", strpbrk); \
+CYG_LDR_TABLE_ENTRY(strspn_entry, "strspn", strspn); \
+CYG_LDR_TABLE_ENTRY(strstr_entry, "strstr", strstr); \
+CYG_LDR_TABLE_ENTRY(strtok_entry, "strtok", strtok); \
+CYG_LDR_TABLE_ENTRY(strxfrm_entry, "strxfrm", strxfrm);
+
+#define CYG_LDR_TABLE_STDIO() \
+CYG_LDR_TABLE_ENTRY(clearerr_entry, "clearerr", clearerr); \
+CYG_LDR_TABLE_ENTRY(fclose_entry, "fclose", fclose); \
+CYG_LDR_TABLE_ENTRY(feof_entry, "feof", feof); \
+CYG_LDR_TABLE_ENTRY(ferror_entry, "ferror", ferror); \
+CYG_LDR_TABLE_ENTRY(fflush_entry, "fflush", fflush); \
+CYG_LDR_TABLE_ENTRY(fgetc_entry, "fgetc", fgetc); \
+CYG_LDR_TABLE_ENTRY(fgetpos_entry, "fgetpos", fgetpos); \
+CYG_LDR_TABLE_ENTRY(fgets_entry, "fgets", fgets); \
+CYG_LDR_TABLE_ENTRY(fopen_entry, "fopen", fopen); \
+CYG_LDR_TABLE_ENTRY(fprintf_entry, "fprintf", fprintf); \
+CYG_LDR_TABLE_ENTRY(fputc_entry, "fputc", fputc); \
+CYG_LDR_TABLE_ENTRY(fputs_entry, "fputs", fputs); \
+CYG_LDR_TABLE_ENTRY(fread_entry, "fread", fread); \
+CYG_LDR_TABLE_ENTRY(freopen_entry, "freopen", freopen); \
+CYG_LDR_TABLE_ENTRY(fscanf_entry, "fscanf", fscanf); \
+CYG_LDR_TABLE_ENTRY(fseek_entry, "fseek", fseek); \
+CYG_LDR_TABLE_ENTRY(fsetpos_entry, "fsetpos", fsetpos); \
+CYG_LDR_TABLE_ENTRY(ftell_entry, "ftell", ftell); \
+CYG_LDR_TABLE_ENTRY(fwrite_entry, "fwrite", fwrite); \
+CYG_LDR_TABLE_ENTRY(perror_entry, "perror", perror); \
+CYG_LDR_TABLE_ENTRY(printf_entry, "printf", printf); \
+CYG_LDR_TABLE_ENTRY(putc_entry, "putc", putc); \
+CYG_LDR_TABLE_ENTRY(putchar_entry, "putchar", putchar); \
+CYG_LDR_TABLE_ENTRY(puts_entry, "puts", puts); \
+CYG_LDR_TABLE_ENTRY(remove_entry, "remove", remove); \
+CYG_LDR_TABLE_ENTRY(rename_entry, "rename", rename); \
+CYG_LDR_TABLE_ENTRY(rewind_entry, "rewind", rewind); \
+CYG_LDR_TABLE_ENTRY(scanf_entry, "scanf", scanf); \
+CYG_LDR_TABLE_ENTRY(setbuf_entry, "setbuf", setbuf); \
+CYG_LDR_TABLE_ENTRY(setvbuf_entry, "setvbuf", setvbuf); \
+CYG_LDR_TABLE_ENTRY(sprintf_entry, "sprintf", sprintf); \
+CYG_LDR_TABLE_ENTRY(sscanf_entry, "sscanf", sscanf); \
+CYG_LDR_TABLE_ENTRY(tmpfile_entry, "tmpfile", tmpfile); \
+CYG_LDR_TABLE_ENTRY(tmpnam_entry, "tmpnam", tmpnam); \
+CYG_LDR_TABLE_ENTRY(ungetc_entry, "ungetc", ungetc);
+
+#define CYG_LDR_TABLE_INFRA_DIAG() \
+CYG_LDR_TABLE_ENTRY(diag_init_entry, "diag_init", diag_init); \
+CYG_LDR_TABLE_ENTRY(diag_write_char_entry, \
+ "diag_write_char", diag_write_char); \
+CYG_LDR_TABLE_ENTRY(diag_write_string_entry, \
+ "diag_write_string", diag_write_string); \
+CYG_LDR_TABLE_ENTRY(diag_write_dec_entry, \
+ "diag_write_dec", diag_write_dec); \
+CYG_LDR_TABLE_ENTRY(diag_write_hex_entry, \
+ "diag_write_hex", diag_write_hex); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_entry, \
+ "diag_dump_buf", diag_dump_buf); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_32bit_entry, \
+ "diag_dump_buf_32bit", diag_dump_buf_32bit); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_16bit_entry, \
+ "diag_dump_buf_16bit", diag_dump_buf_16bit); \
+CYG_LDR_TABLE_ENTRY(diag_vdump_buf_with_offset_entry, \
+ "diag_vdump_buf_with_offset", \
+ diag_vdump_buf_with_offset); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_entry, \
+ "diag_dump_buf_with_offset", \
+ diag_dump_buf_with_offset); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_32bit_entry, \
+ "diag_dump_buf_with_offset_32bit", \
+ diag_dump_buf_with_offset_32bit); \
+CYG_LDR_TABLE_ENTRY(diag_dump_buf_with_offset_16bit_entry, \
+ "diag_dump_buf_with_offset_16bit", \
+ diag_dump_buf_with_offset_16bit); \
+CYG_LDR_TABLE_ENTRY(diag_printf_entry, "diag_printf", diag_printf); \
+CYG_LDR_TABLE_ENTRY(diag_init_putc_entry, "diag_init_putc", diag_init_putc); \
+CYG_LDR_TABLE_ENTRY(diag_sprintf_entry, "diag_sprintf", diag_sprintf); \
+CYG_LDR_TABLE_ENTRY(diag_snprintf_entry, "diag_snprintf", diag_snprintf); \
+CYG_LDR_TABLE_ENTRY(diag_vsprintf_entry, "diag_vsprintf", diag_vsprintf); \
+CYG_LDR_TABLE_ENTRY(diag_vprintf_entry, "diag_vprintf", diag_vprintf);
//==============================================================================
#endif