相信自己,只有不想做的,没有做不到的。
分类: LINUX
2013-09-24 20:59:47
linux底层驱动的机制之原子操作
//原子操作
1,定义并初始化
atomic_t V = ATOMIC_INIT(1);
静态定义,带初始化
2操作
static int hello_open (struct inode *inode, struct file *file)
{
if(atomic_dec_and_test(&V))//先V --,判断V == 0 ;
{
return 0;
}
else
{
atomic_inc(&V); //判断V == 0 在 V++;
return -EBUSY;
}
}
static int hello_release (struct inode *inode, struct file *file)
{
atomic_inc(&V);//成功打开关闭,把减去的值加回去
printk("call hello release\n");
return 0;
}