函数问题1 init_EMUX
来源:互联网 发布:知乎日报离线下载api 编辑:程序博客网 时间:2024/05/22 03:04
1.init_MUTEX
今天编译linux的见打拿去动程序,发现init_TEMUX总是提示错误
网络搜做发现原来2.6.25及以后的linux内核版本废除了init_MUTEX函数,新版本使用sema_init函数取代
平台:X86 32位
内核:2.6.32
定义:
引用static inline void init_MUTEX (struct semaphore *sem)
{
sema_init(sem, 1);
}
说明:Init_MUTEX()函数初始化信号量为互斥量。 互斥量为信号量的特例,它可以防止数据被两个不同系统调用读写。
sema_init (sem, 1) 定义为:
引用static inline void sema_init (struct semaphore *sem, int val)
{
/*
* *sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
*
* i'd rather use the more flexible initialization above, but sadly
* GCC 2.7.2.3 emits a bogus warning. EGCS doesn't. Oh well.
*/
atomic_set(&sem->count, val);
sem->sleepers = 0;
init_waitqueue_head(&sem->wait);
}
sleepers : 指定了允许进入等待进入临界区的进程数,这里初始化为 0 。
init_waitqueue_head() : 初始化一个等待队列头。
废除init_MUTEX 后,将原来使用init_MUTEX(sem)的地方统统替换为sema_init(sem,1); 即可
参考来源:http://blog.csdn.net/ustcxjt/article/details/6916493
- 函数问题1 init_EMUX
- 函数问题
- 函数的函数问题
- 函数的函数问题
- C++虚函数分析[1]--同名函数继承二义性问题
- C语言函数的问题1
- socket函数一直返回-1的问题
- VS2008问题 recv函数问题
- 函数模板问题
- vb: format函数问题
- 虚函数问题
- 函数指针问题
- SetStretchBltMode函数的问题
- 关于 realloc函数问题
- 构造函数问题
- getMonth()函数的问题
- 函数调用问题
- C++虚函数问题
- STlL系列之一 deque双向队列
- (08)通用的数据访问 OleDbHelper
- js 常用正则
- js阻止冒泡
- STL系列之二stack栈
- 函数问题1 init_EMUX
- C++ Primer 第10章 习题10.26
- vector元素为自定义结构体类型时如何对容器元素进行排序?
- Linux下字符串的替换
- js 效果
- 做图像研究群体
- linux命令的一些补充
- 函数的调用约定
- 读书笔记18:命令模式