Lines Matching +full:ftrace +full:- +full:size
1 // SPDX-License-Identifier: GPL-2.0-only
24 #include "trace-event.h"
42 /* unfortunately, you can not stat debugfs or proc files for size */
45 unsigned long long size = 0; in record_file() local
49 int err = -EIO; in record_file()
54 return -errno; in record_file()
57 /* put in zeros for file size, then fill true size later */ in record_file()
59 if (write(output_fd, &size, hdr_sz) != hdr_sz) in record_file()
66 size += r; in record_file()
72 /* ugh, handle big-endian hdr_size == 4 */ in record_file()
73 sizep = (char*)&size; in record_file()
75 sizep += sizeof(u64) - hdr_sz; in record_file()
78 pr_debug("writing file size failed\n"); in record_file()
92 int err = -EIO; in record_header_files()
96 return -ENOMEM; in record_header_files()
119 err = -ENOMEM; in record_header_files()
147 if (!strcmp(sys, tps->name)) in name_in_tp_list()
149 tps = tps->next; in name_in_tp_list()
157 if (dent->d_type == DT_DIR && \
158 (strcmp(dent->d_name, ".")) && \
159 (strcmp(dent->d_name, ".."))) \
174 return -errno; in copy_event_system()
178 if (!name_in_tp_list(dent->d_name, tps)) in copy_event_system()
181 if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) { in copy_event_system()
182 err = -ENOMEM; in copy_event_system()
193 err = -EIO; in copy_event_system()
200 if (!name_in_tp_list(dent->d_name, tps)) in copy_event_system()
203 if (asprintf(&format, "%s/%s/format", sys, dent->d_name) < 0) { in copy_event_system()
204 err = -ENOMEM; in copy_event_system()
229 path = get_events_file("ftrace"); in record_ftrace_files()
231 pr_debug("can't get tracing/events/ftrace"); in record_ftrace_files()
232 return -ENOMEM; in record_ftrace_files()
245 if (!strcmp(sys, tps->system)) in system_in_tp_list()
247 tps = tps->next; in system_in_tp_list()
267 return -ENOMEM; in record_event_files()
272 err = -errno; in record_event_files()
278 if (strcmp(dent->d_name, "ftrace") == 0 || in record_event_files()
279 !system_in_tp_list(dent->d_name, tps)) in record_event_files()
286 err = -EIO; in record_event_files()
293 if (strcmp(dent->d_name, "ftrace") == 0 || in record_event_files()
294 !system_in_tp_list(dent->d_name, tps)) in record_event_files()
297 if (asprintf(&sys, "%s/%s", path, dent->d_name) < 0) { in record_event_files()
298 err = -ENOMEM; in record_event_files()
303 ssize_t size = strlen(dent->d_name) + 1; in record_event_files() local
305 if (write(output_fd, dent->d_name, size) != size || in record_event_files()
307 err = -EIO; in record_event_files()
325 unsigned long long size = 0; in record_proc_kallsyms() local
329 * /proc/kallsyms (or something specified via --kallsyms, in a in record_proc_kallsyms()
332 return write(output_fd, &size, 4) != 4 ? -EIO : 0; in record_proc_kallsyms()
337 unsigned int size; in record_ftrace_printk() local
345 return -ENOMEM; in record_ftrace_printk()
351 size = 0; in record_ftrace_printk()
352 if (write(output_fd, &size, 4) != 4) in record_ftrace_printk()
353 err = -EIO; in record_ftrace_printk()
365 unsigned long long size; in record_saved_cmdline() local
373 return -ENOMEM; in record_saved_cmdline()
379 size = 0; in record_saved_cmdline()
380 if (write(output_fd, &size, 8) != 8) in record_saved_cmdline()
381 err = -EIO; in record_saved_cmdline()
397 tps = tps->next; in put_tracepoints_path()
398 zfree(&t->name); in put_tracepoints_path()
399 zfree(&t->system); in put_tracepoints_path()
420 dir_path = get_events_file(sys_dirent->d_name); in tracepoint_id_to_path()
430 evt_dirent->d_name); in tracepoint_id_to_path()
447 if (asprintf(&path->system, "%.*s", in tracepoint_id_to_path()
448 MAX_EVENT_LENGTH, sys_dirent->d_name) < 0) { in tracepoint_id_to_path()
452 if (asprintf(&path->name, "%.*s", in tracepoint_id_to_path()
453 MAX_EVENT_LENGTH, evt_dirent->d_name) < 0) { in tracepoint_id_to_path()
454 zfree(&path->system); in tracepoint_id_to_path()
475 if (path && asprintf(&buf, "%s:%s", path->system, path->name) < 0) in tracepoint_id_to_name()
492 path->system = strndup(name, str - name); in tracepoint_name_to_path()
493 path->name = strdup(str+1); in tracepoint_name_to_path()
495 if (path->system == NULL || path->name == NULL) { in tracepoint_name_to_path()
496 zfree(&path->system); in tracepoint_name_to_path()
497 zfree(&path->name); in tracepoint_name_to_path()
512 if (pos->core.attr.type != PERF_TYPE_TRACEPOINT) in get_tracepoints_path()
516 if (pos->name) { in get_tracepoints_path()
517 ppath->next = tracepoint_name_to_path(pos->name); in get_tracepoints_path()
518 if (ppath->next) in get_tracepoints_path()
521 if (strchr(pos->name, ':') == NULL) in get_tracepoints_path()
528 ppath->next = tracepoint_id_to_path(pos->core.attr.config); in get_tracepoints_path()
529 if (!ppath->next) { in get_tracepoints_path()
536 ppath = ppath->next; in get_tracepoints_path()
547 if (pos->core.attr.type == PERF_TYPE_TRACEPOINT) in have_tracepoints()
556 ssize_t size; in tracing_data_header() local
565 return -1; in tracing_data_header()
567 size = strlen(VERSION) + 1; in tracing_data_header()
568 if (write(output_fd, VERSION, size) != size) in tracing_data_header()
569 return -1; in tracing_data_header()
578 return -1; in tracing_data_header()
580 /* save size of long */ in tracing_data_header()
583 return -1; in tracing_data_header()
587 return -1; in tracing_data_header()
609 tdata->temp = temp; in tracing_data_get()
610 tdata->size = 0; in tracing_data_get()
615 snprintf(tdata->temp_file, sizeof(tdata->temp_file), in tracing_data_get()
616 "/tmp/perf-XXXXXX"); in tracing_data_get()
617 if (!mkstemp(tdata->temp_file)) { in tracing_data_get()
623 temp_fd = open(tdata->temp_file, O_RDWR); in tracing_data_get()
625 pr_debug("Can't read '%s'", tdata->temp_file); in tracing_data_get()
663 tdata->size = lseek(output_fd, 0, SEEK_CUR); in tracing_data_get()
679 if (tdata->temp) { in tracing_data_put()
680 err = record_file(tdata->temp_file, 0); in tracing_data_put()
681 unlink(tdata->temp_file); in tracing_data_put()
699 return -ENOMEM; in read_tracing_data()