函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\debug\kdb\kdb_main.c Create Date:2022-07-27 12:45:59
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:kdb_md

函数原型:static int kdb_md(int argc, const char **argv)

返回类型:int

参数:

类型参数名称
intargc
const char **argv
1556  radix等于16, mdcount等于8, bytesperword等于KDB_WORD_SIZE
1557  nosect等于0
1561  offset等于0
1562  symbolic等于0
1563  valid等于0
1564  phys等于0
1565  raw等于0
1567  kdbgetintenv - This function will return the value of an* integer-valued environment variable
1568  kdbgetintenv - This function will return the value of an* integer-valued environment variable
1569  kdbgetintenv - This function will return the value of an* integer-valued environment variable
1572  repeat等于mdcount乘16除bytesperword
1574  如果字符串比较恒等于0则
1575  如果argc恒等于2或argc恒等于0且last_addr不等于0则valid等于raw等于1
1577  否则返回:KDB_ARGCOUNT
1579  否则如果是数字
1580  bytesperword等于argv[0][2]减'0'
1581  如果bytesperword恒等于0则
1583  如果bytesperword恒等于0则bytesperword等于4
1586  last_bytesperword等于bytesperword
1587  repeat等于mdcount乘16除bytesperword
1588  如果非argv[0][3]则valid等于1
1590  否则如果argv[0][3]恒等于'c'且argv[0][4]则
1593  mdcount等于repeatbytesperword加15的和除16
1594  valid等于非p
1596  last_repeat等于repeat
1597  否则如果字符串比较恒等于0则valid等于1
1599  否则如果字符串比较恒等于0则valid等于1
1601  否则如果字符串比较恒等于0则
1602  phys等于valid等于1
1604  如果非valid则返回:KDB return codes from a command or internal kdb function
1607  如果argc恒等于0则
1608  如果last_addr恒等于0则返回:KDB_ARGCOUNT
1610  addr等于last_addr
1611  radix等于last_radix
1612  bytesperword等于last_bytesperword
1613  repeat等于last_repeat
1614  如果rawmdcount等于repeat
1616  否则mdcount等于repeatbytesperword加15的和除16
1620  如果argc
1622  nextarg等于1
1623  diag等于kdbgetaddrarg - This function is responsible for parsing an* address-expression and returning the value of the expression,* symbol name, and offset to the caller
1625  如果diag则返回:diag
1627  如果argc大于nextarg加2则返回:KDB_ARGCOUNT
1630  如果argc大于等于nextarg
1632  如果非diag
1633  mdcount等于val
1634  如果rawrepeat等于mdcount
1636  否则repeat等于mdcount乘16除bytesperword
1640  如果argc大于等于nextarg加1则
1642  如果非diagradix等于val
1647  如果字符串比较恒等于0则
1649  last_addr等于addr
1650  ret等于kdb_mdr - This function implements the guts of the 'mdr', memory* read command.* mdr ,* Inputs:* addr Start address* count Number of bytes* Returns:* Always 0. Any errors are detected and printed by kdb_getarea.
1651  last_addr加等于mdcount
1652  last_repeat等于mdcount
1653  last_bytesperword等于bytesperword
1654  返回:ret
1658  :radix恒等于10
1659  fmtchar等于'd'
1660  退出
1661  :radix恒等于16
1662  fmtchar等于'x'
1663  退出
1664  :radix恒等于8
1665  fmtchar等于'o'
1666  退出
1667  默认
1668  返回:KDB_BADRADIX
1671  last_radix等于radix
1673  如果bytesperword大于KDB_WORD_SIZE则返回:KDB_BADWIDTH
1677  :bytesperword恒等于8
1679  退出
1680  :bytesperword恒等于4
1682  退出
1683  :bytesperword恒等于2
1685  退出
1686  :bytesperword恒等于1
1688  退出
1689  默认
1690  返回:KDB_BADWIDTH
1693  last_repeat等于repeat
1694  last_bytesperword等于bytesperword
1696  如果字符串比较恒等于0则
1697  symbolic等于1
1702  repeat等于mdcount
1708  addr与等于bytesperword减1的差的反
1710 repeat大于0循环
1712  num等于如果symbolic则1否则16除bytesperword
1714  如果KDB_FLAG(CMD_INTERRUPT)则返回:0
1716 z小于repeat循环
1724  n等于两数取小(num, repeat)
1727  addr加等于bytesperwordn
1728  repeat减等于n
1729  z等于znum减1的差除num
1730  如果z大于2则
1731  s等于numz减2的差
1732  kdb_printf(kdb_machreg_fmt0"-"kdb_machreg_fmt0" zero suppressed\n", addr, addr + bytesperword * s - 1)
1735  addr加等于bytesperwords
1736  repeat减等于s
1739  last_addr等于addr
1741  返回:0