userspace

    5熱度

    2回答

    我正在爲Linux編寫一個PCIe驅動程序,目前沒有DMA,並且需要知道如何從用戶空間啓用PCIe設備時讀取和寫入PCIe設備。 在我做的基礎知識探頭()司機: pci_enable_device(); pci_request_regions(); pci_iomap(); 但後來怎樣訪問從用戶空間這個內存讀寫?我是否將文件操作添加到我的PCIe驅動程序?從pci_iomap的內存是否顯示

    0熱度

    2回答

    我想實現一個新的系統調用作爲一個實驗,但我總是得到一個段錯誤。我認爲問題在於我試圖返回一個指向不在用戶空間中的char數組的指針。 我試圖通過使用GFP_USER作爲kmalloc的標誌來分配用戶空間中的內存,但問題依然如此。 這是我打電話給我的系統調用,我不能在此刻改變它(通常會要求退貨分配內存,並提供它作爲參數): #include <errno.h> #include <linux/uni

    3熱度

    1回答

    我正在開發Linux DMA驅動程序。用戶空間應用程序希望驅動程序執行異步操作(數據傳輸)並僅在操作完成時才獲得通知。如何異步通知用戶空間應用程序? 我知道在內核空間中,可以安裝中斷處理程序來處理完成中斷。我的問題是用戶空間,因爲我的數據必須在用戶空間中處理。我能想到的是在用戶空間中創建一個線程並等待驅動程序完成任務。有沒有更好的方法來處理這個問題?還是我在錯誤的方向思考? 更一般地說,如何在用戶

    1熱度

    1回答

    在嘗試查找C中創建的某個進程應用程序的所有根,並調用一個自定義系統調用時,我做出了使用task_struct *的信息返回所有進程的數組,我經歷了任務swapper/0通過父指針指向自己的任務(即swapper/0-> parent == swaper/0)。我的問題是:哪一個是用戶空間中運行的任何進程的真正的Grand GRAND父級?它是swapper/0還是它之前的任務(或swapper/0