函数逻辑报告 |
Source Code:kernel\events\core.c |
Create Date:2022-07-27 14:56:38 |
Last Modify:2022-05-20 07:50:19 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:perf_output_sample
函数原型:void perf_output_sample(struct perf_output_handle *handle, struct perf_event_header *header, struct perf_sample_data *data, struct perf_event *event)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct perf_output_handle * | handle | |
struct perf_event_header * | header | |
struct perf_sample_data * | data | |
struct perf_event * | event |
6563 | sample_type等于type |
6565 | perf_output_put(handle, * header) |
6567 | 如果sample_type按位与PERF_SAMPLE_IDENTIFIER则perf_output_put(handle, id) |
6570 | 如果sample_type按位与PERF_SAMPLE_IP则perf_output_put(handle, ip) |
6573 | 如果sample_type按位与PERF_SAMPLE_TID则perf_output_put(handle, tid_entry) |
6576 | 如果sample_type按位与PERF_SAMPLE_TIME则perf_output_put(handle, time) |
6579 | 如果sample_type按位与PERF_SAMPLE_ADDR则perf_output_put(handle, addr) |
6582 | 如果sample_type按位与PERF_SAMPLE_ID则perf_output_put(handle, id) |
6588 | 如果sample_type按位与PERF_SAMPLE_CPU则perf_output_put(handle, cpu_entry) |
6591 | 如果sample_type按位与PERF_SAMPLE_PERIOD则perf_output_put(handle, period) |
6597 | 如果sample_type按位与PERF_SAMPLE_CALLCHAIN则 |
6605 | 如果sample_type按位与PERF_SAMPLE_RAW则 |
6608 | 如果raw则 |
6611 | perf_output_put(handle, size) |
6612 | 循环 |
6613 | 如果copy则 |
6614 | __output_custom(handle, copy, data, size) |
6616 | 否则 |
6617 | __output_copy(handle, data, size) |
6620 | 如果perf_raw_frag_last(frag)则退出 |
6623 | 当1循环 |
6624 | 如果pad则__output_skip(handle, NULL, pad) |
6626 | 否则 |
6638 | 如果sample_type按位与PERF_SAMPLE_BRANCH_STACK则 |
6639 | 如果br_stack则 |
6642 | size等于nr乘sizeof(structperf_branch_entry) |
6645 | perf_output_put(handle, nr) |
6646 | perf_output_copy(handle, entries, size) |
6647 | 否则 |
6651 | nr等于0 |
6652 | perf_output_put(handle, nr) |
6656 | 如果sample_type按位与PERF_SAMPLE_REGS_USER则 |
6663 | perf_output_put(handle, abi) |
6665 | 如果abi则 |
6666 | mask等于sample_regs_user |
6667 | perf_output_sample_regs(handle, regs, mask) |
6673 | 如果sample_type按位与PERF_SAMPLE_STACK_USER则 |
6679 | 如果sample_type按位与PERF_SAMPLE_WEIGHT则perf_output_put(handle, weight) |
6682 | 如果sample_type按位与PERF_SAMPLE_DATA_SRC则perf_output_put(handle, val) |
6685 | 如果sample_type按位与PERF_SAMPLE_TRANSACTION则perf_output_put(handle, txn) |
6688 | 如果sample_type按位与PERF_SAMPLE_REGS_INTR则 |
6694 | perf_output_put(handle, abi) |
6696 | 如果abi则 |
6697 | mask等于sample_regs_intr |
6699 | perf_output_sample_regs(handle, regs, mask) |
6708 | 如果sample_type按位与PERF_SAMPLE_AUX则 |
6709 | perf_output_put(handle, aux_size) |
6711 | 如果aux_size则perf_aux_sample_output(event, handle, data) |
6715 | 如果非watermark则 |
6716 | wakeup_events等于wakeup_events |
6718 | 如果wakeup_events则 |
6720 | events等于local_inc_return( & event limit ) |
6722 | 如果events大于等于wakeup_events则 |
6723 | local_sub(wakeup_events, & event limit ) |
6724 | local_inc( & wakeup stamp ) |
名称 | 描述 |
---|---|
__perf_event_output |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |