日期:2014-05-16  浏览次数:20677 次

LINUX内核数据结构kfifo使用

#include <linux/kfifo.h>
#define ELEM 16
static struct kfifo *q;
static spinlock_t q_lock;

int num;
spin_lock_init(&q_lock);
q = kfifo_alloc(sizeof(int)*ELEM, GFP_KERNEL, &q_lock);
if (IS_ERR(q)) {
    goto err_all_q;
}
kfifo_put(q, (unsigned char*)&num, sizeof(num));
if(kfifo_get(q, (unsigned char*)&num, sizeof(num)) != sizeof(num)) {
    goto err_buf;
}
kfifo_free(q);
?