Lines Matching refs:buffer
222 struct auxtrace_buffer *buffer) in auxtrace_queues__add_buffer() argument
237 queue->tid = buffer->tid; in auxtrace_queues__add_buffer()
238 queue->cpu = buffer->cpu; in auxtrace_queues__add_buffer()
239 } else if (buffer->cpu != queue->cpu || buffer->tid != queue->tid) { in auxtrace_queues__add_buffer()
241 queue->cpu, queue->tid, buffer->cpu, buffer->tid); in auxtrace_queues__add_buffer()
245 buffer->buffer_nr = queues->next_buffer_nr++; in auxtrace_queues__add_buffer()
247 list_add_tail(&buffer->list, &queue->head); in auxtrace_queues__add_buffer()
260 struct auxtrace_buffer *buffer) in auxtrace_queues__split_buffer() argument
262 u64 sz = buffer->size; in auxtrace_queues__split_buffer()
268 b = memdup(buffer, sizeof(struct auxtrace_buffer)); in auxtrace_queues__split_buffer()
278 buffer->data_offset += BUFFER_LIMIT_FOR_32_BIT; in auxtrace_queues__split_buffer()
283 buffer->size = sz; in auxtrace_queues__split_buffer()
284 buffer->consecutive = consecutive; in auxtrace_queues__split_buffer()
292 struct auxtrace_buffer *buffer) in auxtrace_queues__add_event_buffer() argument
295 buffer->data = buffer->data_offset - session->one_mmap_offset + in auxtrace_queues__add_event_buffer()
298 buffer->data = auxtrace_copy_data(buffer->size, session); in auxtrace_queues__add_event_buffer()
299 if (!buffer->data) in auxtrace_queues__add_event_buffer()
301 buffer->data_needs_freeing = true; in auxtrace_queues__add_event_buffer()
303 buffer->size > BUFFER_LIMIT_FOR_32_BIT) { in auxtrace_queues__add_event_buffer()
306 err = auxtrace_queues__split_buffer(queues, idx, buffer); in auxtrace_queues__add_event_buffer()
311 return auxtrace_queues__add_buffer(queues, idx, buffer); in auxtrace_queues__add_event_buffer()
319 struct auxtrace_buffer *buffer; in auxtrace_queues__add_event() local
323 buffer = zalloc(sizeof(struct auxtrace_buffer)); in auxtrace_queues__add_event()
324 if (!buffer) in auxtrace_queues__add_event()
327 buffer->pid = -1; in auxtrace_queues__add_event()
328 buffer->tid = event->auxtrace.tid; in auxtrace_queues__add_event()
329 buffer->cpu = event->auxtrace.cpu; in auxtrace_queues__add_event()
330 buffer->data_offset = data_offset; in auxtrace_queues__add_event()
331 buffer->offset = event->auxtrace.offset; in auxtrace_queues__add_event()
332 buffer->reference = event->auxtrace.reference; in auxtrace_queues__add_event()
333 buffer->size = event->auxtrace.size; in auxtrace_queues__add_event()
336 err = auxtrace_queues__add_event_buffer(queues, session, idx, buffer); in auxtrace_queues__add_event()
341 *buffer_ptr = buffer; in auxtrace_queues__add_event()
346 auxtrace_buffer__free(buffer); in auxtrace_queues__add_event()
383 struct auxtrace_buffer *buffer; in auxtrace_queues__free() local
385 buffer = list_entry(queues->queue_array[i].head.next, in auxtrace_queues__free()
387 list_del(&buffer->list); in auxtrace_queues__free()
388 auxtrace_buffer__free(buffer); in auxtrace_queues__free()
758 struct auxtrace_buffer *buffer) in auxtrace_buffer__next() argument
760 if (buffer) { in auxtrace_buffer__next()
761 if (list_is_last(&buffer->list, &queue->head)) in auxtrace_buffer__next()
763 return list_entry(buffer->list.next, struct auxtrace_buffer, in auxtrace_buffer__next()
773 void *auxtrace_buffer__get_data(struct auxtrace_buffer *buffer, int fd) in auxtrace_buffer__get_data() argument
775 size_t adj = buffer->data_offset & (page_size - 1); in auxtrace_buffer__get_data()
776 size_t size = buffer->size + adj; in auxtrace_buffer__get_data()
777 off_t file_offset = buffer->data_offset - adj; in auxtrace_buffer__get_data()
780 if (buffer->data) in auxtrace_buffer__get_data()
781 return buffer->data; in auxtrace_buffer__get_data()
787 buffer->mmap_addr = addr; in auxtrace_buffer__get_data()
788 buffer->mmap_size = size; in auxtrace_buffer__get_data()
790 buffer->data = addr + adj; in auxtrace_buffer__get_data()
792 return buffer->data; in auxtrace_buffer__get_data()
795 void auxtrace_buffer__put_data(struct auxtrace_buffer *buffer) in auxtrace_buffer__put_data() argument
797 if (!buffer->data || !buffer->mmap_addr) in auxtrace_buffer__put_data()
799 munmap(buffer->mmap_addr, buffer->mmap_size); in auxtrace_buffer__put_data()
800 buffer->mmap_addr = NULL; in auxtrace_buffer__put_data()
801 buffer->mmap_size = 0; in auxtrace_buffer__put_data()
802 buffer->data = NULL; in auxtrace_buffer__put_data()
803 buffer->use_data = NULL; in auxtrace_buffer__put_data()
806 void auxtrace_buffer__drop_data(struct auxtrace_buffer *buffer) in auxtrace_buffer__drop_data() argument
808 auxtrace_buffer__put_data(buffer); in auxtrace_buffer__drop_data()
809 if (buffer->data_needs_freeing) { in auxtrace_buffer__drop_data()
810 buffer->data_needs_freeing = false; in auxtrace_buffer__drop_data()
811 zfree(&buffer->data); in auxtrace_buffer__drop_data()
812 buffer->use_data = NULL; in auxtrace_buffer__drop_data()
813 buffer->size = 0; in auxtrace_buffer__drop_data()
817 void auxtrace_buffer__free(struct auxtrace_buffer *buffer) in auxtrace_buffer__free() argument
819 auxtrace_buffer__drop_data(buffer); in auxtrace_buffer__free()
820 free(buffer); in auxtrace_buffer__free()