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 "libbpf.h" 5 #include "trace_helpers.h" !! 6 #include "bpf_load.h" 6 7 7 int main(int ac, char **argv) 8 int main(int ac, char **argv) 8 { 9 { 9 struct bpf_link *link = NULL; << 10 struct bpf_program *prog; << 11 struct bpf_object *obj; << 12 char filename[256]; << 13 FILE *f; 10 FILE *f; >> 11 char filename[256]; 14 12 15 snprintf(filename, sizeof(filename), " !! 13 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 14 34 link = bpf_program__attach(prog); !! 15 if (load_bpf_file(filename)) { 35 if (libbpf_get_error(link)) { !! 16 printf("%s", bpf_log_buf); 36 fprintf(stderr, "ERROR: bpf_pr !! 17 return 1; 37 link = NULL; << 38 goto cleanup; << 39 } 18 } 40 19 41 f = popen("taskset 1 ping -c5 localhos 20 f = popen("taskset 1 ping -c5 localhost", "r"); 42 (void) f; 21 (void) f; 43 22 44 read_trace_pipe(); 23 read_trace_pipe(); 45 24 46 cleanup: << 47 bpf_link__destroy(link); << 48 bpf_object__close(obj); << 49 return 0; 25 return 0; 50 } 26 } 51 27
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.