INIT_WORK的暂时理解
来源:互联网 发布:网络通信的工作原理 编辑:程序博客网 时间:2024/05/17 01:01
/**
* _scsih_fw_event_add - insert and queue up fw_event
* @ioc: per adapter object
* @fw_event: object describing the event
* Context: This function will acquire ioc->fw_event_lock.
*
* This adds the firmware event object into link list, then queues it up to
* be processed from user context.
*
* Return nothing.
*/
static void
_scsih_fw_event_add(struct MPT2SAS_ADAPTER *ioc, struct fw_event_work *fw_event)
{
unsigned long flags;
if (ioc->firmware_event_thread == NULL)
return;
spin_lock_irqsave(&ioc->fw_event_lock, flags);
INIT_LIST_HEAD(&fw_event->list);
list_add_tail(&fw_event->list, &ioc->fw_event_list);
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
INIT_WORK(&fw_event->work, _firmware_event_work);
#else
INIT_WORK(&fw_event->work, _firmware_event_work, (void *)fw_event);
#endif
queue_work(ioc->firmware_event_thread, &fw_event->work);
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
}
这里写下对这个函数的理解
首先:
1。INIT_LIST_HEAD(&fw_event->list)
初始化firmware事件链表
2。list_add_tail()
把这个firmware事件添加到firmware时间链表尾巴上
3。INIT_WORK
给该firmware事件初始化工作函数
4。queue_work
把该firmware工作排在firmware事件线程队列中
- INIT_WORK的暂时理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- INIT_WORK(工作队列的理解)
- INIT_WORK等有关工作队列的理解
- INIT_WORK
- dll分类,自己暂时的理解
- get 、post区别(暂时的理解)
- INIT_WORK的宏定义的解释
- 关于bundle传输对象,以及 Serializable的理解(暂时的理解)
- C++---暂时的休憩
- 暂时保存的网页
- 变量只是暂时的
- 工作队列的初始化(INIT_WORK的参数问题)
- Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied
- WHY prepared Statement running slower in some situation
- 虚方法在类继承中的使用
- ORA-01017 invalid username/password;logon denied" (密码丢失解决方案)
- Boost 编译
- INIT_WORK的暂时理解
- native2ascii 简单使用
- MySQL5.1字符集设置
- DWR3.0解决hibernate延迟加载问题
- oracle系统时间查询,外键关系查询及删除,创建表、序列和触发器
- PC机串口、并口各个引脚功能定义(中文)
- 第二篇:结构与XHTML
- Java中的import
- 关于聚类算法的一些个人想法