Lines Matching refs:w
22 static int emit_buf_full(struct spdk_json_write_ctx *w, const void *data, size_t size);
25 fail(struct spdk_json_write_ctx *w) in fail() argument
27 w->failed = true; in fail()
32 flush_buf(struct spdk_json_write_ctx *w) in flush_buf() argument
36 rc = w->write_cb(w->cb_ctx, w->buf, w->buf_filled); in flush_buf()
38 return fail(w); in flush_buf()
41 w->buf_filled = 0; in flush_buf()
49 struct spdk_json_write_ctx *w; in spdk_json_write_begin() local
51 w = calloc(1, sizeof(*w)); in spdk_json_write_begin()
52 if (w == NULL) { in spdk_json_write_begin()
53 return w; in spdk_json_write_begin()
56 w->write_cb = write_cb; in spdk_json_write_begin()
57 w->cb_ctx = cb_ctx; in spdk_json_write_begin()
58 w->flags = flags; in spdk_json_write_begin()
59 w->indent = 0; in spdk_json_write_begin()
60 w->new_indent = false; in spdk_json_write_begin()
61 w->first_value = true; in spdk_json_write_begin()
62 w->failed = false; in spdk_json_write_begin()
63 w->buf_filled = 0; in spdk_json_write_begin()
65 return w; in spdk_json_write_begin()
69 spdk_json_write_end(struct spdk_json_write_ctx *w) in spdk_json_write_end() argument
74 if (w == NULL) { in spdk_json_write_end()
78 failed = w->failed; in spdk_json_write_end()
80 rc = flush_buf(w); in spdk_json_write_end()
85 free(w); in spdk_json_write_end()
91 emit(struct spdk_json_write_ctx *w, const void *data, size_t size) in emit() argument
93 size_t buf_remain = sizeof(w->buf) - w->buf_filled; in emit()
97 return emit_buf_full(w, data, size); in emit()
101 memcpy(w->buf + w->buf_filled, data, size); in emit()
102 w->buf_filled += size; in emit()
107 emit_buf_full(struct spdk_json_write_ctx *w, const void *data, size_t size) in emit_buf_full() argument
109 size_t buf_remain = sizeof(w->buf) - w->buf_filled; in emit_buf_full()
115 memcpy(w->buf + w->buf_filled, data, buf_remain); in emit_buf_full()
116 w->buf_filled += buf_remain; in emit_buf_full()
118 rc = flush_buf(w); in emit_buf_full()
120 return fail(w); in emit_buf_full()
124 return emit(w, data + buf_remain, size - buf_remain); in emit_buf_full()
128 emit_fmt(struct spdk_json_write_ctx *w, const void *data, size_t size) in emit_fmt() argument
130 if (w->flags & SPDK_JSON_WRITE_FLAG_FORMATTED) { in emit_fmt()
131 return emit(w, data, size); in emit_fmt()
137 emit_indent(struct spdk_json_write_ctx *w) in emit_indent() argument
141 if (w->flags & SPDK_JSON_WRITE_FLAG_FORMATTED) { in emit_indent()
142 for (i = 0; i < w->indent; i++) { in emit_indent()
143 if (emit(w, " ", 2)) { return fail(w); } in emit_indent()
150 begin_value(struct spdk_json_write_ctx *w) in begin_value() argument
153 if (w->new_indent) { in begin_value()
154 if (emit_fmt(w, "\n", 1)) { return fail(w); } in begin_value()
155 if (emit_indent(w)) { return fail(w); } in begin_value()
157 if (!w->first_value) { in begin_value()
158 if (emit(w, ",", 1)) { return fail(w); } in begin_value()
159 if (emit_fmt(w, "\n", 1)) { return fail(w); } in begin_value()
160 if (emit_indent(w)) { return fail(w); } in begin_value()
162 w->first_value = false; in begin_value()
163 w->new_indent = false; in begin_value()
168 spdk_json_write_val_raw(struct spdk_json_write_ctx *w, const void *data, size_t len) in spdk_json_write_val_raw() argument
170 if (begin_value(w)) { return fail(w); } in spdk_json_write_val_raw()
171 return emit(w, data, len); in spdk_json_write_val_raw()
175 spdk_json_write_null(struct spdk_json_write_ctx *w) in spdk_json_write_null() argument
177 if (begin_value(w)) { return fail(w); } in spdk_json_write_null()
178 return emit(w, "null", 4); in spdk_json_write_null()
182 spdk_json_write_bool(struct spdk_json_write_ctx *w, bool val) in spdk_json_write_bool() argument
184 if (begin_value(w)) { return fail(w); } in spdk_json_write_bool()
186 return emit(w, "true", 4); in spdk_json_write_bool()
188 return emit(w, "false", 5); in spdk_json_write_bool()
193 spdk_json_write_uint8(struct spdk_json_write_ctx *w, uint8_t val) in spdk_json_write_uint8() argument
198 if (begin_value(w)) { return fail(w); } in spdk_json_write_uint8()
200 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_uint8()
201 return emit(w, buf, count); in spdk_json_write_uint8()
205 spdk_json_write_uint16(struct spdk_json_write_ctx *w, uint16_t val) in spdk_json_write_uint16() argument
210 if (begin_value(w)) { return fail(w); } in spdk_json_write_uint16()
212 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_uint16()
213 return emit(w, buf, count); in spdk_json_write_uint16()
217 spdk_json_write_int32(struct spdk_json_write_ctx *w, int32_t val) in spdk_json_write_int32() argument
222 if (begin_value(w)) { return fail(w); } in spdk_json_write_int32()
224 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_int32()
225 return emit(w, buf, count); in spdk_json_write_int32()
229 spdk_json_write_uint32(struct spdk_json_write_ctx *w, uint32_t val) in spdk_json_write_uint32() argument
234 if (begin_value(w)) { return fail(w); } in spdk_json_write_uint32()
236 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_uint32()
237 return emit(w, buf, count); in spdk_json_write_uint32()
241 spdk_json_write_int64(struct spdk_json_write_ctx *w, int64_t val) in spdk_json_write_int64() argument
246 if (begin_value(w)) { return fail(w); } in spdk_json_write_int64()
248 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_int64()
249 return emit(w, buf, count); in spdk_json_write_int64()
253 spdk_json_write_uint64(struct spdk_json_write_ctx *w, uint64_t val) in spdk_json_write_uint64() argument
258 if (begin_value(w)) { return fail(w); } in spdk_json_write_uint64()
260 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_uint64()
261 return emit(w, buf, count); in spdk_json_write_uint64()
265 spdk_json_write_uint128(struct spdk_json_write_ctx *w, uint64_t low_val, uint64_t high_val) in spdk_json_write_uint128() argument
271 if (begin_value(w)) { return fail(w); } in spdk_json_write_uint128()
289 return fail(w); in spdk_json_write_uint128()
297 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_uint128()
300 return emit(w, buf, count); in spdk_json_write_uint128()
304 spdk_json_write_named_uint128(struct spdk_json_write_ctx *w, const char *name, in spdk_json_write_named_uint128() argument
307 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uint128()
309 return rc ? rc : spdk_json_write_uint128(w, low_val, high_val); in spdk_json_write_named_uint128()
313 spdk_json_write_double(struct spdk_json_write_ctx *w, double val) in spdk_json_write_double() argument
318 if (begin_value(w)) { return fail(w); } in spdk_json_write_double()
320 if (count <= 0 || (size_t)count >= sizeof(buf)) { return fail(w); } in spdk_json_write_double()
321 return emit(w, buf, count); in spdk_json_write_double()
342 write_codepoint(struct spdk_json_write_ctx *w, uint32_t codepoint) in write_codepoint() argument
388 return emit(w, out, out_len); in write_codepoint()
392 write_string_or_name(struct spdk_json_write_ctx *w, const char *val, size_t len) in write_string_or_name() argument
397 if (emit(w, "\"", 1)) { return fail(w); } in write_string_or_name()
418 return fail(w); in write_string_or_name()
421 if (write_codepoint(w, codepoint)) { return fail(w); } in write_string_or_name()
425 return emit(w, "\"", 1); in write_string_or_name()
429 write_string_or_name_utf16le(struct spdk_json_write_ctx *w, const uint16_t *val, size_t len) in write_string_or_name_utf16le() argument
434 if (emit(w, "\"", 1)) { return fail(w); } in write_string_or_name_utf16le()
449 return fail(w); in write_string_or_name_utf16le()
452 if (write_codepoint(w, codepoint)) { return fail(w); } in write_string_or_name_utf16le()
456 return emit(w, "\"", 1); in write_string_or_name_utf16le()
460 spdk_json_write_string_raw(struct spdk_json_write_ctx *w, const char *val, size_t len) in spdk_json_write_string_raw() argument
462 if (begin_value(w)) { return fail(w); } in spdk_json_write_string_raw()
463 return write_string_or_name(w, val, len); in spdk_json_write_string_raw()
467 spdk_json_write_string(struct spdk_json_write_ctx *w, const char *val) in spdk_json_write_string() argument
469 return spdk_json_write_string_raw(w, val, strlen(val)); in spdk_json_write_string()
473 spdk_json_write_string_utf16le_raw(struct spdk_json_write_ctx *w, const uint16_t *val, size_t len) in spdk_json_write_string_utf16le_raw() argument
475 if (begin_value(w)) { return fail(w); } in spdk_json_write_string_utf16le_raw()
476 return write_string_or_name_utf16le(w, val, len); in spdk_json_write_string_utf16le_raw()
480 spdk_json_write_string_utf16le(struct spdk_json_write_ctx *w, const uint16_t *val) in spdk_json_write_string_utf16le() argument
489 return spdk_json_write_string_utf16le_raw(w, val, len); in spdk_json_write_string_utf16le()
493 spdk_json_write_string_fmt(struct spdk_json_write_ctx *w, const char *fmt, ...) in spdk_json_write_string_fmt() argument
499 rc = spdk_json_write_string_fmt_v(w, fmt, args); in spdk_json_write_string_fmt()
506 spdk_json_write_string_fmt_v(struct spdk_json_write_ctx *w, const char *fmt, va_list args) in spdk_json_write_string_fmt_v() argument
516 rc = spdk_json_write_string(w, s); in spdk_json_write_string_fmt_v()
522 spdk_json_write_bytearray(struct spdk_json_write_ctx *w, const void *val, size_t len) in spdk_json_write_bytearray() argument
539 rc = spdk_json_write_string(w, s); in spdk_json_write_bytearray()
545 spdk_json_write_uuid(struct spdk_json_write_ctx *w, const struct spdk_uuid *uuid) in spdk_json_write_uuid() argument
551 return spdk_json_write_string(w, str); in spdk_json_write_uuid()
555 spdk_json_write_array_begin(struct spdk_json_write_ctx *w) in spdk_json_write_array_begin() argument
557 if (begin_value(w)) { return fail(w); } in spdk_json_write_array_begin()
558 w->first_value = true; in spdk_json_write_array_begin()
559 w->new_indent = true; in spdk_json_write_array_begin()
560 w->indent++; in spdk_json_write_array_begin()
561 if (emit(w, "[", 1)) { return fail(w); } in spdk_json_write_array_begin()
566 spdk_json_write_array_end(struct spdk_json_write_ctx *w) in spdk_json_write_array_end() argument
568 w->first_value = false; in spdk_json_write_array_end()
569 if (w->indent == 0) { return fail(w); } in spdk_json_write_array_end()
570 w->indent--; in spdk_json_write_array_end()
571 if (!w->new_indent) { in spdk_json_write_array_end()
572 if (emit_fmt(w, "\n", 1)) { return fail(w); } in spdk_json_write_array_end()
573 if (emit_indent(w)) { return fail(w); } in spdk_json_write_array_end()
575 w->new_indent = false; in spdk_json_write_array_end()
576 return emit(w, "]", 1); in spdk_json_write_array_end()
580 spdk_json_write_object_begin(struct spdk_json_write_ctx *w) in spdk_json_write_object_begin() argument
582 if (begin_value(w)) { return fail(w); } in spdk_json_write_object_begin()
583 w->first_value = true; in spdk_json_write_object_begin()
584 w->new_indent = true; in spdk_json_write_object_begin()
585 w->indent++; in spdk_json_write_object_begin()
586 if (emit(w, "{", 1)) { return fail(w); } in spdk_json_write_object_begin()
591 spdk_json_write_object_end(struct spdk_json_write_ctx *w) in spdk_json_write_object_end() argument
593 w->first_value = false; in spdk_json_write_object_end()
594 w->indent--; in spdk_json_write_object_end()
595 if (!w->new_indent) { in spdk_json_write_object_end()
596 if (emit_fmt(w, "\n", 1)) { return fail(w); } in spdk_json_write_object_end()
597 if (emit_indent(w)) { return fail(w); } in spdk_json_write_object_end()
599 w->new_indent = false; in spdk_json_write_object_end()
600 return emit(w, "}", 1); in spdk_json_write_object_end()
604 spdk_json_write_name_raw(struct spdk_json_write_ctx *w, const char *name, size_t len) in spdk_json_write_name_raw() argument
607 if (begin_value(w)) { return fail(w); } in spdk_json_write_name_raw()
608 if (write_string_or_name(w, name, len)) { return fail(w); } in spdk_json_write_name_raw()
609 w->first_value = true; in spdk_json_write_name_raw()
610 if (emit(w, ":", 1)) { return fail(w); } in spdk_json_write_name_raw()
611 return emit_fmt(w, " ", 1); in spdk_json_write_name_raw()
615 spdk_json_write_name(struct spdk_json_write_ctx *w, const char *name) in spdk_json_write_name() argument
617 return spdk_json_write_name_raw(w, name, strlen(name)); in spdk_json_write_name()
621 spdk_json_write_val(struct spdk_json_write_ctx *w, const struct spdk_json_val *val) in spdk_json_write_val() argument
627 return spdk_json_write_val_raw(w, val->start, val->len); in spdk_json_write_val()
630 return spdk_json_write_string_raw(w, val->start, val->len); in spdk_json_write_val()
633 return spdk_json_write_name_raw(w, val->start, val->len); in spdk_json_write_val()
636 return spdk_json_write_bool(w, true); in spdk_json_write_val()
639 return spdk_json_write_bool(w, false); in spdk_json_write_val()
642 return spdk_json_write_null(w); in spdk_json_write_val()
649 if (spdk_json_write_object_begin(w)) { in spdk_json_write_val()
650 return fail(w); in spdk_json_write_val()
653 if (spdk_json_write_array_begin(w)) { in spdk_json_write_val()
654 return fail(w); in spdk_json_write_val()
660 if (spdk_json_write_val(w, &val[i + 1])) { in spdk_json_write_val()
661 return fail(w); in spdk_json_write_val()
673 return spdk_json_write_array_end(w); in spdk_json_write_val()
676 return spdk_json_write_object_end(w); in spdk_json_write_val()
680 return fail(w); in spdk_json_write_val()
683 return fail(w); in spdk_json_write_val()
687 spdk_json_write_named_null(struct spdk_json_write_ctx *w, const char *name) in spdk_json_write_named_null() argument
689 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_null()
690 return rc ? rc : spdk_json_write_null(w); in spdk_json_write_named_null()
694 spdk_json_write_named_bool(struct spdk_json_write_ctx *w, const char *name, bool val) in spdk_json_write_named_bool() argument
696 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_bool()
698 return rc ? rc : spdk_json_write_bool(w, val); in spdk_json_write_named_bool()
702 spdk_json_write_named_uint8(struct spdk_json_write_ctx *w, const char *name, uint8_t val) in spdk_json_write_named_uint8() argument
704 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uint8()
706 return rc ? rc : spdk_json_write_uint8(w, val); in spdk_json_write_named_uint8()
710 spdk_json_write_named_uint16(struct spdk_json_write_ctx *w, const char *name, uint16_t val) in spdk_json_write_named_uint16() argument
712 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uint16()
714 return rc ? rc : spdk_json_write_uint16(w, val); in spdk_json_write_named_uint16()
718 spdk_json_write_named_int32(struct spdk_json_write_ctx *w, const char *name, int32_t val) in spdk_json_write_named_int32() argument
720 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_int32()
722 return rc ? rc : spdk_json_write_int32(w, val); in spdk_json_write_named_int32()
726 spdk_json_write_named_uint32(struct spdk_json_write_ctx *w, const char *name, uint32_t val) in spdk_json_write_named_uint32() argument
728 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uint32()
730 return rc ? rc : spdk_json_write_uint32(w, val); in spdk_json_write_named_uint32()
734 spdk_json_write_named_int64(struct spdk_json_write_ctx *w, const char *name, int64_t val) in spdk_json_write_named_int64() argument
736 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_int64()
738 return rc ? rc : spdk_json_write_int64(w, val); in spdk_json_write_named_int64()
742 spdk_json_write_named_uint64(struct spdk_json_write_ctx *w, const char *name, uint64_t val) in spdk_json_write_named_uint64() argument
744 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uint64()
746 return rc ? rc : spdk_json_write_uint64(w, val); in spdk_json_write_named_uint64()
750 spdk_json_write_named_double(struct spdk_json_write_ctx *w, const char *name, double val) in spdk_json_write_named_double() argument
752 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_double()
754 return rc ? rc : spdk_json_write_double(w, val); in spdk_json_write_named_double()
758 spdk_json_write_named_string(struct spdk_json_write_ctx *w, const char *name, const char *val) in spdk_json_write_named_string() argument
760 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_string()
762 return rc ? rc : spdk_json_write_string(w, val); in spdk_json_write_named_string()
766 spdk_json_write_named_string_fmt(struct spdk_json_write_ctx *w, const char *name, in spdk_json_write_named_string_fmt() argument
773 rc = spdk_json_write_named_string_fmt_v(w, name, fmt, args); in spdk_json_write_named_string_fmt()
780 spdk_json_write_named_string_fmt_v(struct spdk_json_write_ctx *w, const char *name, in spdk_json_write_named_string_fmt_v() argument
786 rc = spdk_json_write_name(w, name); in spdk_json_write_named_string_fmt_v()
797 rc = spdk_json_write_string(w, s); in spdk_json_write_named_string_fmt_v()
803 spdk_json_write_named_bytearray(struct spdk_json_write_ctx *w, const char *name, const void *val, in spdk_json_write_named_bytearray() argument
806 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_bytearray()
808 return rc ? rc : spdk_json_write_bytearray(w, val, len); in spdk_json_write_named_bytearray()
812 spdk_json_write_named_array_begin(struct spdk_json_write_ctx *w, const char *name) in spdk_json_write_named_array_begin() argument
814 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_array_begin()
816 return rc ? rc : spdk_json_write_array_begin(w); in spdk_json_write_named_array_begin()
820 spdk_json_write_named_object_begin(struct spdk_json_write_ctx *w, const char *name) in spdk_json_write_named_object_begin() argument
822 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_object_begin()
824 return rc ? rc : spdk_json_write_object_begin(w); in spdk_json_write_named_object_begin()
828 spdk_json_write_named_uuid(struct spdk_json_write_ctx *w, const char *name, in spdk_json_write_named_uuid() argument
831 int rc = spdk_json_write_name(w, name); in spdk_json_write_named_uuid()
833 return rc ? rc : spdk_json_write_uuid(w, uuid); in spdk_json_write_named_uuid()