• Home
  • Raw
  • Download

Lines Matching refs:buffer

50 	} buffer[13];  member
107 struct packet_buffer buffer; member
115 packet_buffer_init(struct packet_buffer *buffer, size_t capacity) in packet_buffer_init() argument
117 buffer->data = kmalloc(capacity, GFP_KERNEL); in packet_buffer_init()
118 if (buffer->data == NULL) in packet_buffer_init()
120 buffer->head = (struct packet *) buffer->data; in packet_buffer_init()
121 buffer->tail = (struct packet *) buffer->data; in packet_buffer_init()
122 buffer->capacity = capacity; in packet_buffer_init()
123 buffer->lost_packet_count = 0; in packet_buffer_init()
124 atomic_set(&buffer->size, 0); in packet_buffer_init()
125 init_waitqueue_head(&buffer->wait); in packet_buffer_init()
131 packet_buffer_destroy(struct packet_buffer *buffer) in packet_buffer_destroy() argument
133 kfree(buffer->data); in packet_buffer_destroy()
139 struct packet_buffer *buffer = &client->buffer; in packet_buffer_get() local
143 if (wait_event_interruptible(buffer->wait, in packet_buffer_get()
144 atomic_read(&buffer->size) > 0) || in packet_buffer_get()
148 if (atomic_read(&buffer->size) == 0) in packet_buffer_get()
151 length = buffer->head->length; in packet_buffer_get()
156 end = buffer->data + buffer->capacity; in packet_buffer_get()
158 if (&buffer->head->data[length] < end) { in packet_buffer_get()
159 if (copy_to_user(data, buffer->head->data, length)) in packet_buffer_get()
161 buffer->head = (struct packet *) &buffer->head->data[length]; in packet_buffer_get()
163 size_t split = end - buffer->head->data; in packet_buffer_get()
165 if (copy_to_user(data, buffer->head->data, split)) in packet_buffer_get()
167 if (copy_to_user(data + split, buffer->data, length - split)) in packet_buffer_get()
169 buffer->head = (struct packet *) &buffer->data[length - split]; in packet_buffer_get()
177 atomic_sub(sizeof(struct packet) + length, &buffer->size); in packet_buffer_get()
183 packet_buffer_put(struct packet_buffer *buffer, void *data, size_t length) in packet_buffer_put() argument
187 buffer->total_packet_count++; in packet_buffer_put()
189 if (buffer->capacity < in packet_buffer_put()
190 atomic_read(&buffer->size) + sizeof(struct packet) + length) { in packet_buffer_put()
191 buffer->lost_packet_count++; in packet_buffer_put()
195 end = buffer->data + buffer->capacity; in packet_buffer_put()
196 buffer->tail->length = length; in packet_buffer_put()
198 if (&buffer->tail->data[length] < end) { in packet_buffer_put()
199 memcpy(buffer->tail->data, data, length); in packet_buffer_put()
200 buffer->tail = (struct packet *) &buffer->tail->data[length]; in packet_buffer_put()
202 size_t split = end - buffer->tail->data; in packet_buffer_put()
204 memcpy(buffer->tail->data, data, split); in packet_buffer_put()
205 memcpy(buffer->data, data + split, length - split); in packet_buffer_put()
206 buffer->tail = (struct packet *) &buffer->data[length - split]; in packet_buffer_put()
211 atomic_add(sizeof(struct packet) + length, &buffer->size); in packet_buffer_put()
212 wake_up_interruptible(&buffer->wait); in packet_buffer_put()
290 if (packet_buffer_init(&client->buffer, 128 * 1024) < 0) in nosy_open()
313 packet_buffer_destroy(&client->buffer); in nosy_release()
326 poll_wait(file, &client->buffer.wait, pt); in nosy_poll()
328 if (atomic_read(&client->buffer.size) > 0) in nosy_poll()
338 nosy_read(struct file *file, char __user *buffer, size_t count, loff_t *offset) in nosy_read() argument
342 return packet_buffer_get(client, buffer, count); in nosy_read()
356 stats.total_packet_count = client->buffer.total_packet_count; in nosy_ioctl()
357 stats.lost_packet_count = client->buffer.lost_packet_count; in nosy_ioctl()
433 packet_buffer_put(&client->buffer, in packet_irq_handler()
452 packet_buffer_put(&client->buffer, &timestamp, 4); in bus_reset_irq_handler()
513 wake_up_interruptible(&client->buffer.wait); in remove_card()
590 lynx->rcv_pcl->buffer[0].control = in add_card()
592 lynx->rcv_pcl->buffer[0].pointer = in add_card()
597 lynx->rcv_pcl->buffer[i].control = in add_card()
599 lynx->rcv_pcl->buffer[i].pointer = cpu_to_le32(p); in add_card()
601 lynx->rcv_pcl->buffer[i - 1].control |= cpu_to_le32(PCL_LAST_BUFF); in add_card()