找回密码
 注册
搜索
查看: 468|回复: 1

征集MT6225.W0812F1模拟器API接口

[复制链接]
发表于 2008-12-26 09:28:18 | 显示全部楼层 |阅读模式
大家齐努力将下列接口一一实现吧:
================================
// 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;
 楼主| 发表于 2008-12-26 09:30:09 | 显示全部楼层
只要将上述API逐一实现, 就可以进行虚拟机的功能扩展.
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-29 11:50 , Processed in 0.056732 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表