/* This is necessary so that LLVM generates BTF for node_data struct * If it's not included, a fwd reference for node_data will be generated but * no struct. Example BTF of "node" field in map_value when not included: * * [10] PTR '(anon)' type_id=35 * [34] FWD 'node_data' fwd_kind=struct * [35] TYPE_TAG 'kptr_ref' type_id=34
*/ struct node_data *just_here_because_btf_bug;
mapval = bpf_map_lookup_elem(&some_nodes, &idx); if (!mapval) return 1;
res = bpf_obj_new(typeof(*res)); if (!res) return 1;
res->key[0] = 40;
res = bpf_kptr_xchg(&mapval->node, res); if (res)
bpf_obj_drop(res); return 0;
}
SEC("tc")
__failure __msg("R1 must have zero offset when passed to release func") long drop_rb_node_off(void *ctx)
{ struct map_value *mapval; struct node_data *res; int idx = 0;
mapval = bpf_map_lookup_elem(&some_nodes, &idx); if (!mapval) return 1;
res = bpf_obj_new(typeof(*res)); if (!res) return 1; /* Try releasing with graph node offset */
bpf_obj_drop(&res->node); return 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.