1 // SPDX-License-Identifier: GPL-2.0 1 // SPDX-License-Identifier: GPL-2.0 2 #include <stdio.h> 2 #include <stdio.h> >> 3 #include <linux/bpf.h> 3 #include <unistd.h> 4 #include <unistd.h> 4 #include <bpf/libbpf.h> !! 5 #include <bpf/bpf.h> >> 6 #include "bpf_load.h" 5 #include "trace_helpers.h" 7 #include "trace_helpers.h" 6 8 7 int main(int ac, char **argv) 9 int main(int ac, char **argv) 8 { 10 { 9 struct bpf_link *link = NULL; << 10 struct bpf_program *prog; << 11 struct bpf_object *obj; << 12 char filename[256]; << 13 FILE *f; 11 FILE *f; >> 12 char filename[256]; 14 13 15 snprintf(filename, sizeof(filename), " !! 14 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 16 obj = bpf_object__open_file(filename, << 17 if (libbpf_get_error(obj)) { << 18 fprintf(stderr, "ERROR: openin << 19 return 0; << 20 } << 21 << 22 prog = bpf_object__find_program_by_nam << 23 if (!prog) { << 24 fprintf(stderr, "ERROR: findin << 25 goto cleanup; << 26 } << 27 << 28 /* load BPF program */ << 29 if (bpf_object__load(obj)) { << 30 fprintf(stderr, "ERROR: loadin << 31 goto cleanup; << 32 } << 33 15 34 link = bpf_program__attach(prog); !! 16 if (load_bpf_file(filename)) { 35 if (libbpf_get_error(link)) { !! 17 printf("%s", bpf_log_buf); 36 fprintf(stderr, "ERROR: bpf_pr !! 18 return 1; 37 link = NULL; << 38 goto cleanup; << 39 } 19 } 40 20 41 f = popen("taskset 1 ping -c5 localhos 21 f = popen("taskset 1 ping -c5 localhost", "r"); 42 (void) f; 22 (void) f; 43 23 44 read_trace_pipe(); 24 read_trace_pipe(); 45 25 46 cleanup: << 47 bpf_link__destroy(link); << 48 bpf_object__close(obj); << 49 return 0; 26 return 0; 50 } 27 } 51 28
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.