|
大家齐努力将下列接口一一实现吧:
================================
// Oscar: Operatine System Apater Layer Interface
osc_type_s32 osc_platform_print_msg ( const char *format, ... )
{
va_list lst;
va_start(lst, format);
vprintf(format, lst);
va_end(lst);
}
osc_type_s32 OSC_Timer_Create (
osc_type_u8 *name,
osc_enum_state state_init,
osc_type_u32 time_default,
osc_type_u32 time_periodic,
osc_type_func_ptr expiry_func,
osc_type_void_ptr expiry_param,
osc_type_void_ptr *timer_return
)
{
}
osc_type_s32 OSC_Timer_Config (
osc_struct_timer *timer,
osc_type_u32 flag,
osc_type_void_ptr value,
osc_type_u32 state,
osc_type_u32 time_default,
osc_type_u32 time_periodic,
osc_type_func_ptr expiry_func,
osc_type_void_ptr expiry_param
)
{
}
// Event
osc_type_s32 OSC_Event_Create (
osc_type_u8 *name,
osc_type_void_ptr *event_return )
{
}
osc_type_s32 OSC_Event_Delete (
osc_struct_event *event )
{
}
osc_type_s32 OSC_Event_Write (
osc_struct_event *event,
osc_type_u32 event_flag,
osc_type_u32 action )
{
}
osc_type_s32 OSC_Event_Read (
osc_struct_event *event,
osc_enum_bool need_suspend,
osc_type_u32 event_flag,
osc_type_u32 action,
osc_type_u32 *event_flag_actual )
{
}
// Queue
osc_type_s32 OSC_Queue_Create (
osc_type_u8 *name,
osc_type_u32 *queue_addr,
osc_type_u32 queue_size,
osc_type_u32 msg_size,
osc_type_void_ptr *queue_return )
{
}
osc_type_s32 OSC_Queue_Delete (
osc_struct_queue *queue )
{
}
osc_type_s32 OSC_Queue_Write (
osc_struct_queue *queue,
osc_type_u32 msg_size,
osc_type_void_ptr msg_buff,
osc_type_u32 action )
{
}
osc_type_s32 OSC_Queue_Read (
osc_struct_queue *queue,
osc_enum_bool need_wait,
osc_type_void_ptr msg_buff,
osc_type_u32 *return_size )
{
}
osc_type_s32 OSC_Queue_Query (
osc_struct_queue *queue,
osc_type_u32 flag,
osc_type_void_ptr value,
osc_type_u8 *name,
osc_type_u32 *queue_size,
osc_type_u32 *queue_addr,
osc_type_u32 *msg_size,
osc_type_u32 *msg_num_total,
osc_struct_dd_hdr *msg_free_list,
osc_struct_dd_hdr *msg_used_list,
osc_struct_dd_hdr *waiting_list )
{
}
// Thread
osc_type_s32 OSC_Thread_Create (
osc_type_u8 *name,
osc_type_u32 *stack_addr,
osc_enum_state state_init,
osc_type_u32 priority,
osc_type_u32 time_slice,
osc_type_u32 stack_size,
osc_type_func_ptr entry_func,
osc_type_void_ptr entry_param,
osc_type_void_ptr *thread_return )
{
}
osc_type_s32 OSC_Thread_Delete (
osc_struct_thread *thread )
{
}
osc_type_s32 OSC_Thread_Suspend (
osc_struct_thread *thread,
osc_type_u32 timeout )
{
}
osc_type_s32 OSC_Thread_Current (
osc_type_void_ptr *thread )
{
}
osc_type_s32 OSC_Thread_Resume (
osc_struct_thread *thread )
{
}
osc_type_s32 OSC_Thread_Config (
osc_struct_thread *thread,
osc_type_u32 flag,
osc_type_void_ptr value,
osc_type_u32 priority,
osc_type_u32 time_slice,
osc_type_u32 time_left )
{
}
// Semaphore
osc_type_s32 OSC_Semaphore_Create (
osc_type_u8 *name,
osc_type_u32 count,
osc_type_void_ptr *sema_return )
{
}
osc_type_s32 OSC_Semaphore_Take (
osc_struct_sema *sema,
osc_type_u32 timeout)
{
}
osc_type_s32 OSC_Semaphore_Give (
osc_struct_sema *sema )
{
}
////NOTE
osc_struct_dd_hdr g_osc_buff_pool_list;
// Buffer
osc_type_s32 OSC_Buffer_Alloc (
osc_struct_buffer *pool,
osc_type_void_ptr *block_addr )
{
}
osc_type_s32 OSC_Buffer_Create (
osc_type_u8 *name,
osc_type_u32 *pool_addr,
osc_type_u32 pool_size,
osc_type_u32 block_size,
osc_type_void_ptr *return_pool )
{
}
osc_type_s32 OSC_Buffer_Free (
osc_type_void_ptr block_addr )
{
}
osc_type_s32 OSC_Buffer_Delete (
osc_struct_buffer *pool )
{
}
void OSC_Activate_ISR ( osc_enum_isr_src isr_idx )
{
}
void OSC_Register_ISR (
osc_enum_isr_src src_idx,
osc_type_func_ptr isr_func )
{
}
// Tick
osc_type_s32 OSC_Adjust_Tick_Time (
osc_type_s32 delta )
{
}
osc_type_s32 OSC_Adjust_Tick_Unit (
osc_type_u32 ms_unit )
{
}
osc_type_s32 OSC_Get_Current_Tick (osc_type_u32 *current_tick ) {}
osc_type_s32 OSC_Sys_if_lisr (void) {}
void OSC_Sys_Schedule_Enable ( osc_type_u32 bEnable) {}
osc_type_u32 g_osc_system_initialized = 0;
osc_type_u32 g_osc_tick_unit; |
|