14dc6f04f4
This patch allows userspace to do BPF_MAP_LOOKUP_ELEM on BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS. The lookup returns a prog-id or map-id to the userspace. The userspace can then use the BPF_PROG_GET_FD_BY_ID or BPF_MAP_GET_FD_BY_ID to get a fd. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
25 lines
696 B
C
25 lines
696 B
C
/* Copyright (c) 2017 Facebook
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of version 2 of the GNU General Public
|
|
* License as published by the Free Software Foundation.
|
|
*/
|
|
#ifndef __MAP_IN_MAP_H__
|
|
#define __MAP_IN_MAP_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct file;
|
|
struct bpf_map;
|
|
|
|
struct bpf_map *bpf_map_meta_alloc(int inner_map_ufd);
|
|
void bpf_map_meta_free(struct bpf_map *map_meta);
|
|
bool bpf_map_meta_equal(const struct bpf_map *meta0,
|
|
const struct bpf_map *meta1);
|
|
void *bpf_map_fd_get_ptr(struct bpf_map *map, struct file *map_file,
|
|
int ufd);
|
|
void bpf_map_fd_put_ptr(void *ptr);
|
|
u32 bpf_map_fd_sys_lookup_elem(void *ptr);
|
|
|
|
#endif
|