函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:create_key_field

函数原型:static int create_key_field(struct hist_trigger_data *hist_data, unsigned int key_idx, unsigned int key_offset, struct trace_event_file *file, char *field_str)

返回类型:int

参数:

类型参数名称
struct hist_trigger_data *hist_data
unsigned intkey_idx
unsigned intkey_offset
struct trace_event_file *file
char *field_str
4584  tr等于tr
4585  struct hist_field * hist_field = NULL
4586  flags等于0
4588  ret等于0
4590  如果WARN_ON(key_idx >= HIST_FIELDS_MAX)则返回:负EINVAL
4593  flags或等于HIST_FIELD_FL_KEY
4595  如果字符串比较恒等于0则
4596  flags或等于HIST_FIELD_FL_STACKTRACE
4597  key_size等于sizeof(unsignedlong)乘HIST_STACKTRACE_DEPTH
4598  hist_field等于create_hist_field(hist_data, NULL, flags, NULL)
4599  否则
4600  hist_field等于parse_expr(hist_data, file, field_str, flags, NULL, 0)
4602  如果是错误
4603  ret等于错误
4604  转到:out
4607  如果field_has_hist_vars(hist_field, 0)则
4610  ret等于负EINVAL
4611  转到:out
4614  key_size等于size
4617  fields[key_idx]等于hist_field
4619  key_size等于@a is a power of 2 value (key_size, sizeof(u64))
4620  size等于key_size
4621  offset等于key_offset
4623  key_size加等于key_size
4625  如果key_size大于HIST_KEY_SIZE_MAX
4626  ret等于负EINVAL
4627  转到:out
4630  n_keys自加
4631  n_fields自加
4633  如果WARN_ON(n_keys > TRACING_MAP_KEYS_MAX)则返回:负EINVAL
4636  ret等于key_size
4637  out :
4638  返回:ret
调用者
名称描述
create_key_fields