builtin-inject.c (cd10b289520577a56c5d369b9a2e7bbee5698a4b) | builtin-inject.c (e31f0d017ea19fce9f12f084e1c750a0e3b43680) |
---|---|
1/* 2 * builtin-inject.c 3 * 4 * Builtin inject command: Examine the live mode (stdin) event stream 5 * and repipe it to stdout while optionally injecting additional 6 * events into it. 7 */ 8#include "builtin.h" --- 39 unchanged lines hidden (view full) --- 48 size = perf_data_file__write(&inject->output, buf, sz); 49 if (size < 0) 50 return -errno; 51 52 inject->bytes_written += size; 53 return 0; 54} 55 | 1/* 2 * builtin-inject.c 3 * 4 * Builtin inject command: Examine the live mode (stdin) event stream 5 * and repipe it to stdout while optionally injecting additional 6 * events into it. 7 */ 8#include "builtin.h" --- 39 unchanged lines hidden (view full) --- 48 size = perf_data_file__write(&inject->output, buf, sz); 49 if (size < 0) 50 return -errno; 51 52 inject->bytes_written += size; 53 return 0; 54} 55 |
56static int copy_bytes(struct perf_inject *inject, int fd, off_t size) 57{ 58 char buf[4096]; 59 ssize_t ssz; 60 int ret; 61 62 while (size > 0) { 63 ssz = read(fd, buf, min(size, (off_t)sizeof(buf))); 64 if (ssz < 0) 65 return -errno; 66 ret = output_bytes(inject, buf, ssz); 67 if (ret) 68 return ret; 69 size -= ssz; 70 } 71 72 return 0; 73} 74 | |
75static int perf_event__repipe_synth(struct perf_tool *tool, 76 union perf_event *event) 77{ 78 struct perf_inject *inject = container_of(tool, struct perf_inject, 79 tool); 80 81 return output_bytes(inject, event, event->header.size); 82} --- 26 unchanged lines hidden (view full) --- 109 return ret; 110 111 if (!inject->output.is_pipe) 112 return 0; 113 114 return perf_event__repipe_synth(tool, event); 115} 116 | 56static int perf_event__repipe_synth(struct perf_tool *tool, 57 union perf_event *event) 58{ 59 struct perf_inject *inject = container_of(tool, struct perf_inject, 60 tool); 61 62 return output_bytes(inject, event, event->header.size); 63} --- 26 unchanged lines hidden (view full) --- 90 return ret; 91 92 if (!inject->output.is_pipe) 93 return 0; 94 95 return perf_event__repipe_synth(tool, event); 96} 97 |
98#ifdef HAVE_AUXTRACE_SUPPORT 99 100static int copy_bytes(struct perf_inject *inject, int fd, off_t size) 101{ 102 char buf[4096]; 103 ssize_t ssz; 104 int ret; 105 106 while (size > 0) { 107 ssz = read(fd, buf, min(size, (off_t)sizeof(buf))); 108 if (ssz < 0) 109 return -errno; 110 ret = output_bytes(inject, buf, ssz); 111 if (ret) 112 return ret; 113 size -= ssz; 114 } 115 116 return 0; 117} 118 |
|
117static s64 perf_event__repipe_auxtrace(struct perf_tool *tool, 118 union perf_event *event, 119 struct perf_session *session 120 __maybe_unused) 121{ 122 struct perf_inject *inject = container_of(tool, struct perf_inject, 123 tool); 124 int ret; --- 23 unchanged lines hidden (view full) --- 148 event->header.size + event->auxtrace.size); 149 } 150 if (ret < 0) 151 return ret; 152 153 return event->auxtrace.size; 154} 155 | 119static s64 perf_event__repipe_auxtrace(struct perf_tool *tool, 120 union perf_event *event, 121 struct perf_session *session 122 __maybe_unused) 123{ 124 struct perf_inject *inject = container_of(tool, struct perf_inject, 125 tool); 126 int ret; --- 23 unchanged lines hidden (view full) --- 150 event->header.size + event->auxtrace.size); 151 } 152 if (ret < 0) 153 return ret; 154 155 return event->auxtrace.size; 156} 157 |
158#else 159 160static s64 161perf_event__repipe_auxtrace(struct perf_tool *tool __maybe_unused, 162 union perf_event *event __maybe_unused, 163 struct perf_session *session __maybe_unused) 164{ 165 pr_err("AUX area tracing not supported\n"); 166 return -EINVAL; 167} 168 169#endif 170 |
|
156static int perf_event__repipe(struct perf_tool *tool, 157 union perf_event *event, 158 struct perf_sample *sample __maybe_unused, 159 struct machine *machine __maybe_unused) 160{ 161 return perf_event__repipe_synth(tool, event); 162} 163 --- 460 unchanged lines hidden --- | 171static int perf_event__repipe(struct perf_tool *tool, 172 union perf_event *event, 173 struct perf_sample *sample __maybe_unused, 174 struct machine *machine __maybe_unused) 175{ 176 return perf_event__repipe_synth(tool, event); 177} 178 --- 460 unchanged lines hidden --- |