Lines Matching refs:buf
215 char *put_dec_trunc8(char *buf, unsigned r) in put_dec_trunc8() argument
225 *((u16 *)buf) = decpair[r - 100*q]; in put_dec_trunc8()
226 buf += 2; in put_dec_trunc8()
234 *((u16 *)buf) = decpair[q - 100*r]; in put_dec_trunc8()
235 buf += 2; in put_dec_trunc8()
243 *((u16 *)buf) = decpair[r - 100*q]; in put_dec_trunc8()
244 buf += 2; in put_dec_trunc8()
250 *((u16 *)buf) = decpair[r]; in put_dec_trunc8()
251 buf += r < 10 ? 1 : 2; in put_dec_trunc8()
252 return buf; in put_dec_trunc8()
257 char *put_dec_full8(char *buf, unsigned r) in put_dec_full8() argument
263 *((u16 *)buf) = decpair[r - 100*q]; in put_dec_full8()
264 buf += 2; in put_dec_full8()
268 *((u16 *)buf) = decpair[q - 100*r]; in put_dec_full8()
269 buf += 2; in put_dec_full8()
273 *((u16 *)buf) = decpair[r - 100*q]; in put_dec_full8()
274 buf += 2; in put_dec_full8()
277 *((u16 *)buf) = decpair[q]; in put_dec_full8()
278 buf += 2; in put_dec_full8()
279 return buf; in put_dec_full8()
283 char *put_dec(char *buf, unsigned long long n) in put_dec() argument
286 buf = put_dec_full8(buf, do_div(n, 100*1000*1000)); in put_dec()
289 buf = put_dec_full8(buf, do_div(n, 100*1000*1000)); in put_dec()
291 return put_dec_trunc8(buf, n); in put_dec()
297 put_dec_full4(char *buf, unsigned r) in put_dec_full4() argument
303 *((u16 *)buf) = decpair[r - 100*q]; in put_dec_full4()
304 buf += 2; in put_dec_full4()
306 *((u16 *)buf) = decpair[q]; in put_dec_full4()
317 unsigned put_dec_helper4(char *buf, unsigned x) in put_dec_helper4() argument
321 put_dec_full4(buf, x - q * 10000); in put_dec_helper4()
331 char *put_dec(char *buf, unsigned long long n) in put_dec() argument
336 return put_dec_trunc8(buf, n); in put_dec()
346 q = put_dec_helper4(buf, q); in put_dec()
349 q = put_dec_helper4(buf+4, q); in put_dec()
352 q = put_dec_helper4(buf+8, q); in put_dec()
355 buf += 12; in put_dec()
357 buf = put_dec_trunc8(buf, q); in put_dec()
358 else while (buf[-1] == '0') in put_dec()
359 --buf; in put_dec()
361 return buf; in put_dec()
372 int num_to_str(char *buf, int size, unsigned long long num, unsigned int width) in num_to_str() argument
392 buf[idx] = ' '; in num_to_str()
398 buf[idx + width] = tmp[len - idx - 1]; in num_to_str()
449 char *number(char *buf, char *end, unsigned long long num, in number() argument
513 if (buf < end) in number()
514 *buf = ' '; in number()
515 ++buf; in number()
520 if (buf < end) in number()
521 *buf = sign; in number()
522 ++buf; in number()
527 if (buf < end) in number()
528 *buf = '0'; in number()
529 ++buf; in number()
532 if (buf < end) in number()
533 *buf = ('X' | locase); in number()
534 ++buf; in number()
542 if (buf < end) in number()
543 *buf = c; in number()
544 ++buf; in number()
549 if (buf < end) in number()
550 *buf = '0'; in number()
551 ++buf; in number()
555 if (buf < end) in number()
556 *buf = tmp[i]; in number()
557 ++buf; in number()
561 if (buf < end) in number()
562 *buf = ' '; in number()
563 ++buf; in number()
566 return buf; in number()
570 char *special_hex_number(char *buf, char *end, unsigned long long num, int size) in special_hex_number() argument
580 return number(buf, end, num, spec); in special_hex_number()
583 static void move_right(char *buf, char *end, unsigned len, unsigned spaces) in move_right() argument
586 if (buf >= end) /* nowhere to put anything */ in move_right()
588 size = end - buf; in move_right()
590 memset(buf, ' ', size); in move_right()
596 memmove(buf + spaces, buf, len); in move_right()
598 memset(buf, ' ', spaces); in move_right()
610 char *widen_string(char *buf, int n, char *end, struct printf_spec spec) in widen_string() argument
615 return buf; in widen_string()
619 move_right(buf - n, end, n, spaces); in widen_string()
620 return buf + spaces; in widen_string()
623 if (buf < end) in widen_string()
624 *buf = ' '; in widen_string()
625 ++buf; in widen_string()
627 return buf; in widen_string()
631 static char *string_nocheck(char *buf, char *end, const char *s, in string_nocheck() argument
641 if (buf < end) in string_nocheck()
642 *buf = c; in string_nocheck()
643 ++buf; in string_nocheck()
646 return widen_string(buf, len, end, spec); in string_nocheck()
649 static char *err_ptr(char *buf, char *end, void *ptr, in err_ptr() argument
656 return string_nocheck(buf, end, sym, spec); in err_ptr()
665 return number(buf, end, err, spec); in err_ptr()
669 static char *error_string(char *buf, char *end, const char *s, in error_string() argument
680 return string_nocheck(buf, end, s, spec); in error_string()
699 static int check_pointer(char **buf, char *end, const void *ptr, in check_pointer() argument
706 *buf = error_string(*buf, end, err_msg, spec); in check_pointer()
714 char *string(char *buf, char *end, const char *s, in string() argument
717 if (check_pointer(&buf, end, s, spec)) in string()
718 return buf; in string()
720 return string_nocheck(buf, end, s, spec); in string()
723 static char *pointer_string(char *buf, char *end, in pointer_string() argument
734 return number(buf, end, (unsigned long int)ptr, spec); in pointer_string()
821 static char *ptr_to_id(char *buf, char *end, const void *ptr, in ptr_to_id() argument
833 return pointer_string(buf, end, ptr, spec); in ptr_to_id()
838 return pointer_string(buf, end, (const void *)hashval, spec); in ptr_to_id()
845 return error_string(buf, end, str, spec); in ptr_to_id()
848 return pointer_string(buf, end, (const void *)hashval, spec); in ptr_to_id()
854 char *restricted_pointer(char *buf, char *end, const void *ptr, in restricted_pointer() argument
860 return ptr_to_id(buf, end, ptr, spec); in restricted_pointer()
871 return error_string(buf, end, "pK-error", spec); in restricted_pointer()
897 return pointer_string(buf, end, ptr, spec); in restricted_pointer()
901 char *dentry_name(char *buf, char *end, const struct dentry *d, struct printf_spec spec, in dentry_name() argument
919 if (check_pointer(&buf, end, d, spec)) { in dentry_name()
921 return buf; in dentry_name()
934 for (n = 0; n != spec.precision; n++, buf++) { in dentry_name()
942 if (buf < end) in dentry_name()
943 *buf = c; in dentry_name()
946 return widen_string(buf, n, end, spec); in dentry_name()
950 char *file_dentry_name(char *buf, char *end, const struct file *f, in file_dentry_name() argument
953 if (check_pointer(&buf, end, f, spec)) in file_dentry_name()
954 return buf; in file_dentry_name()
956 return dentry_name(buf, end, f->f_path.dentry, spec, fmt); in file_dentry_name()
960 char *bdev_name(char *buf, char *end, struct block_device *bdev, in bdev_name() argument
965 if (check_pointer(&buf, end, bdev, spec)) in bdev_name()
966 return buf; in bdev_name()
969 buf = string(buf, end, hd->disk_name, spec); in bdev_name()
972 if (buf < end) in bdev_name()
973 *buf = 'p'; in bdev_name()
974 buf++; in bdev_name()
976 buf = number(buf, end, bdev->bd_partno, spec); in bdev_name()
978 return buf; in bdev_name()
983 char *symbol_string(char *buf, char *end, void *ptr, in symbol_string() argument
1007 return string_nocheck(buf, end, sym, spec); in symbol_string()
1009 return special_hex_number(buf, end, value, sizeof(void *)); in symbol_string()
1044 char *resource_string(char *buf, char *end, struct resource *res, in resource_string() argument
1091 if (check_pointer(&buf, end, res, spec)) in resource_string()
1092 return buf; in resource_string()
1141 return string_nocheck(buf, end, sym, spec); in resource_string()
1145 char *hex_string(char *buf, char *end, u8 *addr, struct printf_spec spec, in hex_string() argument
1154 return buf; in hex_string()
1156 if (check_pointer(&buf, end, addr, spec)) in hex_string()
1157 return buf; in hex_string()
1178 if (buf < end) in hex_string()
1179 *buf = hex_asc_hi(addr[i]); in hex_string()
1180 ++buf; in hex_string()
1181 if (buf < end) in hex_string()
1182 *buf = hex_asc_lo(addr[i]); in hex_string()
1183 ++buf; in hex_string()
1186 if (buf < end) in hex_string()
1187 *buf = separator; in hex_string()
1188 ++buf; in hex_string()
1192 return buf; in hex_string()
1196 char *bitmap_string(char *buf, char *end, unsigned long *bitmap, in bitmap_string() argument
1204 if (check_pointer(&buf, end, bitmap, spec)) in bitmap_string()
1205 return buf; in bitmap_string()
1225 if (buf < end) in bitmap_string()
1226 *buf = ','; in bitmap_string()
1227 buf++; in bitmap_string()
1232 buf = number(buf, end, val, spec); in bitmap_string()
1236 return buf; in bitmap_string()
1240 char *bitmap_list_string(char *buf, char *end, unsigned long *bitmap, in bitmap_list_string() argument
1248 if (check_pointer(&buf, end, bitmap, spec)) in bitmap_list_string()
1249 return buf; in bitmap_list_string()
1259 if (buf < end) in bitmap_list_string()
1260 *buf = ','; in bitmap_list_string()
1261 buf++; in bitmap_list_string()
1265 buf = number(buf, end, rbot, default_dec_spec); in bitmap_list_string()
1267 if (buf < end) in bitmap_list_string()
1268 *buf = '-'; in bitmap_list_string()
1269 buf++; in bitmap_list_string()
1271 buf = number(buf, end, rtop, default_dec_spec); in bitmap_list_string()
1276 return buf; in bitmap_list_string()
1280 char *mac_address_string(char *buf, char *end, u8 *addr, in mac_address_string() argument
1289 if (check_pointer(&buf, end, addr, spec)) in mac_address_string()
1290 return buf; in mac_address_string()
1317 return string_nocheck(buf, end, mac_addr, spec); in mac_address_string()
1470 char *ip6_addr_string(char *buf, char *end, const u8 *addr, in ip6_addr_string() argument
1480 return string_nocheck(buf, end, ip6_addr, spec); in ip6_addr_string()
1484 char *ip4_addr_string(char *buf, char *end, const u8 *addr, in ip4_addr_string() argument
1491 return string_nocheck(buf, end, ip4_addr, spec); in ip4_addr_string()
1495 char *ip6_addr_string_sa(char *buf, char *end, const struct sockaddr_in6 *sa, in ip6_addr_string_sa() argument
1553 return string_nocheck(buf, end, ip6_addr, spec); in ip6_addr_string_sa()
1557 char *ip4_addr_string_sa(char *buf, char *end, const struct sockaddr_in *sa, in ip4_addr_string_sa() argument
1588 return string_nocheck(buf, end, ip4_addr, spec); in ip4_addr_string_sa()
1592 char *ip_addr_string(char *buf, char *end, const void *ptr, in ip_addr_string() argument
1597 if (check_pointer(&buf, end, ptr, spec)) in ip_addr_string()
1598 return buf; in ip_addr_string()
1602 return ip6_addr_string(buf, end, ptr, spec, fmt); in ip_addr_string()
1604 return ip4_addr_string(buf, end, ptr, spec, fmt); in ip_addr_string()
1614 return ip4_addr_string_sa(buf, end, &sa->v4, spec, fmt); in ip_addr_string()
1616 return ip6_addr_string_sa(buf, end, &sa->v6, spec, fmt); in ip_addr_string()
1618 return error_string(buf, end, "(einval)", spec); in ip_addr_string()
1623 return error_string(buf, end, err_fmt_msg, spec); in ip_addr_string()
1627 char *escaped_string(char *buf, char *end, u8 *addr, struct printf_spec spec, in escaped_string() argument
1636 return buf; /* nothing to print */ in escaped_string()
1638 if (check_pointer(&buf, end, addr, spec)) in escaped_string()
1639 return buf; in escaped_string()
1680 buf += string_escape_mem(addr, len, buf, buf < end ? end - buf : 0, flags, NULL); in escaped_string()
1682 return buf; in escaped_string()
1685 static char *va_format(char *buf, char *end, struct va_format *va_fmt, in va_format() argument
1690 if (check_pointer(&buf, end, va_fmt, spec)) in va_format()
1691 return buf; in va_format()
1694 buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va); in va_format()
1697 return buf; in va_format()
1701 char *uuid_string(char *buf, char *end, const u8 *addr, in uuid_string() argument
1710 if (check_pointer(&buf, end, addr, spec)) in uuid_string()
1711 return buf; in uuid_string()
1742 return string_nocheck(buf, end, uuid, spec); in uuid_string()
1746 char *netdev_bits(char *buf, char *end, const void *addr, in netdev_bits() argument
1752 if (check_pointer(&buf, end, addr, spec)) in netdev_bits()
1753 return buf; in netdev_bits()
1761 return error_string(buf, end, "(%pN?)", spec); in netdev_bits()
1764 return special_hex_number(buf, end, num, size); in netdev_bits()
1768 char *fourcc_string(char *buf, char *end, const u32 *fourcc, in fourcc_string() argument
1777 return error_string(buf, end, "(%p4?)", spec); in fourcc_string()
1779 if (check_pointer(&buf, end, fourcc, spec)) in fourcc_string()
1780 return buf; in fourcc_string()
1800 return string(buf, end, output, spec); in fourcc_string()
1804 char *address_val(char *buf, char *end, const void *addr, in address_val() argument
1810 if (check_pointer(&buf, end, addr, spec)) in address_val()
1811 return buf; in address_val()
1825 return special_hex_number(buf, end, num, size); in address_val()
1829 char *date_str(char *buf, char *end, const struct rtc_time *tm, bool r) in date_str() argument
1834 buf = number(buf, end, year, default_dec04_spec); in date_str()
1835 if (buf < end) in date_str()
1836 *buf = '-'; in date_str()
1837 buf++; in date_str()
1839 buf = number(buf, end, mon, default_dec02_spec); in date_str()
1840 if (buf < end) in date_str()
1841 *buf = '-'; in date_str()
1842 buf++; in date_str()
1844 return number(buf, end, tm->tm_mday, default_dec02_spec); in date_str()
1848 char *time_str(char *buf, char *end, const struct rtc_time *tm, bool r) in time_str() argument
1850 buf = number(buf, end, tm->tm_hour, default_dec02_spec); in time_str()
1851 if (buf < end) in time_str()
1852 *buf = ':'; in time_str()
1853 buf++; in time_str()
1855 buf = number(buf, end, tm->tm_min, default_dec02_spec); in time_str()
1856 if (buf < end) in time_str()
1857 *buf = ':'; in time_str()
1858 buf++; in time_str()
1860 return number(buf, end, tm->tm_sec, default_dec02_spec); in time_str()
1864 char *rtc_str(char *buf, char *end, const struct rtc_time *tm, in rtc_str() argument
1872 if (check_pointer(&buf, end, tm, spec)) in rtc_str()
1873 return buf; in rtc_str()
1901 buf = date_str(buf, end, tm, raw); in rtc_str()
1903 if (buf < end) in rtc_str()
1904 *buf = iso8601_separator ? 'T' : ' '; in rtc_str()
1905 buf++; in rtc_str()
1908 buf = time_str(buf, end, tm, raw); in rtc_str()
1910 return buf; in rtc_str()
1914 char *time64_str(char *buf, char *end, const time64_t time, in time64_str() argument
1933 return rtc_str(buf, end, &rtc_time, spec, fmt); in time64_str()
1937 char *time_and_date(char *buf, char *end, void *ptr, struct printf_spec spec, in time_and_date() argument
1942 return rtc_str(buf, end, (const struct rtc_time *)ptr, spec, fmt); in time_and_date()
1944 return time64_str(buf, end, *(const time64_t *)ptr, spec, fmt); in time_and_date()
1946 return error_string(buf, end, "(%pt?)", spec); in time_and_date()
1951 char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec, in clock() argument
1955 return error_string(buf, end, "(%pC?)", spec); in clock()
1957 if (check_pointer(&buf, end, clk, spec)) in clock()
1958 return buf; in clock()
1964 return string(buf, end, __clk_get_name(clk), spec); in clock()
1966 return ptr_to_id(buf, end, clk, spec); in clock()
1972 char *format_flags(char *buf, char *end, unsigned long flags, in format_flags() argument
1982 buf = string(buf, end, names->name, default_str_spec); in format_flags()
1986 if (buf < end) in format_flags()
1987 *buf = '|'; in format_flags()
1988 buf++; in format_flags()
1993 buf = number(buf, end, flags, default_flag_spec); in format_flags()
1995 return buf; in format_flags()
2020 char *format_page_flags(char *buf, char *end, unsigned long flags) in format_page_flags() argument
2028 buf = format_flags(buf, end, main_flags, pageflag_names); in format_page_flags()
2040 if (buf < end) in format_page_flags()
2041 *buf = '|'; in format_page_flags()
2042 buf++; in format_page_flags()
2045 buf = string(buf, end, pff[i].name, default_str_spec); in format_page_flags()
2046 if (buf < end) in format_page_flags()
2047 *buf = '='; in format_page_flags()
2048 buf++; in format_page_flags()
2049 buf = number(buf, end, (flags >> pff[i].shift) & pff[i].mask, in format_page_flags()
2055 return buf; in format_page_flags()
2059 char *flags_string(char *buf, char *end, void *flags_ptr, in flags_string() argument
2065 if (check_pointer(&buf, end, flags_ptr, spec)) in flags_string()
2066 return buf; in flags_string()
2070 return format_page_flags(buf, end, *(unsigned long *)flags_ptr); in flags_string()
2080 return error_string(buf, end, "(%pG?)", spec); in flags_string()
2083 return format_flags(buf, end, flags, names); in flags_string()
2087 char *fwnode_full_name_string(struct fwnode_handle *fwnode, char *buf, in fwnode_full_name_string() argument
2097 buf = string(buf, end, fwnode_get_name_prefix(__fwnode), in fwnode_full_name_string()
2099 buf = string(buf, end, fwnode_get_name(__fwnode), in fwnode_full_name_string()
2105 return buf; in fwnode_full_name_string()
2109 char *device_node_string(char *buf, char *end, struct device_node *dn, in device_node_string() argument
2115 char *buf_start = buf; in device_node_string()
2123 return error_string(buf, end, "(%pO?)", spec); in device_node_string()
2126 return error_string(buf, end, "(%pOF?)", spec); in device_node_string()
2128 if (check_pointer(&buf, end, dn, spec)) in device_node_string()
2129 return buf; in device_node_string()
2139 if (buf < end) in device_node_string()
2140 *buf = ':'; in device_node_string()
2141 buf++; in device_node_string()
2146 buf = fwnode_full_name_string(of_fwnode_handle(dn), buf, in device_node_string()
2153 buf = string(buf, end, p, str_spec); in device_node_string()
2157 buf = number(buf, end, (unsigned int)dn->phandle, default_dec_spec); in device_node_string()
2163 buf = string(buf, end, p, str_spec); in device_node_string()
2171 buf = string_nocheck(buf, end, tbuf, str_spec); in device_node_string()
2176 buf = string(buf, end, p, str_spec); in device_node_string()
2182 buf = string_nocheck(buf, end, ",", str_spec); in device_node_string()
2183 buf = string_nocheck(buf, end, "\"", str_spec); in device_node_string()
2184 buf = string(buf, end, p, str_spec); in device_node_string()
2185 buf = string_nocheck(buf, end, "\"", str_spec); in device_node_string()
2195 return widen_string(buf, buf - buf_start, end, spec); in device_node_string()
2199 char *fwnode_string(char *buf, char *end, struct fwnode_handle *fwnode, in fwnode_string() argument
2203 char *buf_start = buf; in fwnode_string()
2208 return error_string(buf, end, "(%pf?)", spec); in fwnode_string()
2210 if (check_pointer(&buf, end, fwnode, spec)) in fwnode_string()
2211 return buf; in fwnode_string()
2217 buf = string(buf, end, fwnode_get_name(fwnode), str_spec); in fwnode_string()
2221 buf = fwnode_full_name_string(fwnode, buf, end); in fwnode_string()
2225 return widen_string(buf, buf - buf_start, end, spec); in fwnode_string()
2385 char *pointer(const char *fmt, char *buf, char *end, void *ptr, in pointer() argument
2394 return symbol_string(buf, end, ptr, spec, fmt); in pointer()
2397 return resource_string(buf, end, ptr, spec, fmt); in pointer()
2399 return hex_string(buf, end, ptr, spec, fmt); in pointer()
2403 return bitmap_list_string(buf, end, ptr, spec, fmt); in pointer()
2405 return bitmap_string(buf, end, ptr, spec, fmt); in pointer()
2411 return mac_address_string(buf, end, ptr, spec, fmt); in pointer()
2421 return ip_addr_string(buf, end, ptr, spec, fmt); in pointer()
2423 return escaped_string(buf, end, ptr, spec, fmt); in pointer()
2425 return uuid_string(buf, end, ptr, spec, fmt); in pointer()
2427 return va_format(buf, end, ptr, spec, fmt); in pointer()
2429 return restricted_pointer(buf, end, ptr, spec); in pointer()
2431 return netdev_bits(buf, end, ptr, spec, fmt); in pointer()
2433 return fourcc_string(buf, end, ptr, spec, fmt); in pointer()
2435 return address_val(buf, end, ptr, spec, fmt); in pointer()
2437 return dentry_name(buf, end, ptr, spec, fmt); in pointer()
2439 return time_and_date(buf, end, ptr, spec, fmt); in pointer()
2441 return clock(buf, end, ptr, spec, fmt); in pointer()
2443 return file_dentry_name(buf, end, ptr, spec, fmt); in pointer()
2446 return bdev_name(buf, end, ptr, spec, fmt); in pointer()
2450 return flags_string(buf, end, ptr, spec, fmt); in pointer()
2452 return device_node_string(buf, end, ptr, spec, fmt + 1); in pointer()
2454 return fwnode_string(buf, end, ptr, spec, fmt + 1); in pointer()
2456 return pointer_string(buf, end, ptr, spec); in pointer()
2461 return err_ptr(buf, end, ptr, spec); in pointer()
2466 return string(buf, end, ptr, spec); in pointer()
2468 return error_string(buf, end, "(einval)", spec); in pointer()
2477 return pointer_string(buf, end, ptr, spec); in pointer()
2479 return ptr_to_id(buf, end, ptr, spec); in pointer()
2727 int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) in vsnprintf() argument
2738 str = buf; in vsnprintf()
2739 end = buf + size; in vsnprintf()
2742 if (end < buf) { in vsnprintf()
2744 size = end - buf; in vsnprintf()
2876 return str-buf; in vsnprintf()
2896 int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) in vscnprintf() argument
2900 i = vsnprintf(buf, size, fmt, args); in vscnprintf()
2924 int snprintf(char *buf, size_t size, const char *fmt, ...) in snprintf() argument
2930 i = vsnprintf(buf, size, fmt, args); in snprintf()
2948 int scnprintf(char *buf, size_t size, const char *fmt, ...) in scnprintf() argument
2954 i = vscnprintf(buf, size, fmt, args); in scnprintf()
2975 int vsprintf(char *buf, const char *fmt, va_list args) in vsprintf() argument
2977 return vsnprintf(buf, INT_MAX, fmt, args); in vsprintf()
2993 int sprintf(char *buf, const char *fmt, ...) in sprintf() argument
2999 i = vsnprintf(buf, INT_MAX, fmt, args); in sprintf()
3189 int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) in bstr_printf() argument
3198 str = buf; in bstr_printf()
3199 end = buf + size; in bstr_printf()
3217 if (end < buf) { in bstr_printf()
3219 size = end - buf; in bstr_printf()
3374 return str - buf; in bstr_printf()
3409 int vsscanf(const char *buf, const char *fmt, va_list args) in vsscanf() argument
3411 const char *str = buf; in vsscanf()
3491 *va_arg(args, int *) = str - buf; in vsscanf()
3688 int sscanf(const char *buf, const char *fmt, ...) in sscanf() argument
3694 i = vsscanf(buf, fmt, args); in sscanf()