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

正文內(nèi)容

新一代工業(yè)計算機總線compactpci規(guī)范(編輯修改稿)

2025-05-12 08:06 本頁面
 

【文章內(nèi)容簡介】 PCI樹的標(biāo)識符來限定。本規(guī)范中這個限定值是一個無符號的16位整數(shù)。系統(tǒng)中的第一個PCI樹其值為0;對其它PCI樹,這個值為樹的PCI根總線的總線編號。該值之所以定義為16位,主要是為了適應(yīng)將來PCI的擴展,允許系統(tǒng)中PCI總線超過256條。3 技術(shù)實現(xiàn)的考慮 概述本章全面概述本規(guī)范使用的或假定的開發(fā)準(zhǔn)則和協(xié)議。同樣地,本章推薦一些具體建議,但又給開發(fā)商留有最終實施的靈活性。操作系統(tǒng)廣泛地使用一個稱之為開放式源工具“GNU”集合的開發(fā)工具系列。本章的一些實例參考了這些工具,但是所描述的協(xié)議用作獨立的工具系列。 在將來用作本規(guī)范一部分的一些其它操作系統(tǒng)的專用附錄中,應(yīng)該應(yīng)用本章所描述的協(xié)議。 語言問題 結(jié)構(gòu)調(diào)整作為一種優(yōu)化方法,一些編譯器并不保持被定義類型的最小規(guī)模,以便結(jié)構(gòu)可以更有效地從存儲器取數(shù)。編譯器以標(biāo)準(zhǔn)方式透明地處理這種最優(yōu)化,但是,當(dāng)此結(jié)構(gòu)被映射到硬件結(jié)構(gòu)時,它會引起許多問題,例如必須正確地表示具有固定大小字段的寄存器文件。在GNU工具系列里,可定義某結(jié)構(gòu)具有“打包”的特征(即這種結(jié)構(gòu)不能由編譯器優(yōu)化),定義一種特定結(jié)構(gòu)時,可利用這些“打包”特性。對編譯器而言,這個特征規(guī)定了用于代表一種特殊類型的最小要求的存儲器。這些硬件結(jié)構(gòu)中包含了PCI配置空間。下面的實例表明一種能被用來映射設(shè)備標(biāo)識字和廠家的標(biāo)識字的打包結(jié)構(gòu): typedef uint16 unsigned short。 struct_devVend { unit16 vendorId。 unit16 deviceId。 } _attribute_((packed))devVend。根據(jù)你的編譯環(huán)境,結(jié)構(gòu)打包也能夠通過編譯程序指示來控制。一些編譯環(huán)境中,例如操作系統(tǒng)或設(shè)備驅(qū)動程序環(huán)境,可能已經(jīng)有默認允許的結(jié)構(gòu)包。要獲取更多的編譯環(huán)境信息,請參考相關(guān)的文件。關(guān)于這下結(jié)構(gòu)打包的問題,附錄A提供了對每個操作系統(tǒng)系列都適用的專用指導(dǎo)或要求。 C/C++注釋許多現(xiàn)代C編譯器允許C和C++類型注釋交替使用。下面給出這兩種注釋類型的實例: C++類型注釋: // C++ single line ment // Multiple line // C++ mentC類型注釋: / * C single line ment * / / * * Multiple line * C ment * /例如在GNU C中,你可以使用C++類型注釋,以‘//’開頭并繼續(xù)下去,直到這行的末尾為止。許多其它的C工具也允許這樣的注釋,它們很可能就是以后的C標(biāo)準(zhǔn)。然而,如果你用GNU gcc或egcs編譯器規(guī)定了‘_ansi’或‘_traditional’的編譯器標(biāo)志,則C++類型注釋不能得到認可,因為它們與被除數(shù)//*注釋*//除數(shù)類的傳統(tǒng)結(jié)構(gòu)是不兼容的。本規(guī)范使用兩種注釋類型。 頭標(biāo)文件用混合的C/C++編譯環(huán)境編譯的頭標(biāo)文件應(yīng)該使用一種相似于定義函數(shù)原型說明的下列代碼結(jié)構(gòu): ifdef _cplusplus extern “C” { endif / * _cplusplus */ … ifdef _cplusplus } endif / * _cplusplus */為了防止特殊頭標(biāo)文件的多重包含,推薦使用如下的組合定義來定義整個頭標(biāo)文件: ifndef _INChsiApih define _ INChsiApih … endif / * INChsiApih * /本規(guī)范定義了應(yīng)用編程接口(API),但并不打算強制規(guī)定它們在頭標(biāo)文件里如何組織,因此本節(jié)的建議并不直接影響本規(guī)范。 布爾文字實際的兩個布爾文字“真(TRUE)”和“偽(FALSE)”在操作系統(tǒng)中得到了廣泛的應(yīng)用。本規(guī)范沒有要求其真實值是多少,但是要求它們確保布爾變量比較的正確狀態(tài)。滿足這些要求的通用工具如下: define FALSE 0 define TRUE ! FALSE 功能和變量命名下一節(jié)描述本規(guī)范中使用的功能和變量命名的協(xié)議。試圖成為本規(guī)范組成部分的操作系統(tǒng)其它專用附錄的開發(fā)商應(yīng)該遵守這些協(xié)議。 功能自變量描述宏指令本規(guī)范里的大多數(shù)功能自變量都有用描述宏指令打頭的自變量類型。描述宏指令規(guī)定了這個特殊參數(shù)相對于功能調(diào)用是輸入還是輸出。在這兩種情況下分別使用自變量描述IN和OUT。 這些宏指令被定義為空宏指令: define IN define OUT 同樣,它們不會影響被編譯器處理的源代碼,只是作為添加到功能陳述中的附加文檔。 用戶定義的類型和常數(shù)程序、變量、結(jié)構(gòu)和合并元素的名字都由大寫體字符和小寫體字符組成并且無下劃線。通過將大小寫字符改變成一個大寫字母開始一個新單詞的方法來界定單詞。例如: FuncTable被定義的類型(用typedef定義)、常數(shù)和宏指令(用 define定義)的名字都是在名字中以下劃線分隔單詞的大寫字體。例如: HSI_PLATFORM_FTABLE 指針數(shù)據(jù)類型對于特定指針實現(xiàn)的每一級別的間接尋址,指針變量名都有一個前綴字母‘p’。例如: HSI_PLATFORM_FTABLE * pFuncTable; HSI_PLATFORM_FTABLE ** ppFuncTable;這個協(xié)議允許指針變量更容易地被識別,而且有助于突出潛在的指針間接引用差錯。 本機數(shù)據(jù)類型本規(guī)范里,帶符號的和不帶符號的整數(shù)型數(shù)據(jù)的長度被追加為這種類型(例如int3uintuint1uint32),以規(guī)定變量要求的最小長度。注意這些只是本機數(shù)據(jù)類型的typedef抽象,但不用大寫字母開頭。 熱插拔結(jié)構(gòu)(HSI)類型定義 HSI_STATUS值所有的錯誤都通過類型HSI_STATUS的功能返回值傳遞到調(diào)用程序。這個類型表示數(shù)字結(jié)果代碼。對不同的硬件平臺,代碼可能是不同的;對不同的操作系統(tǒng),語義同樣的代碼可能有不同的值。本規(guī)范中提到了下列作為符號常數(shù)的結(jié)果代碼;它們必須由這些接口的任何實現(xiàn)工具定義。表2:HSI_STATUS直接量歸納HSI_STATUS直接量一般返回條件HSI_STATUS_SUCCESS規(guī)定操作成功完成HSI_STATUS_NO_MEMORY由于不可能分配存儲器,規(guī)定操作不可能完成HSI_STATUS_INVALID_PARAMETER由于一個或多個參數(shù)不合法,使規(guī)定操作不可能完成。例如:l 空指針。l PCI總線號大于255。l 插槽號超出了范圍。l 用于可選擇的HS_CSR接口的子系統(tǒng)標(biāo)志符掩碼不正確。HSI_STATUS_NOT_SUPPORTED不支持規(guī)定操作HSI_STATUS_NO_SUCH_DEVICE由于執(zhí)行被請求操作的設(shè)備不存在,使規(guī)定操作不可能完成。這些代碼覆蓋如下情況:要么設(shè)備根本不存在,要么用戶無權(quán)對特定對象執(zhí)行操作。HSI_STATUS_NO_DATA_DETECTED由于無意義的數(shù)據(jù)可能返回到調(diào)用程序作為操作結(jié)果,使規(guī)定操作不可能完成。例如:l 插槽帶電時不能確定卡板存在狀態(tài)。l 插槽不帶電時不能確定卡板健康狀態(tài)。HSI_STATUS_OPERATION_NOT_APPLICABLE由于操作時當(dāng)前設(shè)備環(huán)境或接口狀態(tài)無效,使規(guī)定操作不可能完成。HSI_STATUS_OBJECT_DOES_NOT_EXIST由于輸入?yún)?shù)中規(guī)定的一個對象不存在,使規(guī)定操作不可能完成。HSI_STATUS_INSUFFICIENT_BUFFER由于指定返回輸出數(shù)據(jù)的緩沖器容量不夠,使規(guī)定操作不可能完成;此時沒有數(shù)據(jù)寫入緩沖器。HSI_STATUS_REQUEST_DENIED出于安全的考慮,規(guī)定操作請求被拒絕。HSI_STATUS_NOT_AVAILABLE由于訪問時間里必要的功能不可用,使規(guī)定操作不可能完成。HSI_STATUS_FAILURE規(guī)定操作失敗HSI_STATUS_IMPLEMENTATION_DEFINED_MIN工具定義的狀態(tài)代碼范圍的下邊界(包括下邊界);工具定義的狀態(tài)代碼必須在狀態(tài)代碼的連續(xù)范圍內(nèi)。HSI_STATUS_IMPLEMENTATION_DEFINED_MAX工具定義的狀態(tài)代碼范圍的上邊界(包括上邊界);工具定義的狀態(tài)代碼必須在狀態(tài)代碼的連續(xù)范圍內(nèi)。在任何特定實現(xiàn)方法中,對實際值或這些結(jié)果代碼不作規(guī)定(除了表2中定義的由工具定義的HIS_STATUS值應(yīng)落入符號MIN值和MAX值之間這個要求外)。應(yīng)由客戶程序使用符號名來比較返回值和具體的結(jié)果代碼??梢浦驳目蛻舫绦蚴褂靡陨隙x的MIN和MAX符號可以識別工具定義的結(jié)果代碼。 數(shù)據(jù)結(jié)構(gòu)版本常數(shù)表3:HSI數(shù)據(jù)結(jié)構(gòu)版本常數(shù)版本常數(shù)說明HSI_FTABLE_VERSIONHSI功能表數(shù)據(jù)結(jié)構(gòu)版本HSI_SLOT_CONFIG_VERSION插槽配置數(shù)據(jù)結(jié)構(gòu)版本HSI_HSCSR_FTABLE_VERSION可選擇的HS_CSR功能表數(shù)據(jù)結(jié)構(gòu)版本關(guān)于工具里包含的這些常數(shù)之中的任一個當(dāng)前值,參見附錄B。4 熱插拔結(jié)構(gòu)要求本章定義對所有熱插拔結(jié)構(gòu)的要求。 這個結(jié)構(gòu):1. 必須滿足通用級或?qū)S眉壍臒岵灏我?guī)范的軟件要求。2. 必須支持完全熱插拔系統(tǒng)模型,還應(yīng)該支持PICMG 。3. 應(yīng)該支持高利用率系統(tǒng)模型。該結(jié)構(gòu)必須通過第7章(平臺接口)定義的如下功能提供一個支持ENUM輪詢檢測的平臺接口:l QueryEnumState()如果該結(jié)構(gòu)通過中斷或其它機制支持基于事件的ENUM檢測,那么它必須執(zhí)行第7章(平臺接口)定義的如下附加功能:l SetEnumEventCallback()l EnableEnumEvents()如果該結(jié)構(gòu)支持基于中斷的ENUM事件,那么平臺接口的客戶程序應(yīng)該既支持邊緣觸發(fā)變碼也應(yīng)該支持電平敏感變碼。如果基礎(chǔ)平臺允許,那么該結(jié)構(gòu)應(yīng)該通過第7章“平臺接口”定義的如下功能支持優(yōu)選的ENUM檢測:l QueryEnumOrigin()平臺接口的基本客戶程序是結(jié)構(gòu)的熱插拔系統(tǒng)設(shè)備??蛻舫绦虮仨毻ㄟ^平臺專用的平臺驅(qū)動程序作為一個邏輯獨立的驅(qū)動程序來執(zhí)行。該結(jié)構(gòu)必須為操作系統(tǒng)提供客戶程序,用來建立對平臺驅(qū)動程序進行初始連接的操作系統(tǒng)專用方法。這種操作系統(tǒng)專用的方法必須為客戶程序提供兩個值:功能表的指針和不透明的范圍指針。功能表包含由平臺驅(qū)動程序執(zhí)行的接口功能指針。如果允許一種功能不執(zhí)行,那么功能表中該功能的指針必須為空值??蛻舫绦虮仨氃趯嶋H訪問程序前檢驗功能指針是否為空值。不透明的范圍指針必須作為一個參數(shù)通過客戶程序傳送每一個接口功能。如果該結(jié)構(gòu)支持HA系統(tǒng)模型,那么它必須按照第9章(HA插槽控制接口)的定義支持HA插槽控制接口。因為平臺驅(qū)動程序的許多實現(xiàn)工具對所有平臺可以通用,所以驅(qū)動程序的體系結(jié)構(gòu)應(yīng)該分成功能通用的平臺獨立部件以及功能取決于某種具體實現(xiàn)手段的平臺相關(guān)部件。如果在系統(tǒng)中有一個設(shè)備可用另一種方法實現(xiàn)HS_CSR,那么該設(shè)備不可能確保裝入和寄存另一種合適的HS_CSR驅(qū)動程序。因此,當(dāng)ENUM信號被確認且只要系統(tǒng)中實際存在某種PCI設(shè)備而使該信號不可能被取消時,熱插拔系統(tǒng)驅(qū)動程序應(yīng)該使這種狀況復(fù)原。 該結(jié)構(gòu)應(yīng)該支持第10章“插槽物理接口”定義的接口。如果該結(jié)構(gòu)支持冗余主機操作,那么它應(yīng)該支持第11章“冗余接口主機應(yīng)用程序接口”定義的接口。該結(jié)構(gòu)必須遵守附錄A對于它所支持的每一個操作系統(tǒng)和為該操作系統(tǒng)提供有關(guān)要求的各個單元的要求。5 平臺專用要求 平臺接口要求平臺驅(qū)動程序必須依照表4規(guī)定直接執(zhí)行第7章“平臺接口”定義的相關(guān)的API。特定操作系統(tǒng)結(jié)構(gòu)的專用工具可以提供一個可共享的代碼庫,實現(xiàn)與平臺無關(guān)但與操作系統(tǒng)有關(guān)的典型平臺驅(qū)動程序的通用功能。如果提供了這樣一個代碼庫,就應(yīng)該使用它。表4:平臺接口實現(xiàn)要求APIAPI要求的平臺類別QueryEnumState各種平臺SetEnumEventCallback支持ENUM事件檢測的平臺EnableEnumEvents支持ENUM事件檢測的平臺QueryEnumOrigin建議用于ENUM位置信息可以得到的平臺 HA插槽控制接口要求如果結(jié)構(gòu)和平臺支持HA系統(tǒng)模型,那么它應(yīng)該支持第9章定義的HA插槽控制接口。此外,如果平臺熱插拔控制器能自動檢測和發(fā)送插槽狀態(tài)變化發(fā)生信號,那么必須支持HsiSetSlotEventCallBack( )這一功能。 插槽位置接口要求如果該結(jié)構(gòu)支持第10章定義的插槽位置接口,那么它必須正確實現(xiàn)該平臺的接口或返回合適的錯誤狀態(tài)值。 冗余主機接口要求如果該結(jié)構(gòu)支持第11章定義的冗余主機接口,且該平臺允許冗余主機操作,那么該接口應(yīng)該得到支持,如果支持的話,必須滿足本小節(jié)的要求,包括下面這些:l 必須實現(xiàn)第11章沒有定義HSI_STATUS_NOT_SUPPORTED返回值的所有功能。l 所有其它沒有實現(xiàn)的功能必須返回HSI_STATUS_NOT_SUPPORTED。l 。此外:○ 如果支持PARTIALLY_COOPERATIVE切換,那么也必須支持FULLY_COOPERATIVE切換?!?如果支持HOSTILE切換,那么也必須支持FORCED切換。 必須考慮表5中定義的功能組合:l 如果實現(xiàn)了每個功能組中的任何一個功能,那么必須實現(xiàn)該功能組中的所有功能。l 如果實現(xiàn)了一個功能組,表中相應(yīng)的附加要求都適用。l 表5中沒有明確包含
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1