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

test-bpf.c (1105B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <asm/unistd.h>
      3#include <linux/bpf.h>
      4#include <unistd.h>
      5
      6#ifndef __NR_bpf
      7# if defined(__i386__)
      8#  define __NR_bpf 357
      9# elif defined(__x86_64__)
     10#  define __NR_bpf 321
     11# elif defined(__aarch64__)
     12#  define __NR_bpf 280
     13# elif defined(__sparc__)
     14#  define __NR_bpf 349
     15# elif defined(__s390__)
     16#  define __NR_bpf 351
     17# elif defined(__mips__) && defined(_ABIO32)
     18#  define __NR_bpf 4355
     19# elif defined(__mips__) && defined(_ABIN32)
     20#  define __NR_bpf 6319
     21# elif defined(__mips__) && defined(_ABI64)
     22#  define __NR_bpf 5315
     23# else
     24#  error __NR_bpf not defined. libbpf does not support your arch.
     25# endif
     26#endif
     27
     28int main(void)
     29{
     30	union bpf_attr attr;
     31
     32	/* Check fields in attr */
     33	attr.prog_type = BPF_PROG_TYPE_KPROBE;
     34	attr.insn_cnt = 0;
     35	attr.insns = 0;
     36	attr.license = 0;
     37	attr.log_buf = 0;
     38	attr.log_size = 0;
     39	attr.log_level = 0;
     40	attr.kern_version = 0;
     41	attr.prog_flags = 0;
     42
     43	/*
     44	 * Test existence of __NR_bpf and BPF_PROG_LOAD.
     45	 * This call should fail if we run the testcase.
     46	 */
     47	return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr));
     48}