函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\sed-opal.c Create Date:2022-07-27 19:45:50
Last Modify:2020-03-17 23:36:33 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:response_parse

函数原型:static int response_parse(const u8 *buf, size_t length, struct parsed_resp *resp)

返回类型:int

参数:

类型参数名称
const u8 *buf
size_tlength
struct parsed_resp *resp
853  num_entries等于0
859  如果非buf则返回:负EFAULT
862  如果非resp则返回:负EFAULT
865  hdr等于buf
866  pos等于buf
867  pos加等于hdr的长度
869  clen等于be32_to_cpu(length)
870  plen等于be32_to_cpu(length)
871  slen等于be32_to_cpu(length)
872  pr_debug("Response size: cp: %u, pkt: %u, subpkt: %u\n", clen, plen, slen)
875  如果clen恒等于0或plen恒等于0或slen恒等于0或slen大于IO_BUFFER_LENGTHhdr的长度则
877  pr_debug("Bad header length. cp: %u, pkt: %u, subpkt: %u\n", clen, plen, slen)
879  print_buffer(pos, hdr的长度)
880  返回:负EINVAL
883  如果pos大于buflength则返回:负EFAULT
886  iter等于toks
887  total等于slen
888  print_buffer(pos, total)
889 total大于0循环
890  如果pos[0]小于等于Derived from TCG Core spec 2.01 Section:* 3.2.2.1* Data Typetoken_length等于response_parse_tiny(iter, pos)
892  否则如果pos[0]小于等于SHORT_ATOM_BYTEtoken_length等于response_parse_short(iter, pos)
894  否则如果pos[0]小于等于MEDIUM_ATOM_BYTEtoken_length等于response_parse_medium(iter, pos)
896  否则如果pos[0]小于等于LONG_ATOM_BYTEtoken_length等于response_parse_long(iter, pos)
898  否则token_length等于response_parse_token(iter, pos)
901  如果token_length小于0则返回:token_length
904  pos加等于token_length
905  total减等于token_length
906  iter自加
907  num_entries自加
910  num等于num_entries
912  返回:0
调用者
名称描述
parse_and_check_statusParses and checks for errors