Lines Matching +full:pulled +full:- +full:up
1 // SPDX-License-Identifier: LGPL-2.1
6 #include "trace-seq.h"
14 #include "event-parse.h"
15 #include "event-utils.h"
24 if (WARN_ONCE((s)->buffer == TRACE_SEQ_POISON, \
26 (s)->state = TRACE_SEQ__BUFFER_POISONED; \
32 if ((s)->state != TRACE_SEQ__GOOD) \
40 * trace_seq_init - initialize the trace_seq structure
45 s->len = 0; in trace_seq_init()
46 s->readpos = 0; in trace_seq_init()
47 s->buffer_size = TRACE_SEQ_BUF_SIZE; in trace_seq_init()
48 s->buffer = malloc(s->buffer_size); in trace_seq_init()
49 if (s->buffer != NULL) in trace_seq_init()
50 s->state = TRACE_SEQ__GOOD; in trace_seq_init()
52 s->state = TRACE_SEQ__MEM_ALLOC_FAILED; in trace_seq_init()
56 * trace_seq_reset - re-initialize the trace_seq structure
64 s->len = 0; in trace_seq_reset()
65 s->readpos = 0; in trace_seq_reset()
69 * trace_seq_destroy - free up memory of a trace_seq
79 free(s->buffer); in trace_seq_destroy()
80 s->buffer = TRACE_SEQ_POISON; in trace_seq_destroy()
87 buf = realloc(s->buffer, s->buffer_size + TRACE_SEQ_BUF_SIZE); in expand_buffer()
89 s->state = TRACE_SEQ__MEM_ALLOC_FAILED; in expand_buffer()
93 s->buffer = buf; in expand_buffer()
94 s->buffer_size += TRACE_SEQ_BUF_SIZE; in expand_buffer()
98 * trace_seq_printf - sequence printing of trace information
110 * the sequencer or pulled into another buffer.
122 len = (s->buffer_size - 1) - s->len; in trace_seq_printf()
125 ret = vsnprintf(s->buffer + s->len, len, fmt, ap); in trace_seq_printf()
134 s->len += ret; in trace_seq_printf()
140 * trace_seq_vprintf - sequence printing of trace information
152 * the sequencer or pulled into another buffer.
163 len = (s->buffer_size - 1) - s->len; in trace_seq_vprintf()
165 ret = vsnprintf(s->buffer + s->len, len, fmt, args); in trace_seq_vprintf()
173 s->len += ret; in trace_seq_vprintf()
179 * trace_seq_puts - trace sequence printing of simple string
196 while (len > ((s->buffer_size - 1) - s->len)) in trace_seq_puts()
201 memcpy(s->buffer + s->len, str, len); in trace_seq_puts()
202 s->len += len; in trace_seq_puts()
211 while (s->len >= (s->buffer_size - 1)) in trace_seq_putc()
216 s->buffer[s->len++] = c; in trace_seq_putc()
226 s->buffer[s->len] = 0; in trace_seq_terminate()
233 switch (s->state) { in trace_seq_do_fprintf()
235 return fprintf(fp, "%.*s", s->len, s->buffer); in trace_seq_do_fprintf()
243 return -1; in trace_seq_do_fprintf()