skb_buff中变量atomic_t users;
时间: 2023-06-13 17:06:51 浏览: 53
在 Linux 内核中,`skb_buff` 结构体表示网络协议数据包的缓冲区。其中,`atomic_t users` 变量用于计数当前正在使用该缓冲区的进程数。它是原子类型的,因此可以在多进程并发访问时保证计数的正确性。
当一个进程要使用该缓冲区时,需要先调用 `skb_get()` 函数对该缓冲区进行引用计数,表示该进程正在使用该缓冲区;当使用完成后,需要调用 `skb_put()` 函数来减少该缓冲区的引用计数,表示该进程已经不再使用该缓冲区了。`atomic_t users` 变量就是用来记录当前正在使用该缓冲区的进程数,以便在多进程并发访问时进行正确的引用计数。