[英]How to transmit data from an interrupt handler to an user application?
產生中斷的設備由內核中的處理程序管理。 我需要發送帶有標志的消息,以便用戶應用程序接收已發生中斷的通知,從而可以執行過程。 例如,喚醒進程。 我該怎么做呢?
恕我直言,POSIX風格的解決方案是編寫一個接收內核中斷的設備驅動程序。 用戶空間程序將打開一個設備文件和icoctl()或read(),阻塞直到至少一個事件到達。 我建議,用戶空間程序應該實際讀取更多:
這可以幫助您,查看您的程序何時發生錯誤事件(例如,因為它在上一個周期中已被刪除)。
我更喜歡使用Netlink作為內核和用戶空間之間的IPC。 只需確保使用GFP_ATOMIC(在netlink_broadcast中)分配消息,以確保您不在irq中睡覺。 看看這里為網絡鏈路教程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.