Lines Matching defs:sec_def

387 /* stored as sec_def->cookie for all libbpf-supported SEC()s */
432 const struct bpf_sec_def *sec_def;
7460 /* this is called as prog->sec_def->prog_prepare_load_fn for libbpf-supported sec_defs */
7593 /* adjust load_attr if sec_def provides custom preload callback */
7594 if (prog->sec_def && prog->sec_def->prog_prepare_load_fn) {
7595 err = prog->sec_def->prog_prepare_load_fn(prog, &load_attr, prog->sec_def->cookie);
8011 prog->sec_def = find_sec_def(prog->sec_name);
8012 if (!prog->sec_def) {
8019 prog->type = prog->sec_def->prog_type;
8020 prog->expected_attach_type = prog->sec_def->expected_attach_type;
8022 /* sec_def can have custom callback which should be called
8025 if (prog->sec_def->prog_setup_fn) {
8026 err = prog->sec_def->prog_setup_fn(prog, prog->sec_def->cookie);
9448 if (prog->sec_def != &custom_fallback_def)
9449 prog->sec_def = NULL;
9676 struct bpf_sec_def *sec_def;
9685 sec_def = libbpf_reallocarray(custom_sec_defs, custom_sec_def_cnt + 1,
9686 sizeof(*sec_def));
9687 if (!sec_def)
9690 custom_sec_defs = sec_def;
9691 sec_def = &custom_sec_defs[custom_sec_def_cnt];
9696 sec_def = &custom_fallback_def;
9699 sec_def->sec = sec ? strdup(sec) : NULL;
9700 if (sec && !sec_def->sec)
9703 sec_def->prog_type = prog_type;
9704 sec_def->expected_attach_type = exp_attach_type;
9705 sec_def->cookie = OPTS_GET(opts, cookie, 0);
9707 sec_def->prog_setup_fn = OPTS_GET(opts, prog_setup_fn, NULL);
9708 sec_def->prog_prepare_load_fn = OPTS_GET(opts, prog_prepare_load_fn, NULL);
9709 sec_def->prog_attach_fn = OPTS_GET(opts, prog_attach_fn, NULL);
9711 sec_def->handler_id = ++last_custom_sec_def_handler_id;
9718 return sec_def->handler_id;
9760 static bool sec_def_matches(const struct bpf_sec_def *sec_def, const char *sec_name)
9762 size_t len = strlen(sec_def->sec);
9765 if (sec_def->sec[len - 1] == '/') {
9766 if (str_has_pfx(sec_name, sec_def->sec))
9774 if (sec_def->sec[len - 1] == '+') {
9777 if (strncmp(sec_name, sec_def->sec, len) != 0)
9785 return strcmp(sec_name, sec_def->sec) == 0;
9790 const struct bpf_sec_def *sec_def;
9795 sec_def = &custom_sec_defs[i];
9796 if (sec_def_matches(sec_def, sec_name))
9797 return sec_def;
9802 sec_def = &section_defs[i];
9803 if (sec_def_matches(sec_def, sec_name))
9804 return sec_def;
9827 const struct bpf_sec_def *sec_def = &section_defs[i];
9830 if (sec_def->prog_prepare_load_fn != libbpf_prepare_prog_load)
9833 if (!(sec_def->cookie & SEC_ATTACHABLE))
9851 const struct bpf_sec_def *sec_def;
9857 sec_def = find_sec_def(name);
9858 if (sec_def) {
9859 *prog_type = sec_def->prog_type;
9860 *expected_attach_type = sec_def->expected_attach_type;
10248 const struct bpf_sec_def *sec_def;
10253 sec_def = find_sec_def(name);
10254 if (!sec_def) {
10265 if (sec_def->prog_prepare_load_fn != libbpf_prepare_prog_load)
10267 if (!(sec_def->cookie & SEC_ATTACHABLE))
10270 *attach_type = sec_def->expected_attach_type;
13156 if (!prog->sec_def || !prog->sec_def->prog_attach_fn)
13165 err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, &link);
14178 if (!prog->sec_def || !prog->sec_def->prog_attach_fn)
14185 err = prog->sec_def->prog_attach_fn(prog, prog->sec_def->cookie, link);