init_waitqueue_head 定义在哪个文件
时间: 2023-08-16 20:09:45 浏览: 91
linux_own-wait-queue
`init_waitqueue_head` 函数定义在内核源码的 `include/linux/wait.h` 头文件中。
该函数用于初始化等待队列头 `wait_queue_head_t` 结构体,以便于在内核中使用等待队列实现进程之间的同步。在内核中,等待队列头通常与某个共享资源相关联,等待队列项 `wait_queue_t` 则表示等待这个资源的进程。
`init_waitqueue_head` 函数的定义如下:
```
static inline void init_waitqueue_head(wait_queue_head_t *q)
{
q->lock = __RAW_SPIN_LOCK_UNLOCKED(q->lock);
q->task_list.next = &q->task_list;
q->task_list.prev = &q->task_list;
}
```
该函数使用内联函数的方式定义,将等待队列头的三个成员变量初始化为默认值:
- `lock` 初始化为未加锁的自旋锁。
- `task_list` 的 `next` 和 `prev` 指针都指向等待队列头本身,表示该等待队列目前没有任何等待进程。
在使用等待队列头之前,通常需要先调用 `init_waitqueue_head` 函数进行初始化。
阅读全文