函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\vsprintf.c Create Date:2022-07-27 07:09:31
Last Modify:2022-05-21 09:47:42 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:ip6_addr_string_sa

函数原型:static __attribute__((__noinline__)) char *ip6_addr_string_sa(char *buf, char *end, const struct sockaddr_in6 *sa, struct printf_spec spec, const char *fmt)

返回类型:char

参数:

类型参数名称
char *buf
char *end
const struct sockaddr_in6 *sa
struct printf_specspec
const char *fmt
1456  bool have_p = false, have_s = false, have_f = false, have_c = false
1460  p等于ip6_addr, pend等于ip6_addrip6_addr的长度
1461  const u8 * addr = (const u8 * ) & IPv6 address
1462  char fmt6[2] = {fmt[0], '6'}
1463  off等于0
1465  fmt自加
1466 isalpha( * ++fmt)循环
1468  :fmt恒等于'p'
1469  have_p = true
1470  退出
1471  :fmt恒等于'f'
1472  have_f = true
1473  退出
1474  :fmt恒等于's'
1475  have_s = true
1476  退出
1477  :fmt恒等于'c'
1478  have_c = true
1479  退出
1483  如果have_phave_shave_f
1484  p等于'['
1485  off等于1
1488  如果fmt6[0]恒等于'I'且have_cp等于ip6_compressed_string(ip6_addr + off, addr)
1490  否则p等于ip6_string(ip6_addr + off, addr, fmt6)
1493  如果have_phave_shave_fp自加等于']'
1496  如果have_p
1497  p自加等于':'
1498  p等于number(p, pend, ntohs( Transport layer port # ), spec)
1500  如果have_f
1501  p自加等于'/'
1502  p等于number(p, pend, ntohl( IPv6 flow information & IPV6_FLOWINFO_MASK), spec)
1505  如果have_s
1506  p自加等于'%'
1507  p等于number(p, pend, scope id (new in RFC2553) , spec)
1509  p等于'\0'
1511  返回:Handle string from a well known address.
调用者
名称描述
ip_addr_string