Lines Matching refs:st

30 	rust_state_t *st = cua->cua_arg;  in rust_cualloc()  local
31 return (zalloc(st->rs_ops, len)); in rust_cualloc()
37 rust_state_t *st = cua->cua_arg; in rust_cufree() local
38 xfree(st->rs_ops, p, len); in rust_cufree()
47 rust_appendc(rust_state_t *st, char c) in rust_appendc() argument
49 custr_t *cus = st->rs_demangled; in rust_appendc()
51 if (HAS_ERROR(st)) in rust_appendc()
54 if (st->rs_skip) in rust_appendc()
59 return (rust_append(st, "\\a")); in rust_appendc()
61 return (rust_append(st, "\\b")); in rust_appendc()
63 return (rust_append(st, "\\f")); in rust_appendc()
65 return (rust_append(st, "\\n")); in rust_appendc()
67 return (rust_append(st, "\\r")); in rust_appendc()
69 return (rust_append(st, "\\t")); in rust_appendc()
71 return (rust_append(st, "\\v")); in rust_appendc()
73 return (rust_append(st, "\\\\")); in rust_appendc()
77 return (rust_append_printf(st, "\\x%02" PRIx8, (uint8_t)c)); in rust_appendc()
80 SET_ERROR(st); in rust_appendc()
93 rust_append_utf8_c(rust_state_t *st, uint32_t val) in rust_append_utf8_c() argument
95 custr_t *cus = st->rs_demangled; in rust_append_utf8_c()
99 if (HAS_ERROR(st)) in rust_append_utf8_c()
102 if (!st->rs_isutf8) { in rust_append_utf8_c()
104 return (rust_appendc(st, (char)val)); in rust_append_utf8_c()
106 return (rust_append_printf(st, "\\u%04" PRIx32, val)); in rust_append_utf8_c()
107 return (rust_append_printf(st, "\\U%08" PRIx32, val)); in rust_append_utf8_c()
111 return (rust_appendc(st, (char)val)); in rust_append_utf8_c()
135 SET_ERROR(st); in rust_append_utf8_c()
144 rust_append(rust_state_t *st, const char *s) in rust_append() argument
146 custr_t *cus = st->rs_demangled; in rust_append()
148 if (HAS_ERROR(st)) in rust_append()
151 if (st->rs_skip) in rust_append()
155 SET_ERROR(st); in rust_append()
163 rust_append_sv(rust_state_t *restrict st, uint64_t n, strview_t *restrict sv) in rust_append_sv() argument
165 if (HAS_ERROR(st)) in rust_append_sv()
168 if (st->rs_skip) { in rust_append_sv()
176 st->rs_error = ERANGE; in rust_append_sv()
182 st->rs_error = ERANGE; in rust_append_sv()
186 if (custr_append_printf(st->rs_demangled, "%.*s", in rust_append_sv()
188 SET_ERROR(st); in rust_append_sv()
197 rust_append_printf(rust_state_t *st, const char *fmt, ...) in rust_append_printf() argument
202 if (HAS_ERROR(st)) in rust_append_printf()
205 if (st->rs_skip) in rust_append_printf()
209 ret = custr_append_vprintf(st->rs_demangled, fmt, ap); in rust_append_printf()
214 SET_ERROR(st); in rust_append_printf()
219 rust_parse_base10(rust_state_t *restrict st, strview_t *restrict sv, in rust_parse_base10() argument
225 if (HAS_ERROR(st) || sv_remaining(sv) == 0) in rust_parse_base10()
245 if (st->rs_encver == RUSTENC_V0) { in rust_parse_base10()
253 st->rs_error = EINVAL; in rust_parse_base10()
271 st->rs_error = EOVERFLOW; in rust_parse_base10()
277 st->rs_error = EOVERFLOW; in rust_parse_base10()
287 rust_parse_prefix(rust_state_t *restrict st, strview_t *restrict sv) in rust_parse_prefix() argument
291 if (HAS_ERROR(st)) in rust_parse_prefix()
307 st->rs_encver = RUSTENC_LEGACY; in rust_parse_prefix()
325 if (rust_parse_base10(st, sv, &ver)) { in rust_parse_prefix()
328 st->rs_error = ENOTSUP; in rust_parse_prefix()
332 st->rs_encver = RUSTENC_V0; in rust_parse_prefix()
339 sv_init_sv(&st->rs_orig, sv); in rust_parse_prefix()
344 rust_fini_state(rust_state_t *st) in rust_fini_state() argument
346 custr_free(st->rs_demangled); in rust_fini_state()
347 custr_alloc_fini(&st->rs_cualloc); in rust_fini_state()
351 rust_init_state(rust_state_t *restrict st, const char *s, sysdem_ops_t *ops) in rust_init_state() argument
355 (void) memset(st, 0, sizeof (*st)); in rust_init_state()
357 st->rs_str = s; in rust_init_state()
358 st->rs_ops = ops; in rust_init_state()
360 st->rs_cualloc.cua_version = CUSTR_VERSION; in rust_init_state()
361 if (custr_alloc_init(&st->rs_cualloc, &rust_custr_ops) != 0) in rust_init_state()
363 st->rs_cualloc.cua_arg = st; in rust_init_state()
365 if (custr_xalloc(&st->rs_demangled, &st->rs_cualloc) != 0) { in rust_init_state()
366 custr_alloc_fini(&st->rs_cualloc); in rust_init_state()
372 st->rs_isutf8 = B_TRUE; in rust_init_state()
380 rust_state_t st; in rust_demangle() local
386 if (!rust_init_state(&st, s, ops)) in rust_demangle()
391 if (!rust_parse_prefix(&st, &sv)) { in rust_demangle()
392 if (st.rs_error == 0) in rust_demangle()
393 st.rs_error = EINVAL; in rust_demangle()
399 switch (st.rs_encver) { in rust_demangle()
401 success = rust_demangle_legacy(&st, &sv); in rust_demangle()
404 success = rust_demangle_v0(&st, &sv); in rust_demangle()
410 out = xstrdup(ops, custr_cstr(st.rs_demangled)); in rust_demangle()
412 SET_ERROR(&st); in rust_demangle()
415 custr_cstr(st.rs_demangled)); in rust_demangle()
417 st.rs_error = EINVAL; in rust_demangle()
420 e = st.rs_error; in rust_demangle()
421 rust_fini_state(&st); in rust_demangle()