Lines Matching defs:buffer
286 struct auxtrace_buffer *buffer)
301 queue->tid = buffer->tid;
302 queue->cpu = buffer->cpu;
305 buffer->buffer_nr = queues->next_buffer_nr++;
307 list_add_tail(&buffer->list, &queue->head);
320 struct auxtrace_buffer *buffer)
322 u64 sz = buffer->size;
328 b = memdup(buffer, sizeof(struct auxtrace_buffer));
338 buffer->data_offset += BUFFER_LIMIT_FOR_32_BIT;
343 buffer->size = sz;
344 buffer->consecutive = consecutive;
359 struct auxtrace_buffer *buffer,
364 if (filter_cpu(session, buffer->cpu))
367 buffer = memdup(buffer, sizeof(*buffer));
368 if (!buffer)
372 buffer->data = buffer->data_offset - session->one_mmap_offset +
375 buffer->data = auxtrace_copy_data(buffer->size, session);
376 if (!buffer->data)
378 buffer->data_needs_freeing = true;
380 buffer->size > BUFFER_LIMIT_FOR_32_BIT) {
381 err = auxtrace_queues__split_buffer(queues, idx, buffer);
386 err = auxtrace_queues__queue_buffer(queues, idx, buffer);
390 /* FIXME: Doesn't work for split buffer */
392 *buffer_ptr = buffer;
397 auxtrace_buffer__free(buffer);
406 struct auxtrace_buffer buffer = {
417 return auxtrace_queues__add_buffer(queues, session, idx, &buffer,
454 struct auxtrace_buffer *buffer;
456 buffer = list_entry(queues->queue_array[i].head.next,
458 list_del_init(&buffer->list);
459 auxtrace_buffer__free(buffer);
989 struct auxtrace_buffer *buffer)
991 if (buffer) {
992 if (list_is_last(&buffer->list, &queue->head))
994 return list_entry(buffer->list.next, struct auxtrace_buffer,
1033 struct auxtrace_buffer buffer = {
1051 buffer.tid = sid->tid;
1052 buffer.cpu = sid->cpu;
1054 return auxtrace_queues__add_buffer(queues, session, idx, &buffer, NULL);
1111 void *auxtrace_buffer__get_data(struct auxtrace_buffer *buffer, int fd)
1113 size_t adj = buffer->data_offset & (page_size - 1);
1114 size_t size = buffer->size + adj;
1115 off_t file_offset = buffer->data_offset - adj;
1118 if (buffer->data)
1119 return buffer->data;
1125 buffer->mmap_addr = addr;
1126 buffer->mmap_size = size;
1128 buffer->data = addr + adj;
1130 return buffer->data;
1133 void auxtrace_buffer__put_data(struct auxtrace_buffer *buffer)
1135 if (!buffer->data || !buffer->mmap_addr)
1137 munmap(buffer->mmap_addr, buffer->mmap_size);
1138 buffer->mmap_addr = NULL;
1139 buffer->mmap_size = 0;
1140 buffer->data = NULL;
1141 buffer->use_data = NULL;
1144 void auxtrace_buffer__drop_data(struct auxtrace_buffer *buffer)
1146 auxtrace_buffer__put_data(buffer);
1147 if (buffer->data_needs_freeing) {
1148 buffer->data_needs_freeing = false;
1149 zfree(&buffer->data);
1150 buffer->use_data = NULL;
1151 buffer->size = 0;
1155 void auxtrace_buffer__free(struct auxtrace_buffer *buffer)
1157 auxtrace_buffer__drop_data(buffer);
1158 free(buffer);
1702 * When the buffer size is not a power of 2, 'head' wraps at the
1703 * highest multiple of the buffer size, so we have to subtract