Lines Matching full:stream

3  * C++ stream style string builder used in KUnit for building messages.
14 #include "string-stream.h"
41 int string_stream_vadd(struct string_stream *stream, in string_stream_vadd() argument
61 if (stream->append_newlines) in string_stream_vadd()
67 frag_container = alloc_string_stream_fragment(buf_len, stream->gfp); in string_stream_vadd()
71 if (stream->append_newlines) { in string_stream_vadd()
82 spin_lock(&stream->lock); in string_stream_vadd()
83 stream->length += result_len; in string_stream_vadd()
84 list_add_tail(&frag_container->node, &stream->fragments); in string_stream_vadd()
85 spin_unlock(&stream->lock); in string_stream_vadd()
90 int string_stream_add(struct string_stream *stream, const char *fmt, ...) in string_stream_add() argument
96 result = string_stream_vadd(stream, fmt, args); in string_stream_add()
102 void string_stream_clear(struct string_stream *stream) in string_stream_clear() argument
106 spin_lock(&stream->lock); in string_stream_clear()
109 &stream->fragments, in string_stream_clear()
113 stream->length = 0; in string_stream_clear()
114 spin_unlock(&stream->lock); in string_stream_clear()
117 char *string_stream_get_string(struct string_stream *stream) in string_stream_get_string() argument
120 size_t buf_len = stream->length + 1; /* +1 for null byte. */ in string_stream_get_string()
123 buf = kzalloc(buf_len, stream->gfp); in string_stream_get_string()
127 spin_lock(&stream->lock); in string_stream_get_string()
128 list_for_each_entry(frag_container, &stream->fragments, node) in string_stream_get_string()
130 spin_unlock(&stream->lock); in string_stream_get_string()
135 int string_stream_append(struct string_stream *stream, in string_stream_append() argument
146 ret = string_stream_add(stream, other_content); in string_stream_append()
152 bool string_stream_is_empty(struct string_stream *stream) in string_stream_is_empty() argument
154 return list_empty(&stream->fragments); in string_stream_is_empty()
159 struct string_stream *stream; in alloc_string_stream() local
161 stream = kzalloc(sizeof(*stream), gfp); in alloc_string_stream()
162 if (!stream) in alloc_string_stream()
165 stream->gfp = gfp; in alloc_string_stream()
166 INIT_LIST_HEAD(&stream->fragments); in alloc_string_stream()
167 spin_lock_init(&stream->lock); in alloc_string_stream()
169 return stream; in alloc_string_stream()
172 void string_stream_destroy(struct string_stream *stream) in string_stream_destroy() argument
174 KUNIT_STATIC_STUB_REDIRECT(string_stream_destroy, stream); in string_stream_destroy()
176 if (IS_ERR_OR_NULL(stream)) in string_stream_destroy()
179 string_stream_clear(stream); in string_stream_destroy()
180 kfree(stream); in string_stream_destroy()
185 struct string_stream *stream = p; in resource_free_string_stream() local
187 string_stream_destroy(stream); in resource_free_string_stream()
192 struct string_stream *stream; in kunit_alloc_string_stream() local
194 stream = alloc_string_stream(gfp); in kunit_alloc_string_stream()
195 if (IS_ERR(stream)) in kunit_alloc_string_stream()
196 return stream; in kunit_alloc_string_stream()
198 if (kunit_add_action_or_reset(test, resource_free_string_stream, stream) != 0) in kunit_alloc_string_stream()
201 return stream; in kunit_alloc_string_stream()
204 void kunit_free_string_stream(struct kunit *test, struct string_stream *stream) in kunit_free_string_stream() argument
206 kunit_release_action(test, resource_free_string_stream, (void *)stream); in kunit_free_string_stream()