Linux中等待队列函数原型
时间: 2023-09-03 09:16:47 浏览: 152
Linux内核中等待队列的函数原型主要包括以下几个:
1. wait_queue_head_t 类型
等待队列头结构体,用于表示等待队列。定义如下:
```
typedef struct {
spinlock_t lock;
struct list_head task_list;
} wait_queue_head_t;
```
2. wait_queue_entry_t 类型
等待队列项结构体,用于表示等待队列中的一个等待项。定义如下:
```
typedef struct {
struct list_head entry;
struct task_struct *task;
unsigned int flags;
void *private;
} wait_queue_entry_t;
```
3. init_waitqueue_head() 函数
用于初始化等待队列头,定义如下:
```
void init_waitqueue_head(wait_queue_head_t *q);
```
4. prepare_to_wait() 函数
用于准备一个等待项,将其加入等待队列,并且将当前进程置为睡眠状态。定义如下:
```
void prepare_to_wait(wait_queue_head_t *q, wait_queue_entry_t *wait, int state);
```
5. finish_wait() 函数
用于结束一个等待项,将其从等待队列中移除,并且将当前进程从睡眠状态唤醒。定义如下:
```
void finish_wait(wait_queue_head_t *q, wait_queue_entry_t *wait);
```
6. wait_event() 函数
用于等待某个条件成立,如果条件不成立则将当前进程添加到等待队列中。定义如下:
```
unsigned long wait_event(wait_queue_head_t *q, unsigned long condition);
```
7. wait_event_interruptible() 函数
与 wait_event() 函数类似,但是可以被中断。定义如下:
```
unsigned long wait_event_interruptible(wait_queue_head_t *q, unsigned long condition);
```
8. wake_up() 函数
用于唤醒等待队列中的所有进程。定义如下:
```
void wake_up(wait_queue_head_t *q);
```
9. wake_up_interruptible() 函数
与 wake_up() 函数类似,但是只唤醒可中断的等待项。定义如下:
```
void wake_up_interruptible(wait_queue_head_t *q);
```
阅读全文