2014-04-05 32 views
0

我正在寫一個簡單的塊dev驅動程序來克服將以前基於硬件的RAID陣列移植到Linux軟件RAID(mdadm)時的一些限制。從內核模式讀取/寫入另一個塊設備的最佳方式

此驅動程序將創建它自己的塊設備,但代理r/w請求到一個或多個其他塊設備(很像mdadm已經)。

一個內核模式驅動程序讀取和寫入另一個內核模式(塊設備)驅動程序的最佳方式是什麼?

[EDIT1]:

好,通過mdadm的內核模塊代碼期待 - 它看起來像我們需要做的內核是 - 使用generic_make_request到處理這些磁盤中的「量」的其他磁盤驅動器。這樣可以避免任何用戶模式文件系統塊設備(/ dev/xyz)進入內核模式設備驅動程序轉換,並將I/O完全保留在內核模式下。

!如何獲得傳遞給我的模塊數的/ dev/XYZ字符串生物手柄....

[EDIT2]:

看着這個走錯了路,需要給我的驅動程序主要/未成年人(在用戶模式下翻譯/ dev/xyz並通過ioctl將dev_t值傳遞給驅動程序,從那裏可以引用驅動程序。)

嗯,在我這裏的路上,但仍然對建議/建議

+0

filp_open,filp_close,vfs_read和vfs_write似乎做到了,但他們是最好的選擇?與功能相關的筆記似乎認爲不是。 – Litch

回答

相關問題