函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Caller is responsible to free the *pentry.

函数原型:static int parse_entry(char *str, struct trace_event_call *call, void **pentry)

返回类型:int

参数:

类型参数名称
char *str
struct trace_event_call *call
void **pentry
196  void * entry = NULL
198  val等于0
201  entry等于trace_alloc_entry(call, & entry_size)
202  pentry等于entry
203  如果非entry则返回:负ENOMEM
206  local_save_flags(irq_flags)
207  tracing_generic_entry_update(entry, type, irq_flags, 抢占计数值)
210 len等于parse_field(str, call, & field, & val)大于0循环
211  如果is_function_field(field)则返回:负EINVAL
214  如果is_string_field(field)则
215  addr等于val
217  如果filter_type恒等于FILTER_STATIC_STRING
219  否则如果filter_type恒等于FILTER_DYN_STRING
221  str_loc等于entry_size按位与0xffff
224  entry_size加等于str_len
226  如果非pentry
227  kfree(entry)
228  返回:负ENOMEM
230  entry等于pentry
233  str_item等于entryoffset
234  str_item等于str_len左移16位按位或str_loc
235  否则
238  paddr等于entryoffset
239  paddr等于INJECT_STRING
241  否则
243  :size恒等于1
244  tmp等于val
246  内存复制(entry + offset, & tmp, 1)
247  退出
249  :size恒等于2
250  tmp等于val
252  内存复制(entry + offset, & tmp, 2)
253  退出
255  :size恒等于4
256  tmp等于val
258  内存复制(entry + offset, & tmp, 4)
259  退出
261  :size恒等于8
262  内存复制(entry + offset, & val, 8)
263  退出
264  默认
265  返回:负EINVAL
269  str加等于len
272  如果len小于0则返回:len
275  返回:entry_size
调用者
名称描述
event_inject_write