Lines Matching refs:param

180 static void format_number(struct print_param *param)  in format_number()  argument
190 width = param->vars.valuelen + param->vars.prefixlen; in format_number()
193 if (param->vars.precision > width) { in format_number()
194 p = param->vars.precision - width; in format_number()
198 if (param->vars.width > (width + p)) { in format_number()
199 w = param->vars.width - (width + p); in format_number()
203 if ((param->vars.flags & PRINT_FLAG_LEFT_JUSTIFY) == 0U) { in format_number()
213 if ((param->vars.flags & PRINT_FLAG_PAD_ZERO) != 0U) { in format_number()
218 param->emit(PRINT_CMD_COPY, param->vars.prefix, in format_number()
219 param->vars.prefixlen, param->data); in format_number()
222 param->vars.prefix = NULL; in format_number()
223 param->vars.prefixlen = 0U; in format_number()
229 param->emit(PRINT_CMD_FILL, &pad, w, param->data); in format_number()
233 param->emit(PRINT_CMD_COPY, param->vars.prefix, in format_number()
234 param->vars.prefixlen, param->data); in format_number()
239 param->emit(PRINT_CMD_FILL, "0", p, param->data); in format_number()
242 param->emit(PRINT_CMD_COPY, param->vars.value, in format_number()
243 param->vars.valuelen, param->data); in format_number()
246 if ((param->vars.flags & PRINT_FLAG_LEFT_JUSTIFY) != 0U) { in format_number()
248 param->emit(PRINT_CMD_FILL, " ", w, param->data); in format_number()
253 static void print_pow2(struct print_param *param, in print_pow2() argument
272 digits = ((param->vars.flags & PRINT_FLAG_UPPER) != 0U) ? &upper_hex_digits : &lower_hex_digits; in print_pow2()
275 v &= param->vars.mask; in print_pow2()
279 ((param->vars.flags & PRINT_FLAG_ALTERNATE_FORM) != 0U)) { in print_pow2()
281 param->vars.prefix = prefix; in print_pow2()
282 param->vars.prefixlen = 1U; in print_pow2()
285 param->vars.prefixlen = 2U; in print_pow2()
298 param->vars.value = pos; in print_pow2()
299 param->vars.valuelen = (digitbuff + sizeof(digitbuff)) - pos; in print_pow2()
301 format_number(param); in print_pow2()
303 param->vars.value = NULL; in print_pow2()
304 param->vars.valuelen = 0U; in print_pow2()
308 static void print_decimal(struct print_param *param, int64_t value) in print_decimal() argument
320 v.qword = ((uint64_t)value) & param->vars.mask; in print_decimal()
326 if (((param->vars.flags & PRINT_FLAG_UINT32) == 0U) && (value < 0)) { in print_decimal()
328 param->vars.prefix = "-"; in print_decimal()
329 param->vars.prefixlen = 1U; in print_decimal()
333 if (param->vars.prefix == NULL) { in print_decimal()
334 if ((param->vars.flags & PRINT_FLAG_SIGN) != 0U) { in print_decimal()
335 param->vars.prefix = "+"; in print_decimal()
336 param->vars.prefixlen = 1U; in print_decimal()
337 } else if ((param->vars.flags & PRINT_FLAG_SPACE) != 0U) { in print_decimal()
338 param->vars.prefix = " "; in print_decimal()
339 param->vars.prefixlen = 1U; in print_decimal()
366 param->vars.value = pos; in print_decimal()
367 param->vars.valuelen = (digitbuff + sizeof(digitbuff)) - pos; in print_decimal()
369 format_number(param); in print_decimal()
371 param->vars.value = NULL; in print_decimal()
372 param->vars.valuelen = 0U; in print_decimal()
376 static void print_string(const struct print_param *param, const char *s) in print_string() argument
388 if ((param->vars.precision != 0U) && (len > param->vars.precision)) { in print_string()
389 len = param->vars.precision; in print_string()
395 if ((param->vars.width > 0U) && (param->vars.width > len)) { in print_string()
396 w = param->vars.width - len; in print_string()
402 if ((param->vars.flags & PRINT_FLAG_LEFT_JUSTIFY) == 0U) { in print_string()
403 param->emit(PRINT_CMD_FILL, " ", w, param->data); in print_string()
406 param->emit(PRINT_CMD_COPY, s, len, param->data); in print_string()
411 if ((param->vars.flags & PRINT_FLAG_LEFT_JUSTIFY) != 0U) { in print_string()
412 param->emit(PRINT_CMD_FILL, " ", w, param->data); in print_string()
417 void do_print(const char *fmt_arg, struct print_param *param, in do_print() argument
440 param->emit(PRINT_CMD_COPY, start, fmt - start, in do_print()
441 param->data); in do_print()
450 (void)memset(&(param->vars), 0U, sizeof(param->vars)); in do_print()
451 param->vars.mask = 0xFFFFFFFFFFFFFFFFUL; in do_print()
460 fmt = get_flags(fmt, &(param->vars.flags)); in do_print()
461 fmt = get_param(fmt, &(param->vars.width)); in do_print()
465 fmt = get_param(fmt, &(param->vars.precision)); in do_print()
468 fmt = get_length_modifier(fmt, &(param->vars.flags), in do_print()
469 &(param->vars.mask)); in do_print()
475 param->emit(PRINT_CMD_COPY, &ch, 1U, in do_print()
476 param->data); in do_print()
479 if ((param->vars.flags & in do_print()
481 print_decimal(param, in do_print()
484 print_decimal(param, in do_print()
490 param->vars.flags |= PRINT_FLAG_UINT32; in do_print()
491 if ((param->vars.flags & in do_print()
493 print_decimal(param, in do_print()
497 print_decimal(param, in do_print()
505 param->vars.flags |= PRINT_FLAG_UPPER; in do_print()
507 if ((param->vars.flags & in do_print()
509 print_pow2(param, in do_print()
513 print_pow2(param, in do_print()
525 print_string(param, s); in do_print()
533 print_string(param, c); in do_print()
537 param->emit(PRINT_CMD_COPY, start, in do_print()
538 fmt - start, param->data); in do_print()
546 charmem(size_t cmd, const char *s_arg, uint32_t sz, struct snprint_param *param) in charmem() argument
550 char *p = param->dst + param->wrtn; in charmem()
558 if (n < (param->sz - param->wrtn)) { in charmem()
567 param->wrtn += n; in charmem()
571 n = (sz < (param->sz - param->wrtn)) ? sz : 0U; in charmem()
572 param->wrtn += sz; in charmem()
586 struct print_param param; in vsnprintf() local
595 (void)memset(&param, 0U, sizeof(param)); in vsnprintf()
596 param.emit = charmem; in vsnprintf()
597 param.data = &snparam; in vsnprintf()
600 do_print(fmt, &param, args); in vsnprintf()