2009-06-21 94 views
5

我試圖通過單做框架的ioctl命令,但我不能找到我要找的。使用Linux的ioctl與單

我試圖將命令發送到具有內核模塊DVB卡。我希望有人能夠清楚地聯繫或解釋如何做到這一點。我猜,任何使用內核模塊的Mono都會很有用。

回答

3

單不包含在Mono.Unix IOCTL的包裝,因爲ioctl調用參數差別很大,這樣的包裝是幾乎毫無用處。您應該爲每個需要的ioctl聲明一個DllImport

你可能並不需要用C寫的一個輔助庫,但是,你可以在開發過程中需要它來提取隱藏的不同的C預處理器宏背後的實際值。例如,爲了擴大C頭:

#define FE_GET_INFO    _IOR('o', 61, struct dvb_frontend_info) 

編譯和執行這個輔助:

#include <linux/dvb/frontend.h> 
#include <stdio.h> 

int main() 
{ 
    printf("const int FE_GET_INFO = %d;\n", FE_GET_INFO); 
    return 0; 
} 

A short mono mailing list discussion on the topic

2

你應該寫一個包裝庫,供您精確的電話。看看Mono.Unix如何包裝syscalls(Mono.Unix Syscall.cs的谷歌代碼搜索)來獲得想法。然後爲每個特定的ioctl命令創建一個包裝,它使用您自己的數據表示。

抖動說 - 你需要的DllImport ioctl的本身。

1

檢查我的similar question,後來問題上subject。在這種情況下,我試圖包裝Videl4Linux接口,這可能會對您感興趣。

我真的建議那些閱讀。

相關問題