TTdreamloong 2011-05-25
#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);