函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:create_hist_field

函数原型:static struct hist_field *create_hist_field(struct hist_trigger_data *hist_data, struct ftrace_event_field *field, unsigned long flags, char *var_name)

返回类型:struct hist_field

参数:

类型参数名称
struct hist_trigger_data *hist_data
struct ftrace_event_field *field
unsigned longflags
char *var_name
2473  如果fieldis_function_field(field)则返回:NULL
2476  hist_field等于分配内存并置零
2477  如果非hist_field则返回:NULL
2480  ref等于1
2482  hist_data等于hist_data
2484  如果flags按位与HIST_FIELD_FL_EXPRflags按位与HIST_FIELD_FL_ALIAS则转到:out
2487  如果flags按位与HIST_FIELD_FL_VAR_REF
2488  fn等于hist_field_var_ref
2489  转到:out
2492  如果flags按位与HIST_FIELD_FL_HITCOUNT
2493  fn等于hist_field_counter
2494  size等于sizeof(u64)
2495  type等于kstrdup("u64", GFP_KERNEL)
2496  如果非type则转到:free
2498  转到:out
2501  如果flags按位与HIST_FIELD_FL_STACKTRACE
2502  fn等于hist_field_none
2503  转到:out
2506  如果flags按位与HIST_FIELD_FL_LOG2
2507  fl等于flags按位与HIST_FIELD_FL_LOG2的反
2508  fn等于hist_field_log2
2509  operands[0]等于create_hist_field(hist_data, field, fl, NULL)
2510  size等于size
2511  type等于kstrdup(type, GFP_KERNEL)
2512  如果非type则转到:free
2514  转到:out
2517  如果flags按位与HIST_FIELD_FL_TIMESTAMP
2518  fn等于hist_field_timestamp
2519  size等于sizeof(u64)
2520  type等于kstrdup("u64", GFP_KERNEL)
2521  如果非type则转到:free
2523  转到:out
2526  如果flags按位与HIST_FIELD_FL_CPU
2527  fn等于hist_field_cpu
2528  size等于sizeof(int)
2529  type等于kstrdup("unsigned int", GFP_KERNEL)
2530  如果非type则转到:free
2532  转到:out
2535  如果WARN_ON_ONCE(!field)则转到:out
2538  如果is_string_field(field)则
2539  flags或等于HIST_FIELD_FL_STRING
2541  size等于Should handle KSYM_SYMBOL_LEN
2542  type等于kstrdup(type, GFP_KERNEL)
2543  如果非type则转到:free
2546  如果filter_type恒等于FILTER_STATIC_STRINGfn等于hist_field_string
2548  否则如果filter_type恒等于FILTER_DYN_STRINGfn等于hist_field_dynstring
2550  否则fn等于hist_field_pstring
2552  否则
2553  size等于size
2554  is_signed等于is_signed
2555  type等于kstrdup(type, GFP_KERNEL)
2556  如果非type则转到:free
2559  fn等于select_value_fn(size, is_signed)
2561  如果非fn
2563  返回:NULL
2566  out :
2567  field等于field
2568  flags等于flags
2570  如果var_name
2571  name等于kstrdup(var_name, GFP_KERNEL)
2572  如果非name则转到:free
2576  返回:hist_field
2577  free :
2578  destroy_hist_field(hist_field, 0)
2579  返回:NULL
调用者
名称描述
create_hist_field
create_var_refreate_var_ref - Create a variable reference and attach it to trigger*@hist_data: The trigger that will be referencing the variable*@var_field: The VAR field to create a reference to*@system: The optional system string*@event_name: The optional event_name
create_alias
parse_atom
parse_unary
parse_expr
create_hitcount_val
create_key_field