BPF_PROG_TYPE_STRUCT_OPS
err = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &hid_bpf_kfunc_set);
BPF_PROG_TYPE(BPF_PROG_TYPE_STRUCT_OPS, bpf_struct_ops,
case BPF_PROG_TYPE_STRUCT_OPS:
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS ||
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &cpumask_kfunc_set);
ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &generic_kfunc_set);
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS: /* has access to struct sock */
if (prog->type == BPF_PROG_TYPE_STRUCT_OPS) {
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
if (prog_type == BPF_PROG_TYPE_STRUCT_OPS) {
if (prog_type == BPF_PROG_TYPE_STRUCT_OPS && !ret_type)
if (!subprog && env->prog->type == BPF_PROG_TYPE_STRUCT_OPS) {
prog->type == BPF_PROG_TYPE_STRUCT_OPS ||
if (prog->type == BPF_PROG_TYPE_STRUCT_OPS)
case BPF_PROG_TYPE_STRUCT_OPS:
if (type == BPF_PROG_TYPE_STRUCT_OPS && !exception_exit &&
return register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &scx_kfunc_set_init) ?:
register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &scx_kfunc_set_cid) ?:
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
if ((ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
(ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
(ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
(ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
(ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS,
return register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &scx_kfunc_set_idle) ?:
register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &scx_kfunc_set_select_cpu) ?:
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &bpf_tcp_ca_kfunc_set);
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &tcp_bbr_kfunc_set);
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &tcp_cubic_kfunc_set);
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &tcp_dctcp_kfunc_set);
ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &bpf_qdisc_kfunc_set);
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS) {
return prog->type == BPF_PROG_TYPE_STRUCT_OPS;
if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
if (prog->type == BPF_PROG_TYPE_STRUCT_OPS) {
[BPF_PROG_TYPE_STRUCT_OPS] = "struct_ops",
if (prog->type == BPF_PROG_TYPE_STRUCT_OPS ||
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
case BPF_PROG_TYPE_STRUCT_OPS:
if (bpf_program__type(__prog) == BPF_PROG_TYPE_STRUCT_OPS) \
.progs = bit(BPF_PROG_TYPE_STRUCT_OPS),
.progs = bit(BPF_PROG_TYPE_STRUCT_OPS),
.progs = bit(BPF_PROG_TYPE_STRUCT_OPS),
.progs = bit(BPF_PROG_TYPE_STRUCT_OPS),
ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &bpf_testmod_kfunc_set);