Lines Matching defs:stream
101 struct log_stream *stream = ralloc(NULL, struct log_stream);
102 stream->level = level;
103 stream->tag = tag;
104 stream->msg = ralloc_strdup(stream, "");
105 stream->pos = 0;
106 return stream;
110 mesa_log_stream_destroy(struct log_stream *stream)
112 /* If you left trailing stuff in the log stream, flush it out as a line. */
113 if (stream->pos != 0)
114 mesa_log(stream->level, stream->tag, "%s", stream->msg);
116 ralloc_free(stream);
120 mesa_log_stream_flush(struct log_stream *stream, size_t scan_offset)
123 char *next = stream->msg;
124 while ((end = strchr(stream->msg + scan_offset, '\n'))) {
126 mesa_log(stream->level, stream->tag, "%s", next);
128 scan_offset = next - stream->msg;
130 if (next != stream->msg) {
132 size_t remaining = stream->msg + stream->pos - next;
133 memmove(stream->msg, next, remaining);
134 stream->pos = remaining;
138 void mesa_log_stream_printf(struct log_stream *stream, const char *format, ...)
140 size_t old_pos = stream->pos;
144 ralloc_vasprintf_rewrite_tail(&stream->msg, &stream->pos, format, va);
147 mesa_log_stream_flush(stream, old_pos);