Files
kernel_xiaomi_sm8250/include/uapi/linux
Alexei Starovoitov 09756af468 bpf: expand BPF syscall with program load/unload
eBPF programs are similar to kernel modules. They are loaded by the user
process and automatically unloaded when process exits. Each eBPF program is
a safe run-to-completion set of instructions. eBPF verifier statically
determines that the program terminates and is safe to execute.

The following syscall wrapper can be used to load the program:
int bpf_prog_load(enum bpf_prog_type prog_type,
                  const struct bpf_insn *insns, int insn_cnt,
                  const char *license)
{
    union bpf_attr attr = {
        .prog_type = prog_type,
        .insns = ptr_to_u64(insns),
        .insn_cnt = insn_cnt,
        .license = ptr_to_u64(license),
    };

    return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
}
where 'insns' is an array of eBPF instructions and 'license' is a string
that must be GPL compatible to call helper functions marked gpl_only

Upon succesful load the syscall returns prog_fd.
Use close(prog_fd) to unload the program.

User space tests and examples follow in the later patches

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-09-26 15:05:14 -04:00
..
2014-05-08 12:43:03 -04:00
2014-07-10 11:06:00 +01:00
2014-07-01 10:48:05 -06:00
2014-03-20 14:55:18 +01:00
2013-11-09 18:20:22 -05:00
2014-08-08 15:57:31 -07:00
2014-04-22 21:27:57 -04:00
2014-09-19 17:15:31 -04:00
2014-04-01 17:08:43 +02:00
2014-05-14 10:04:34 +01:00
2013-12-11 12:57:55 -08:00
2013-08-13 15:10:22 -07:00
2013-08-21 12:21:45 -07:00
2014-08-08 15:57:31 -07:00
2013-11-27 11:03:38 -08:00
2014-03-04 13:51:06 -05:00
2014-06-13 10:53:49 -04:00
2014-01-06 15:13:01 -05:00
2014-03-21 14:21:13 -04:00
2014-04-25 10:08:48 -07:00
2014-04-26 12:13:24 -04:00
2013-12-11 09:25:20 -02:00
2014-03-07 08:12:37 +01:00