poll驅動程式示例

2021-06-05 17:48:36 字數 991 閱讀 2434

1、驅動**:

#include #include #include #include #include #include #include #include #include #define queue_count        256

int readqcount = 0;

int readqhead = 0;

int readqtail = 0;

char readq[queue_count][2]=;

declare_wait_queue_head(waitqueue_read);

static irqreturn_t ***_interrupt(int irq, void* dev_id,struct pt_regs* regs)

unsigned int ***_poll(struct file *filp, struct poll_table_struct *wait)

return mask;

}ssize_t ***_read(struct file *filp,char *buf,size_t count,loff_t *f_pos)

ret = wait_event_interruptible(waitqueue_read,readqcount);

if(ret != 0)

if(readqcount>0)

return 0;

}

2、應用層示例**:

#include#include#include#include#include#include#include#include#include#define ***_dev "/dev/***_dev"

int main()

else

if(events[0].revents & pollin)

}} return 0;

}

Linux驅動程式之poll機制

使用非阻塞i o的應用程式通常會使用select 和poll 系統呼叫查詢是否可對裝置進行無阻塞的訪問,這兩個系統呼叫最終又會引發裝置驅動中的poll 函式被執行 所以我們的問題就集中到了如何編寫裝置驅動中的poll 函式就可以了。先來看看裝置驅動中的poll 函式原型 這個函式要進行下面兩項工作 ...

字元裝置驅動程式之按鍵 poll機制

本節裡我們在按鍵中斷機制的基礎上新增了poll機制來優化程式 我們知道,應用程式中的open read write函式會呼叫核心裡的sys open sys read sys write函式,而核心裡的這些函式又會對應到驅動程式裡的.open read write函式。我們的poll機制也不例外,使...

linux驅動程式中的poll機制程式設計

include include include include include include include include include include include 載入模式後,執行 cat proc devices 命令看到的裝置名稱 define device name key pol...