poll_wait原型细节
时间: 2023-07-14 18:57:01 浏览: 107
`poll_wait`函数的原型如下:
```c
void poll_wait(struct file *filp, wait_queue_head_t *wait_address, poll_table *p);
```
该函数用于将一个等待队列头添加到`poll_table`中,以便在调用`poll()`系统调用时使用。
其中,`filp`是一个指向`file`结构体的指针,表示需要等待的文件对象;`wait_address`是一个指向等待队列头的指针,用于添加到`poll_table`中;`p`是一个指向`poll_table`结构体的指针,用于记录需要等待的事件类型。
在使用`poll_wait`函数时,需要先定义一个`poll_table`结构体,并使用`poll_wait`函数将等待队列头添加到`poll_table`中。然后,将`poll_table`结构体的指针作为参数传递给`poll()`系统调用,以便内核能够在文件对象上等待多个事件类型。
需要注意的是,`poll_wait`函数并不会阻塞当前进程,而是将当前进程添加到等待队列中,以便在需要等待的事件发生时唤醒该进程。
阅读全文