freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

從cfgdemo項(xiàng)目來分析協(xié)議棧的啟動(dòng)-資料下載頁

2025-05-14 05:43本頁面
  

【正文】 pdst = (uint *)amp。_oscfg。 pdef = (uint *)amp。oscfgcopy。 } else{ return( 1 )。 } // Verify Item if( !Item ) return( 1 )。 Item 。 // If this is an add, add the entry if( Op == CFGOP_ADD ){ *(pdst+Item) = *pi。 // Else if remove, restore the default }else if( Op == CFGOP_REMOVE ){ *(pdst+Item) = *(pdef+Item)。 } // Return success return(1)。 }到這里大家可能覺察到一個(gè)問題:我們的CfgAddEntry函數(shù)在StackTest任務(wù)的開始就被調(diào)用,而我們的回調(diào)函數(shù)是在后來才安裝上去的,那么這些添加的配置項(xiàng)是不是沒有被更新到系統(tǒng)配置中去呢?沒錯(cuò),的確沒有!那我們?cè)趺崔k呢?由于一開始我們添加了多個(gè)配置項(xiàng),那么這些配置項(xiàng)更新到系統(tǒng)應(yīng)該有一個(gè)先后順序(可能它們之間有什么依賴關(guān)系吧),因此,首先要調(diào)用函數(shù)CfgSetExecuteOrder()來設(shè)置,需要注意的是這個(gè)函數(shù)不僅設(shè)定配置項(xiàng)更新到系統(tǒng)配置中的順序,同時(shí)也設(shè)定了這些配置項(xiàng)從系統(tǒng)配置中刪除的順序。做好這些準(zhǔn)備工作之后,調(diào)用CfgExecute()(其中fExecute參數(shù)值為1)來使配置項(xiàng)可以更新到系統(tǒng)配置中去,同也使能以后添加的配置項(xiàng)也能實(shí)時(shí)更新到系統(tǒng)配置中去。注意:這個(gè)函數(shù)必須調(diào)用,否則你用CfgAddEntry函數(shù)添加的配置項(xiàng)都不能更新到系統(tǒng)配置中去,即使你在安裝好回調(diào)函數(shù)后調(diào)用CfgAddEntry也不能。至此,TCP/IP協(xié)議棧系統(tǒng)已經(jīng)啟動(dòng),應(yīng)用程序可以調(diào)用協(xié)議棧的API函數(shù)來實(shí)現(xiàn)網(wǎng)絡(luò)通信等應(yīng)用。 接著調(diào)用函數(shù)NC_BootComplete(),該函數(shù)除了設(shè)置相應(yīng)的標(biāo)志外,主要是來執(zhí)行一個(gè)用戶程序。大家應(yīng)該還記得NC_NetStart函數(shù)的接口吧,它有三個(gè)函數(shù)指針作為參數(shù)傳入,其中第一個(gè)就在NC_BootComplete()中調(diào)用:*NetStart,該函數(shù)指針?biāo)赶虻暮瘮?shù)是由用戶來實(shí)現(xiàn),從而向用戶提供一個(gè)機(jī)會(huì),由用戶自己決定協(xié)議棧啟動(dòng)之后做什么工作。接著NS_BootTask中調(diào)用TaskExit()來結(jié)束該任務(wù)(任務(wù)的狀態(tài)由Running232。Terminated),那么接下來通過DSP/BIOS內(nèi)核的調(diào)度,使得StackTest任務(wù)繼續(xù)運(yùn)行。StackTest任務(wù)接著調(diào)用函數(shù)NetScheduler,它是協(xié)議棧的調(diào)度器,用來檢測(cè)并處理所有與網(wǎng)絡(luò)相關(guān)的事件。該函數(shù)是一個(gè)無限循環(huán),因此任務(wù)StackTest最終就成為了網(wǎng)絡(luò)事件調(diào)度任務(wù),也就是說它的角色發(fā)生了改變,因此其優(yōu)先級(jí)需要做適當(dāng)?shù)恼{(diào)整。有關(guān)網(wǎng)絡(luò)事件調(diào)度任務(wù)的具體細(xì)節(jié)后面再論。 至此,整個(gè)系統(tǒng)就跑起來了,但是我們的應(yīng)用程序怎樣添加到這個(gè)系統(tǒng)中去并使用這個(gè)協(xié)議棧呢?大家應(yīng)該還記得NC_BootComplete函數(shù)調(diào)用的NetStart函數(shù)指針指向的函數(shù)吧,它是由用戶實(shí)現(xiàn)的一個(gè)函數(shù),在協(xié)議棧啟動(dòng)之后調(diào)用。因此用戶的應(yīng)用程序(與網(wǎng)絡(luò)相關(guān)的應(yīng)用)可以在該函數(shù)中動(dòng)態(tài)創(chuàng)建(應(yīng)用程序作為任務(wù)的形式添加到系統(tǒng)中),CfgDemo項(xiàng)目就是這么做的。CfgDemo項(xiàng)目中NetStart函數(shù)指針指向的函數(shù)為NetworkOpen()代碼如下:由此可見該函數(shù)動(dòng)態(tài)創(chuàng)建了五個(gè)任務(wù),其優(yōu)先級(jí)相同,均為OS_TASKPRINORM(5),而且這五個(gè)任務(wù)的狀態(tài)都為處于Ready狀態(tài)。但是由于隨后網(wǎng)絡(luò)事件調(diào)度任務(wù)調(diào)整了自己的優(yōu)先級(jí),此四個(gè)任務(wù)都從Ready狀態(tài)轉(zhuǎn)為Blocked狀態(tài)。一旦網(wǎng)絡(luò)事件調(diào)度任務(wù)檢測(cè)到網(wǎng)絡(luò)事件就會(huì)通知相應(yīng)的任務(wù)使之進(jìn)入Running狀態(tài),處理網(wǎng)絡(luò)事務(wù)。9 / 9
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1