cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tracex1_user.c (1098B)


      1// SPDX-License-Identifier: GPL-2.0
      2#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_kern.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}