]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/uapi/linux/bpf.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[karo-tx-linux.git] / include / uapi / linux / bpf.h
index 564f1f091991b7f1f7b40f06c433b7a663787103..9ea2d22fa2cb5af6c14ac09bb7e553eb1cbed87f 100644 (file)
@@ -63,50 +63,16 @@ struct bpf_insn {
        __s32   imm;            /* signed immediate constant */
 };
 
-/* BPF syscall commands */
+/* BPF syscall commands, see bpf(2) man-page for details. */
 enum bpf_cmd {
-       /* create a map with given type and attributes
-        * fd = bpf(BPF_MAP_CREATE, union bpf_attr *, u32 size)
-        * returns fd or negative error
-        * map is deleted when fd is closed
-        */
        BPF_MAP_CREATE,
-
-       /* lookup key in a given map
-        * err = bpf(BPF_MAP_LOOKUP_ELEM, union bpf_attr *attr, u32 size)
-        * Using attr->map_fd, attr->key, attr->value
-        * returns zero and stores found elem into value
-        * or negative error
-        */
        BPF_MAP_LOOKUP_ELEM,
-
-       /* create or update key/value pair in a given map
-        * err = bpf(BPF_MAP_UPDATE_ELEM, union bpf_attr *attr, u32 size)
-        * Using attr->map_fd, attr->key, attr->value, attr->flags
-        * returns zero or negative error
-        */
        BPF_MAP_UPDATE_ELEM,
-
-       /* find and delete elem by key in a given map
-        * err = bpf(BPF_MAP_DELETE_ELEM, union bpf_attr *attr, u32 size)
-        * Using attr->map_fd, attr->key
-        * returns zero or negative error
-        */
        BPF_MAP_DELETE_ELEM,
-
-       /* lookup key in a given map and return next key
-        * err = bpf(BPF_MAP_GET_NEXT_KEY, union bpf_attr *attr, u32 size)
-        * Using attr->map_fd, attr->key, attr->next_key
-        * returns zero and stores next key or negative error
-        */
        BPF_MAP_GET_NEXT_KEY,
-
-       /* verify and load eBPF program
-        * prog_fd = bpf(BPF_PROG_LOAD, union bpf_attr *attr, u32 size)
-        * Using attr->prog_type, attr->insns, attr->license
-        * returns fd or negative error
-        */
        BPF_PROG_LOAD,
+       BPF_OBJ_PIN,
+       BPF_OBJ_GET,
 };
 
 enum bpf_map_type {
@@ -160,6 +126,11 @@ union bpf_attr {
                __aligned_u64   log_buf;        /* user supplied buffer */
                __u32           kern_version;   /* checked when prog_type=kprobe */
        };
+
+       struct { /* anonymous struct used by BPF_OBJ_* commands */
+               __aligned_u64   pathname;
+               __u32           bpf_fd;
+       };
 } __attribute__((aligned(8)));
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -287,6 +258,17 @@ enum bpf_func_id {
         * Return: realm if != 0
         */
        BPF_FUNC_get_route_realm,
+
+       /**
+        * bpf_perf_event_output(ctx, map, index, data, size) - output perf raw sample
+        * @ctx: struct pt_regs*
+        * @map: pointer to perf_event_array map
+        * @index: index of event in the map
+        * @data: data on stack to be output as raw data
+        * @size: size of data
+        * Return: 0 on success
+        */
+       BPF_FUNC_perf_event_output,
        __BPF_FUNC_MAX_ID,
 };