/linux/kernel/bpf/ |
H A D | map_in_map.c | 12 struct bpf_map *inner_map, *inner_map_meta; in bpf_map_meta_alloc() local 16 inner_map = __bpf_map_get(f); in bpf_map_meta_alloc() 17 if (IS_ERR(inner_map)) in bpf_map_meta_alloc() 18 return inner_map; in bpf_map_meta_alloc() 21 if (inner_map->inner_map_meta) in bpf_map_meta_alloc() 24 if (!inner_map->ops->map_meta_equal) in bpf_map_meta_alloc() 29 if (inner_map->ops == &array_map_ops || inner_map->ops == &percpu_array_map_ops) in bpf_map_meta_alloc() 36 inner_map_meta->map_type = inner_map->map_type; in bpf_map_meta_alloc() 37 inner_map_meta->key_size = inner_map->key_size; in bpf_map_meta_alloc() 38 inner_map_meta->value_size = inner_map->value_size; in bpf_map_meta_alloc() [all …]
|
H A D | arraymap.c | 1366 struct bpf_map **inner_map = array_map_lookup_elem(map, key); in array_of_map_lookup_elem() local 1368 if (!inner_map) in array_of_map_lookup_elem() 1371 return READ_ONCE(*inner_map); in array_of_map_lookup_elem()
|
H A D | hashtab.c | 1834 struct bpf_map **inner_map = value; in __htab_map_lookup_and_delete_batch() local 1837 map_id = map->ops->map_fd_sys_lookup_elem(*inner_map); in __htab_map_lookup_and_delete_batch() 2599 struct bpf_map **inner_map = htab_map_lookup_elem(map, key); in htab_of_map_lookup_elem() local 2601 if (!inner_map) in htab_of_map_lookup_elem() 2604 return READ_ONCE(*inner_map); in htab_of_map_lookup_elem()
|
/linux/tools/testing/selftests/bpf/progs/ |
H A D | test_btf_map_in_map.c | 6 struct inner_map { struct 89 __array(values, struct inner_map); 126 struct inner_map *inner_map; in handle__sys_enter() local 129 inner_map = bpf_map_lookup_elem(&outer_arr, &key); in handle__sys_enter() 130 if (!inner_map) in handle__sys_enter() 133 bpf_map_update_elem(inner_map, &key, &val, 0); in handle__sys_enter() 135 inner_map = bpf_map_lookup_elem(&outer_hash, &key); in handle__sys_enter() 136 if (!inner_map) in handle__sys_enter() 139 bpf_map_update_elem(inner_map, &key, &val, 0); in handle__sys_enter() 141 inner_map = bpf_map_lookup_elem(&outer_arr_dyn, &key); in handle__sys_enter() [all …]
|
H A D | access_map_in_map.c | 14 } inner_map SEC(".maps"); 24 [0] = &inner_map, 36 [0] = &inner_map, 47 void *inner_map; in acc_map_in_map() local 54 inner_map = bpf_map_lookup_elem(outer_map, &key); in acc_map_in_map() 55 if (inner_map) in acc_map_in_map() 60 inner_map = bpf_map_lookup_elem(outer_map, &key); in acc_map_in_map() 61 if (!inner_map) in acc_map_in_map() 66 bpf_map_update_elem(inner_map, &key, &value, 0); in acc_map_in_map()
|
H A D | lsm.c | 56 struct inner_map { struct 61 } inner_map SEC(".maps"); 68 __array(values, struct inner_map); 70 .values = { [0] = &inner_map }, 77 __array(values, struct inner_map); 79 .values = { [0] = &inner_map }, 113 struct inner_map *inner_map; in BPF_PROG() local 142 inner_map = bpf_map_lookup_elem(&outer_arr, &key); in BPF_PROG() 143 if (inner_map) { in BPF_PROG() 144 value = bpf_map_lookup_elem(inner_map, &key); in BPF_PROG() [all …]
|
H A D | timer_mim.c | 15 struct inner_map { struct 30 __array(values, struct inner_map); 68 struct bpf_map *inner_map; in BPF_PROG() local 73 inner_map = bpf_map_lookup_elem(&outer_arr, &array_key); in BPF_PROG() 74 if (!inner_map) in BPF_PROG() 77 bpf_map_update_elem(inner_map, &hash_key, &init, 0); in BPF_PROG() 78 val = bpf_map_lookup_elem(inner_map, &hash_key); in BPF_PROG() 82 bpf_timer_init(&val->timer, inner_map, CLOCK_MONOTONIC); in BPF_PROG()
|
H A D | timer_mim_reject.c | 15 struct inner_map { struct 31 __array(values, struct inner_map); 50 struct bpf_map *inner_map, *inner_map2; in BPF_PROG() local 56 inner_map = bpf_map_lookup_elem(&outer_arr, &array_key); in BPF_PROG() 57 if (!inner_map) in BPF_PROG() 63 bpf_map_update_elem(inner_map, &hash_key, &init, 0); in BPF_PROG() 64 val = bpf_map_lookup_elem(inner_map, &hash_key); in BPF_PROG()
|
H A D | bloom_filter_map.c | 56 int inner_map(void *ctx) in inner_map() function 58 struct bpf_map *inner_map; in inner_map() local 62 inner_map = bpf_map_lookup_elem(&outer_map, &key); in inner_map() 63 if (!inner_map) { in inner_map() 68 data.map = inner_map; in inner_map()
|
H A D | local_storage_bench.c | 53 void *map, *inner_map; in do_lookup() local 61 inner_map = bpf_map_lookup_elem(map, &elem); in do_lookup() 62 if (!inner_map) in do_lookup() 67 bpf_map_lookup_elem(inner_map, &idx); in do_lookup() 69 bpf_task_storage_get(inner_map, lctx->task, &idx, in do_lookup()
|
H A D | jeq_infer_not_null_fail.c | 25 struct bpf_map *inner_map = map->inner_map_meta; in jeq_infer_not_null_ptr_to_btfid() local 42 : [inner_map] "r"(inner_map), [val] "r"(val) in jeq_infer_not_null_ptr_to_btfid()
|
H A D | map_ptr_kern.c | 344 struct inner_map { struct 349 } inner_map SEC(".maps"); 363 .values = { (void *)&inner_map, 0, 0, 0, 0, 0, 0, 0, 0 }, 370 struct bpf_array *inner_map; in check_array_of_maps() local 374 inner_map = bpf_map_lookup_elem(array_of_maps, &key); in check_array_of_maps() 375 VERIFY(inner_map != NULL); in check_array_of_maps() 376 VERIFY(inner_map->map.max_entries == INNER_MAX_ENTRIES); in check_array_of_maps() 386 __array(values, struct inner_map); 389 [2] = &inner_map, 397 struct bpf_htab *inner_map; in check_hash_of_maps() local [all …]
|
H A D | inner_array_lookup.c | 6 struct inner_map { struct 17 __array(values, struct inner_map);
|
H A D | linked_list.h | 36 struct array_map inner_map SEC(".maps"); 46 [0] = &inner_map,
|
H A D | linked_list_fail.c | 66 CHECK(inner_map, pop_front, &iv->head); 67 CHECK(inner_map, pop_back, &iv->head); 89 CHECK(inner_map, push_front, &iv->head, &f->node2); 90 CHECK(inner_map, push_back, &iv->head, &f->node2);
|
H A D | syscall.c | 49 } inner_map SEC(".maps"); 59 [0] = &inner_map,
|
/linux/samples/bpf/ |
H A D | test_map_in_map.bpf.c | 76 static __always_inline int do_reg_lookup(void *inner_map, u32 port) in do_reg_lookup() argument 80 result = bpf_map_lookup_elem(inner_map, &port); in do_reg_lookup() 84 static __always_inline int do_inline_array_lookup(void *inner_map, u32 port) in do_inline_array_lookup() argument 88 if (inner_map != &port_a) in do_inline_array_lookup() 95 static __always_inline int do_inline_hash_lookup(void *inner_map, u32 port) in do_inline_hash_lookup() argument 99 if (inner_map != &port_h) in do_inline_hash_lookup() 112 void *outer_map, *inner_map; in BPF_KSYSCALL() local 150 inner_map = bpf_map_lookup_elem(outer_map, &port_key); in BPF_KSYSCALL() 151 if (!inner_map) { in BPF_KSYSCALL() 157 ret = do_reg_lookup(inner_map, port_key); in BPF_KSYSCALL() [all …]
|
/linux/tools/testing/selftests/bpf/prog_tests/ |
H A D | sockmap_listen.c | 725 struct bpf_map *inner_map, int family, in test_skb_redir_to_connected() argument 731 int sock_map = bpf_map__fd(inner_map); in test_skb_redir_to_connected() 750 struct bpf_map *inner_map, int family, in test_msg_redir_to_connected() argument 755 int sock_map = bpf_map__fd(inner_map); in test_msg_redir_to_connected() 768 struct bpf_map *inner_map, int family, in test_msg_redir_to_connected_with_link() argument 773 int sock_map = bpf_map__fd(inner_map); in test_msg_redir_to_connected_with_link() 845 struct bpf_map *inner_map, int family, in test_skb_redir_to_listening() argument 851 int sock_map = bpf_map__fd(inner_map); in test_skb_redir_to_listening() 870 struct bpf_map *inner_map, int family, in test_msg_redir_to_listening() argument 875 int sock_map = bpf_map__fd(inner_map); in test_msg_redir_to_listening() [all …]
|
H A D | linked_list.c | 29 TEST(inner_map, 0) 56 TEST(inner_map, push_front) 57 TEST(inner_map, push_back) 58 TEST(inner_map, pop_front) 59 TEST(inner_map, pop_back) 178 clear_fields(skel->maps.inner_map); in test_linked_list_success() 212 clear_fields(skel->maps.inner_map); in test_linked_list_success() 234 clear_fields(skel->maps.inner_map); in test_linked_list_success()
|
H A D | bloom_filter_map.c | 129 link = bpf_program__attach(skel->progs.inner_map); in test_inner_map()
|
/linux/tools/testing/selftests/bpf/benchs/ |
H A D | bench_local_storage.c | 117 struct bpf_map *inner_map; in __setup() local 127 inner_map = bpf_map__inner_map(ctx.array_of_maps); in __setup() 128 create_opts.btf_key_type_id = bpf_map__btf_key_type_id(inner_map); in __setup() 129 create_opts.btf_value_type_id = bpf_map__btf_value_type_id(inner_map); in __setup()
|
/linux/Documentation/bpf/ |
H A D | map_of_maps.rst | 70 struct inner_map { 81 __array(values, struct inner_map);
|
/linux/tools/bpf/bpftool/Documentation/ |
H A D | bpftool-map.rst | 30 | **entries** *MAX_ENTRIES* **name** *NAME* [**flags** *FLAGS*] [**inner_map** *MAP*] \ 75 … value *VALUE_SIZE* entries *MAX_ENTRIES* name *NAME* [flags *FLAGS*] [inner_map *MAP*] [offload_… 82 To create maps of type array-of-maps or hash-of-maps, the **inner_map**
|
/linux/tools/lib/bpf/ |
H A D | libbpf.c | 566 struct bpf_map *inner_map; member 2907 map->inner_map = calloc(1, sizeof(*map->inner_map)); in bpf_object__init_user_btf_map() 2908 if (!map->inner_map) in bpf_object__init_user_btf_map() 2910 map->inner_map->fd = create_placeholder_fd(); in bpf_object__init_user_btf_map() 2911 if (map->inner_map->fd < 0) in bpf_object__init_user_btf_map() 2912 return map->inner_map->fd; in bpf_object__init_user_btf_map() 2913 map->inner_map->sec_idx = sec_idx; in bpf_object__init_user_btf_map() 2914 map->inner_map->name = malloc(strlen(map_name) + sizeof(".inner") + 1); in bpf_object__init_user_btf_map() 2915 if (!map->inner_map->name) in bpf_object__init_user_btf_map() 2917 sprintf(map->inner_map->name, "%s.inner", map_name); in bpf_object__init_user_btf_map() [all …]
|
/linux/tools/bpf/bpftool/bash-completion/ |
H A D | bpftool | 713 inner_map) 722 inner_map) 733 _bpftool_once_attr 'inner_map'
|