brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 8c3d904 Raw
51 lines · c
1// SPDX-License-Identifier: GPL-2.02#include <stdio.h>3#include <unistd.h>4#include <bpf/libbpf.h>5#include "trace_helpers.h"6 7int main(int ac, char **argv)8{9	struct bpf_link *link = NULL;10	struct bpf_program *prog;11	struct bpf_object *obj;12	char filename[256];13	FILE *f;14 15	snprintf(filename, sizeof(filename), "%s.bpf.o", argv[0]);16	obj = bpf_object__open_file(filename, NULL);17	if (libbpf_get_error(obj)) {18		fprintf(stderr, "ERROR: opening BPF object file failed\n");19		return 0;20	}21 22	prog = bpf_object__find_program_by_name(obj, "bpf_prog1");23	if (!prog) {24		fprintf(stderr, "ERROR: finding a prog in obj file failed\n");25		goto cleanup;26	}27 28	/* load BPF program */29	if (bpf_object__load(obj)) {30		fprintf(stderr, "ERROR: loading BPF object file failed\n");31		goto cleanup;32	}33 34	link = bpf_program__attach(prog);35	if (libbpf_get_error(link)) {36		fprintf(stderr, "ERROR: bpf_program__attach failed\n");37		link = NULL;38		goto cleanup;39	}40 41	f = popen("taskset 1 ping -c5 localhost", "r");42	(void) f;43 44	read_trace_pipe();45 46cleanup:47	bpf_link__destroy(link);48	bpf_object__close(obj);49	return 0;50}51