簡體   English   中英

在用戶空間中用C模擬內存映射設備

[英]Mocking a memory mapped device in C in userspace

我希望在C中模擬一個內存映射設備,以便對設備包裝庫進行有效的單元測試(在Linux中)。

現在,我知道我可以mmap文件描述符到用戶空間可能在原則上表示該裝置的模擬。

所以,AFAICT,我的問題歸結為:在用戶空間中是否有可能創建一個mmap可以作用的文件描述符,讀寫是由合適的回調處理的?

或者,也許這是一個已解決的問題,並且有一個已知的內核驅動程序可以掛鈎?

考慮到它是一個Linux系統,您可以實現一個非常簡單的FUSE文件系統,其中只有一個文件。 內核可以從那里處理它。

主要問題是你可以期望內核不會刷新每次寫入。 但是,有一個msync()調用來刷新所有未完成的寫入,但是你的系統測試不會調用它。 但是,我認為您可以使用O_DIRECT | O_DSYNC打開文件描述符 O_DIRECT | O_DSYNC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM