Lines Matching refs:buf
34 static inline void lirc_buffer_clear(struct lirc_buffer *buf) in lirc_buffer_clear() argument
38 if (kfifo_initialized(&buf->fifo)) { in lirc_buffer_clear()
39 spin_lock_irqsave(&buf->fifo_lock, flags); in lirc_buffer_clear()
40 kfifo_reset(&buf->fifo); in lirc_buffer_clear()
41 spin_unlock_irqrestore(&buf->fifo_lock, flags); in lirc_buffer_clear()
47 static inline int lirc_buffer_init(struct lirc_buffer *buf, in lirc_buffer_init() argument
53 init_waitqueue_head(&buf->wait_poll); in lirc_buffer_init()
54 spin_lock_init(&buf->fifo_lock); in lirc_buffer_init()
55 buf->chunk_size = chunk_size; in lirc_buffer_init()
56 buf->size = size; in lirc_buffer_init()
57 ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL); in lirc_buffer_init()
62 static inline void lirc_buffer_free(struct lirc_buffer *buf) in lirc_buffer_free() argument
64 if (kfifo_initialized(&buf->fifo)) { in lirc_buffer_free()
65 kfifo_free(&buf->fifo); in lirc_buffer_free()
71 static inline int lirc_buffer_len(struct lirc_buffer *buf) in lirc_buffer_len() argument
76 spin_lock_irqsave(&buf->fifo_lock, flags); in lirc_buffer_len()
77 len = kfifo_len(&buf->fifo); in lirc_buffer_len()
78 spin_unlock_irqrestore(&buf->fifo_lock, flags); in lirc_buffer_len()
83 static inline int lirc_buffer_full(struct lirc_buffer *buf) in lirc_buffer_full() argument
85 return lirc_buffer_len(buf) == buf->size * buf->chunk_size; in lirc_buffer_full()
88 static inline int lirc_buffer_empty(struct lirc_buffer *buf) in lirc_buffer_empty() argument
90 return !lirc_buffer_len(buf); in lirc_buffer_empty()
93 static inline int lirc_buffer_available(struct lirc_buffer *buf) in lirc_buffer_available() argument
95 return buf->size - (lirc_buffer_len(buf) / buf->chunk_size); in lirc_buffer_available()
98 static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf, in lirc_buffer_read() argument
103 if (lirc_buffer_len(buf) >= buf->chunk_size) in lirc_buffer_read()
104 ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size, in lirc_buffer_read()
105 &buf->fifo_lock); in lirc_buffer_read()
110 static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf, in lirc_buffer_write() argument
115 ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size, in lirc_buffer_write()
116 &buf->fifo_lock); in lirc_buffer_write()
134 int (*add_to_buf) (void *data, struct lirc_buffer *buf);