// ========================================================================= // 函数功能:菜单模块初始化函数,初始化相应资源,添加根节点 // 输入参数: 无 // 输出参数:无 // 返回值 : // 说明 :建立菜单项的内存池和根节点 // ========================================================================= 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; }
//----初始化标准输入模块------------------------------------------------------- //功能: 初始化标准输入模块,执行初始化后,可以创建输入设备。 //参数: 无 //返回: 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; }
// ============================================================================= // 功能:建立并初始化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; }
// ============================================================================= // 函数功能: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; }