Lines Matching refs:buffer
238 struct auxtrace_buffer *buffer) in auxtrace_queues__queue_buffer() argument
253 queue->tid = buffer->tid; in auxtrace_queues__queue_buffer()
254 queue->cpu = buffer->cpu; in auxtrace_queues__queue_buffer()
257 buffer->buffer_nr = queues->next_buffer_nr++; in auxtrace_queues__queue_buffer()
259 list_add_tail(&buffer->list, &queue->head); in auxtrace_queues__queue_buffer()
272 struct auxtrace_buffer *buffer) in auxtrace_queues__split_buffer() argument
274 u64 sz = buffer->size; in auxtrace_queues__split_buffer()
280 b = memdup(buffer, sizeof(struct auxtrace_buffer)); in auxtrace_queues__split_buffer()
290 buffer->data_offset += BUFFER_LIMIT_FOR_32_BIT; in auxtrace_queues__split_buffer()
295 buffer->size = sz; in auxtrace_queues__split_buffer()
296 buffer->consecutive = consecutive; in auxtrace_queues__split_buffer()
311 struct auxtrace_buffer *buffer, in auxtrace_queues__add_buffer() argument
316 if (filter_cpu(session, buffer->cpu)) in auxtrace_queues__add_buffer()
319 buffer = memdup(buffer, sizeof(*buffer)); in auxtrace_queues__add_buffer()
320 if (!buffer) in auxtrace_queues__add_buffer()
324 buffer->data = buffer->data_offset - session->one_mmap_offset + in auxtrace_queues__add_buffer()
327 buffer->data = auxtrace_copy_data(buffer->size, session); in auxtrace_queues__add_buffer()
328 if (!buffer->data) in auxtrace_queues__add_buffer()
330 buffer->data_needs_freeing = true; in auxtrace_queues__add_buffer()
332 buffer->size > BUFFER_LIMIT_FOR_32_BIT) { in auxtrace_queues__add_buffer()
333 err = auxtrace_queues__split_buffer(queues, idx, buffer); in auxtrace_queues__add_buffer()
338 err = auxtrace_queues__queue_buffer(queues, idx, buffer); in auxtrace_queues__add_buffer()
344 *buffer_ptr = buffer; in auxtrace_queues__add_buffer()
349 auxtrace_buffer__free(buffer); in auxtrace_queues__add_buffer()
358 struct auxtrace_buffer buffer = { in auxtrace_queues__add_event() local
369 return auxtrace_queues__add_buffer(queues, session, idx, &buffer, in auxtrace_queues__add_event()
406 struct auxtrace_buffer *buffer; in auxtrace_queues__free() local
408 buffer = list_entry(queues->queue_array[i].head.next, in auxtrace_queues__free()
410 list_del_init(&buffer->list); in auxtrace_queues__free()
411 auxtrace_buffer__free(buffer); in auxtrace_queues__free()
795 struct auxtrace_buffer *buffer) in auxtrace_buffer__next() argument
797 if (buffer) { in auxtrace_buffer__next()
798 if (list_is_last(&buffer->list, &queue->head)) in auxtrace_buffer__next()
800 return list_entry(buffer->list.next, struct auxtrace_buffer, in auxtrace_buffer__next()
810 void *auxtrace_buffer__get_data(struct auxtrace_buffer *buffer, int fd) in auxtrace_buffer__get_data() argument
812 size_t adj = buffer->data_offset & (page_size - 1); in auxtrace_buffer__get_data()
813 size_t size = buffer->size + adj; in auxtrace_buffer__get_data()
814 off_t file_offset = buffer->data_offset - adj; in auxtrace_buffer__get_data()
817 if (buffer->data) in auxtrace_buffer__get_data()
818 return buffer->data; in auxtrace_buffer__get_data()
824 buffer->mmap_addr = addr; in auxtrace_buffer__get_data()
825 buffer->mmap_size = size; in auxtrace_buffer__get_data()
827 buffer->data = addr + adj; in auxtrace_buffer__get_data()
829 return buffer->data; in auxtrace_buffer__get_data()
832 void auxtrace_buffer__put_data(struct auxtrace_buffer *buffer) in auxtrace_buffer__put_data() argument
834 if (!buffer->data || !buffer->mmap_addr) in auxtrace_buffer__put_data()
836 munmap(buffer->mmap_addr, buffer->mmap_size); in auxtrace_buffer__put_data()
837 buffer->mmap_addr = NULL; in auxtrace_buffer__put_data()
838 buffer->mmap_size = 0; in auxtrace_buffer__put_data()
839 buffer->data = NULL; in auxtrace_buffer__put_data()
840 buffer->use_data = NULL; in auxtrace_buffer__put_data()
843 void auxtrace_buffer__drop_data(struct auxtrace_buffer *buffer) in auxtrace_buffer__drop_data() argument
845 auxtrace_buffer__put_data(buffer); in auxtrace_buffer__drop_data()
846 if (buffer->data_needs_freeing) { in auxtrace_buffer__drop_data()
847 buffer->data_needs_freeing = false; in auxtrace_buffer__drop_data()
848 zfree(&buffer->data); in auxtrace_buffer__drop_data()
849 buffer->use_data = NULL; in auxtrace_buffer__drop_data()
850 buffer->size = 0; in auxtrace_buffer__drop_data()
854 void auxtrace_buffer__free(struct auxtrace_buffer *buffer) in auxtrace_buffer__free() argument
856 auxtrace_buffer__drop_data(buffer); in auxtrace_buffer__free()
857 free(buffer); in auxtrace_buffer__free()