当前位置: 技术问答>linux和unix
关于prepare_to_wait的参数
来源: 互联网 发布时间:2016-02-11
本文导语: 函数原型如下:void prepare_to_wait(wait_queue_head_t *queue, wait_queue_t *wait, int state) 其中queue是等待队列头,wait书上说是"进程入口",但是我并没有看到什么进程,wait的创建及初始化只用了一个宏: DEFINE_WAIT(wait),请问wait到底是...
函数原型如下:void prepare_to_wait(wait_queue_head_t *queue, wait_queue_t *wait, int state)
其中queue是等待队列头,wait书上说是"进程入口",但是我并没有看到什么进程,wait的创建及初始化只用了一个宏:
DEFINE_WAIT(wait),请问wait到底是什么,它的作用是什么?谢谢!!
其中queue是等待队列头,wait书上说是"进程入口",但是我并没有看到什么进程,wait的创建及初始化只用了一个宏:
DEFINE_WAIT(wait),请问wait到底是什么,它的作用是什么?谢谢!!
|
#define DEFINE_WAIT(name)
wait_queue_t name = {
.private = current,
.func = autoremove_wake_function,
.task_list = LIST_HEAD_INIT((name).task_list),
}
typedef struct __wait_queue wait_queue_t;
struct __wait_queue {
unsigned int flags;
#define WQ_FLAG_EXCLUSIVE 0x01
void *private;
wait_queue_func_t func;
struct list_head task_list;
};
===========================================================================
wait_queue_t name
即struct __wait_queue name
name 是你的宏的参数字符串,你自己取名的
来看它的对象
.private = current,//私有void指针表当前正在运行的进程宏
.func = autoremove_wake_function,//函数指针赋值
.task_list = LIST_HEAD_INIT((name).task_list),//就是让列表头指向自己
"请问wait到底是什么"
一个结构对象,一个等到队列头
wait_queue_t name = {
.private = current,
.func = autoremove_wake_function,
.task_list = LIST_HEAD_INIT((name).task_list),
}
typedef struct __wait_queue wait_queue_t;
struct __wait_queue {
unsigned int flags;
#define WQ_FLAG_EXCLUSIVE 0x01
void *private;
wait_queue_func_t func;
struct list_head task_list;
};
===========================================================================
wait_queue_t name
即struct __wait_queue name
name 是你的宏的参数字符串,你自己取名的
来看它的对象
.private = current,//私有void指针表当前正在运行的进程宏
.func = autoremove_wake_function,//函数指针赋值
.task_list = LIST_HEAD_INIT((name).task_list),//就是让列表头指向自己
"请问wait到底是什么"
一个结构对象,一个等到队列头
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。