跳到內容

Aros/開發者/文件/HIDD/PCI

來自 Wikibooks,開放書籍,開放世界
導航欄,適用於 Aros wikibook
Aros 使用者
Aros 使用者文件
Aros 使用者常見問題解答
Aros 使用者應用程式
Aros 使用者 DOS Shell
Aros/使用者/AmigaLegacy
Aros 開發文件
Aros 開發者文件
從 AmigaOS/SDL 移植軟體
適用於 Zune 初學者
Zune .MUI 類
適用於 SDL 初學者
Aros 開發者構建系統
特定平臺
Aros x86 完整系統 HCL
Aros x86 音訊/影片支援
Aros x86 網路支援
Aros Intel AMD x86 安裝
Aros 儲存支援 IDE SATA 等
Aros Poseidon USB 支援
x86-64 支援
Motorola 68k Amiga 支援
Linux 和 FreeBSD 支援
Windows Mingw 和 MacOSX 支援
Android 支援
Arm Raspberry Pi 支援
PPC Power Architecture
雜項
Aros 公共許可證

我們處理 PCI 的官方 API 是透過一組 HIDD 類。Prometheus.library 只是這些 HIDD 之上的一個包裝器。prometheus.library 不是一個更高級別的 API,它只提供 PCI 類可以提供的子集。PCI 類唯一缺少的是 AddIntServer() 和 RemIntServer() 方法。

您可以向 PCI 子系統詢問可用裝置,然後對每個裝置使用 PCIDevice 物件的方法。PCIDevice 物件本身可能在內部繫結到系統中任何當前活動的 PCIDriver。是的,系統中可以同時使用多個 PCIDriver。

因此它對於外部程式碼來說是一個不透明的驅動程式元件。

另一方面,PCI HIDD 只有一個對外部程式碼有用的方法:EnumDevices。它按用途劃分。程式碼應該使用 PCIDevice 物件。

向 PCI 子系統詢問可用裝置,然後對每個裝置使用 PCIDevice 物件的方法。PCIDevice 物件本身可能在內部繫結到系統中任何當前活動的 PCIDriver。是的,系統中可以同時使用多個 PCIDriver。

記憶體相關的操作是否必須透過 PCIDriver 物件完成,例如 AllocPCIMem 方法?將這些方法新增到 PCIDevice 類中沒有問題。由於 PCIDevice 物件確切地知道哪個驅動程式處理它,因此它可以輕鬆地將方法委託給相應的驅動程式。

閱讀 Aros-Exec 執行緒

對我來說,prometheus.library 對於 PCI HIDD 的意義就像 (cyber)graphics.library 對於圖形 HIDD 的意義一樣。例如,據我所知,我們不鼓勵應用程式直接呼叫圖形 HIDD。

PCI.hidd 代表一個子系統,就像 graphics.library 代表一個系統一樣。graphics.hidd 是 graphics.library 子系統中的一個驅動程式元件,就像 PCI-DRIVER.hidd 是 PCI.hidd 中的一個驅動程式元件一樣。但是,在訪問 PCI 子系統時必須使用 PCI-DRIVER HIDD,因此它對於外部程式碼來說不是一個不透明的驅動程式元件。另一方面,PCI HIDD 只有一個對外部程式碼有用的方法:EnumDevices。因此,在您的比較中沒有看到真正的對稱性。

在 AROS 的 PCI 子系統之前,研究過其他解決方案,但沒有一個令人滿意。特別是 openpci 使用複製貼上的 linux 標頭檔案。更不用說,在那些日子裡,openpci 幾乎沒有被使用。

  • AmigaOS 3.x 使用 prometheus、openpci 等
  • Amithlon 使用不同的庫來訪問 pci 裝置,與 openpci 非常相似,但仍然不同
  • MorphOS 使用 pcix.library 併為其提供 openpci 包裝器
  • AmigaOS 4.x 使用擴充套件庫的 PCI 介面
  • AROS 使用基於 oop 的 PCI 類

與列表中的其他平臺相比,AROS 不是唯一一個“不同”於其他平臺的平臺。實際上,*沒有*真正適用於所有 Amiga 平臺的用於訪問 PCI 裝置的跨平臺解決方案。許多 AmigaOS 驅動程式使用 prometheus,其中很少一部分使用 openpci。OS4 元件使用 expansion.library 的 PCI 介面,MOS 驅動程式使用 pcix.library(其中一些不是由 MOS 團隊提供的驅動程式可能會使用 openpci)。

參考文獻

[編輯 | 編輯原始碼]
華夏公益教科書