atomic_read函数原型
时间: 2023-11-05 21:04:37 浏览: 202
atomic_read函数的原型为:
```c
int atomic_read(const atomic_t *v);
```
其中,`atomic_t`是Linux内核中原子变量的定义类型,`v`是指向要读取的原子变量的指针。
该函数用于读取原子变量的值,并返回该值。由于原子变量是多线程并发访问的,因此需要使用原子操作来保证读取操作的原子性和线程安全性。
相关问题
tty_ldisc_ref_wait函数
在 Linux 内核中,tty_ldisc_ref_wait 函数用于等待 tty line discipline 的引用计数变为零。
以下是 tty_ldisc_ref_wait 函数的原型:
```c
void tty_ldisc_ref_wait(struct tty_ldisc *ld)
```
该函数的参数是一个 tty_ldisc 结构体,表示要等待的 tty line discipline。
函数的实现如下:
```c
void tty_ldisc_ref_wait(struct tty_ldisc *ld)
{
wait_event(ld->w_wait, !atomic_read(&ld->refcount));
}
```
该函数使用 wait_event 宏等待 tty line discipline 的引用计数变为零。wait_event 宏会阻塞当前进程,直到第一个参数中的条件为真。
在本例中,第一个参数是 ld->w_wait,表示等待队列头。第二个参数是 !atomic_read(&ld->refcount),表示等待 tty line discipline 的引用计数变为零。
当 tty line discipline 的引用计数变为零时,其他进程将会调用 tty_ldisc_put 函数来释放该 tty line discipline 的引用,从而唤醒等待在 ld->w_wait 上的进程。
阅读全文