• Home
  • Raw
  • Download

Lines Matching refs:buffer

63 	} buffer[13];  member
120 struct packet_buffer buffer; member
128 packet_buffer_init(struct packet_buffer *buffer, size_t capacity) in packet_buffer_init() argument
130 buffer->data = kmalloc(capacity, GFP_KERNEL); in packet_buffer_init()
131 if (buffer->data == NULL) in packet_buffer_init()
133 buffer->head = (struct packet *) buffer->data; in packet_buffer_init()
134 buffer->tail = (struct packet *) buffer->data; in packet_buffer_init()
135 buffer->capacity = capacity; in packet_buffer_init()
136 buffer->lost_packet_count = 0; in packet_buffer_init()
137 atomic_set(&buffer->size, 0); in packet_buffer_init()
138 init_waitqueue_head(&buffer->wait); in packet_buffer_init()
144 packet_buffer_destroy(struct packet_buffer *buffer) in packet_buffer_destroy() argument
146 kfree(buffer->data); in packet_buffer_destroy()
152 struct packet_buffer *buffer = &client->buffer; in packet_buffer_get() local
156 if (wait_event_interruptible(buffer->wait, in packet_buffer_get()
157 atomic_read(&buffer->size) > 0) || in packet_buffer_get()
161 if (atomic_read(&buffer->size) == 0) in packet_buffer_get()
166 end = buffer->data + buffer->capacity; in packet_buffer_get()
167 length = buffer->head->length; in packet_buffer_get()
169 if (&buffer->head->data[length] < end) { in packet_buffer_get()
170 if (copy_to_user(data, buffer->head->data, length)) in packet_buffer_get()
172 buffer->head = (struct packet *) &buffer->head->data[length]; in packet_buffer_get()
174 size_t split = end - buffer->head->data; in packet_buffer_get()
176 if (copy_to_user(data, buffer->head->data, split)) in packet_buffer_get()
178 if (copy_to_user(data + split, buffer->data, length - split)) in packet_buffer_get()
180 buffer->head = (struct packet *) &buffer->data[length - split]; in packet_buffer_get()
188 atomic_sub(sizeof(struct packet) + length, &buffer->size); in packet_buffer_get()
194 packet_buffer_put(struct packet_buffer *buffer, void *data, size_t length) in packet_buffer_put() argument
198 buffer->total_packet_count++; in packet_buffer_put()
200 if (buffer->capacity < in packet_buffer_put()
201 atomic_read(&buffer->size) + sizeof(struct packet) + length) { in packet_buffer_put()
202 buffer->lost_packet_count++; in packet_buffer_put()
206 end = buffer->data + buffer->capacity; in packet_buffer_put()
207 buffer->tail->length = length; in packet_buffer_put()
209 if (&buffer->tail->data[length] < end) { in packet_buffer_put()
210 memcpy(buffer->tail->data, data, length); in packet_buffer_put()
211 buffer->tail = (struct packet *) &buffer->tail->data[length]; in packet_buffer_put()
213 size_t split = end - buffer->tail->data; in packet_buffer_put()
215 memcpy(buffer->tail->data, data, split); in packet_buffer_put()
216 memcpy(buffer->data, data + split, length - split); in packet_buffer_put()
217 buffer->tail = (struct packet *) &buffer->data[length - split]; in packet_buffer_put()
222 atomic_add(sizeof(struct packet) + length, &buffer->size); in packet_buffer_put()
223 wake_up_interruptible(&buffer->wait); in packet_buffer_put()
301 if (packet_buffer_init(&client->buffer, 128 * 1024) < 0) in nosy_open()
324 packet_buffer_destroy(&client->buffer); in nosy_release()
337 poll_wait(file, &client->buffer.wait, pt); in nosy_poll()
339 if (atomic_read(&client->buffer.size) > 0) in nosy_poll()
349 nosy_read(struct file *file, char __user *buffer, size_t count, loff_t *offset) in nosy_read() argument
353 return packet_buffer_get(client, buffer, count); in nosy_read()
366 stats.total_packet_count = client->buffer.total_packet_count; in nosy_ioctl()
367 stats.lost_packet_count = client->buffer.lost_packet_count; in nosy_ioctl()
439 packet_buffer_put(&client->buffer, in packet_irq_handler()
458 packet_buffer_put(&client->buffer, &timestamp, 4); in bus_reset_irq_handler()
519 wake_up_interruptible(&client->buffer.wait); in remove_card()
592 lynx->rcv_pcl->buffer[0].control = in add_card()
594 lynx->rcv_pcl->buffer[0].pointer = in add_card()
599 lynx->rcv_pcl->buffer[i].control = in add_card()
601 lynx->rcv_pcl->buffer[i].pointer = cpu_to_le32(p); in add_card()
603 lynx->rcv_pcl->buffer[i - 1].control |= cpu_to_le32(PCL_LAST_BUFF); in add_card()