예제 #1
0
파일: MenuitemApi.c 프로젝트: Mars-Wu/djyos
// =========================================================================
// 函数功能:菜单模块初始化函数,初始化相应资源,添加根节点
// 输入参数:    无
// 输出参数:无
// 返回值  :
// 说明    :建立菜单项的内存池和根节点
// =========================================================================
ptu32_t module_init_menu(ptu32_t para)
{
   static struct tagRscNode sMenuitemRoot;
   bool_t  result=false;

   //init the menuitem tree
   pg_menuitem_root= Rsc_AddTree(&sMenuitemRoot, sizeof(struct tagRscNode),RSC_RSCNODE,"MenuItem_root");
   if(NULL==pg_menuitem_root)
   {
      printf("create the pg_menuitem_root failed!\n");
      return result;
   }
   //init the menuitem pool
   pg_menuitem_pool = Mb_CreatePool((void*)sMenuitemRsc,
                                    cn_limit_menuitem,
                                    sizeof(struct menu_item),
                                    20,100,
                                    "MenuItem_pool");
   if(NULL==pg_menuitem_pool)
    {
       printf("create the pg_menuitem_pool failed!\n");
       return result;
    }
    result=true;
    return result;
}
예제 #2
0
파일: stddev.c 프로젝트: Mars-Wu/djyos
//----初始化标准输入模块-------------------------------------------------------
//功能: 初始化标准输入模块,执行初始化后,可以创建输入设备。
//参数: 无
//返回: true = 成功,false= 失败.
//-----------------------------------------------------------------------------
bool_t ModuleInstall_Stddev(ptu32_t para)
{
    static struct  tagStdinDeviceRsc root;

    tg_pStdinInputMsgQ = Stddev_CreatInputMsgQ(10,"StdInDev");
    if(tg_pStdinInputMsgQ == NULL)
        return false;
    g_ptStdinDevice = M_Malloc(gc_u32CfgStdinDeviceLimit
                                * sizeof(struct  tagStdinDeviceRsc),0);
    if(g_ptStdinDevice == NULL)
    {
        Stddev_DeleteInputMsgQ(tg_pStdinInputMsgQ);
        return false;
    }
    s_ptStdinDeviceRscTree = (struct  tagStdinDeviceRsc *)
                        Rsc_AddTree(&root.stdin_device_node,
                        sizeof(struct  tagStdinDeviceRsc),RSC_STDIN_OUT,"stdin input device");
    //初始化泛设备控制块内存池
    g_ptStdinDevicePool = Mb_CreatePool((void*)g_ptStdinDevice,
                                    gc_u32CfgStdinDeviceLimit,
                                    sizeof(struct  tagStdinDeviceRsc),
                                    2,10,
                                    "输入设备控制块内存池");
    Stddev_SetFocusDefault(tg_pStdinInputMsgQ);
    return true;
}
예제 #3
0
// =============================================================================
// 功能:建立并初始化DjyBus总线根节点,它是总线类型节点的父结点
// 参数:para,无实际意义
// 返回:true=成功, false=失败.
// =============================================================================
bool_t ModuleInstall_DjyBus (ptu32_t Para)
{
    //在资源链表中建立一个根结点,所有建立的总线结点都挂在该结点上。
    if(Rsc_AddTree(&tg_djybus_root,sizeof(struct  tagRscNode),RSC_RSCNODE,"DjyBus"))
    {
        printk("DjyBus Install Successed !\r\n");
        return true;
    }
    return false;
}
예제 #4
0
파일: tpl.c 프로젝트: Mars-Wu/djyos
// =============================================================================
// 函数功能:TPL_Init
//          传输层资源树根节点初始化
// 输入参数:暂时无意义
// 输出参数:
// 返回值  :true成功  false失败
// 说明    :注意,该初始化函数应该在所有的传输层协议初始化之前执行,否则添加的协议无效
// =============================================================================
bool_t TPL_Init(ptu32_t para)
{
	bool_t result;
	static struct tagRscNode   treenode;
	
	result =false;
	//创建资源树
	pgNetRscNodeTree = Rsc_AddTree(&treenode,sizeof(struct tagRscNode), RSC_RSCNODE,NULL);
	if (NULL != pgNetRscNodeTree)
	{
		//创建资源树互斥锁
		pgNetRscNodeSync = Lock_MutexCreate(NULL);
		if (NULL == pgNetRscNodeSync)
		{
			Rsc_DelNode(pgNetRscNodeTree);
			pgNetRscNodeTree = NULL;
		}
		else
		{
			result = true;
		}
	}
	return result;
}