Lines Matching refs:yarg
260 ynl_cb_error(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_cb_error() argument
267 yarg->ys->err.code = code; in ynl_cb_error()
274 ynl_ext_ack_check(yarg->ys, nlh, hlen); in ynl_cb_error()
279 static int ynl_cb_done(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_cb_done() argument
285 yarg->ys->err.code = -err; in ynl_cb_done()
288 ynl_ext_ack_check(yarg->ys, nlh, sizeof(int)); in ynl_cb_done()
297 int ynl_attr_validate(struct ynl_parse_arg *yarg, const struct nlattr *attr) in ynl_attr_validate() argument
306 if (type > yarg->rsp_policy->max_attr) { in ynl_attr_validate()
307 yerr(yarg->ys, YNL_ERROR_INTERNAL, in ynl_attr_validate()
312 policy = &yarg->rsp_policy->table[type]; in ynl_attr_validate()
316 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
324 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
330 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
336 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
342 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
348 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
357 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
363 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
369 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
375 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
379 yerr(yarg->ys, YNL_ERROR_ATTR_INVALID, in ynl_attr_validate()
477 static int ynl_cb_null(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_cb_null() argument
479 yerr(yarg->ys, YNL_ERROR_UNEXPECT_MSG, in ynl_cb_null()
486 __ynl_sock_read_msgs(struct ynl_parse_arg *yarg, ynl_parse_cb_t cb, int flags) in __ynl_sock_read_msgs() argument
488 struct ynl_sock *ys = yarg->ys; in __ynl_sock_read_msgs()
504 yerr(yarg->ys, YNL_ERROR_INV_RESP, in __ynl_sock_read_msgs()
511 yerr(yarg->ys, YNL_ERROR_DUMP_INTER, in __ynl_sock_read_msgs()
518 yerr(yarg->ys, YNL_ERROR_INV_RESP, in __ynl_sock_read_msgs()
526 ret = ynl_cb_error(nlh, yarg); in __ynl_sock_read_msgs()
529 ret = ynl_cb_done(nlh, yarg); in __ynl_sock_read_msgs()
532 ret = cb(nlh, yarg); in __ynl_sock_read_msgs()
540 static int ynl_sock_read_msgs(struct ynl_parse_arg *yarg, ynl_parse_cb_t cb) in ynl_sock_read_msgs() argument
542 return __ynl_sock_read_msgs(yarg, cb, 0); in ynl_sock_read_msgs()
547 struct ynl_parse_arg yarg = { .ys = ys, }; in ynl_recv_ack() local
555 return ynl_sock_read_msgs(&yarg, ynl_cb_null); in ynl_recv_ack()
595 ynl_get_family_info_cb(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_get_family_info_cb() argument
597 struct ynl_sock *ys = yarg->ys; in ynl_get_family_info_cb()
627 struct ynl_parse_arg yarg = { .ys = ys, }; in ynl_sock_read_family() local
644 err = ynl_sock_read_msgs(&yarg, ynl_get_family_info_cb); in ynl_sock_read_family()
791 struct ynl_parse_arg yarg = { .ys = ys, }; in ynl_ntf_parse() local
806 yarg.data = rsp->data; in ynl_ntf_parse()
807 yarg.rsp_policy = info->policy; in ynl_ntf_parse()
809 ret = info->cb(nlh, &yarg); in ynl_ntf_parse()
827 ynl_ntf_trampoline(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_ntf_trampoline() argument
829 return ynl_ntf_parse(yarg->ys, nlh); in ynl_ntf_trampoline()
834 struct ynl_parse_arg yarg = { .ys = ys, }; in ynl_ntf_check() local
838 err = __ynl_sock_read_msgs(&yarg, ynl_ntf_trampoline, in ynl_ntf_check()
857 int ynl_error_parse(struct ynl_parse_arg *yarg, const char *msg) in ynl_error_parse() argument
859 yerr(yarg->ys, YNL_ERROR_INV_RESP, "Error parsing response: %s", msg); in ynl_error_parse()
882 int ynl_req_trampoline(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) in ynl_req_trampoline() argument
884 struct ynl_req_state *yrs = (void *)yarg; in ynl_req_trampoline()
887 ret = ynl_check_alien(yrs->yarg.ys, nlh, yrs->rsp_cmd); in ynl_req_trampoline()
891 return yrs->cb(nlh, &yrs->yarg); in ynl_req_trampoline()
908 err = ynl_sock_read_msgs(&yrs->yarg, ynl_req_trampoline); in ynl_exec()
919 struct ynl_parse_arg yarg = {}; in ynl_dump_trampoline() local
922 ret = ynl_check_alien(ds->yarg.ys, nlh, ds->rsp_cmd); in ynl_dump_trampoline()
936 yarg = ds->yarg; in ynl_dump_trampoline()
937 yarg.data = &obj->data; in ynl_dump_trampoline()
939 return ds->cb(nlh, &yarg); in ynl_dump_trampoline()
965 err = ynl_sock_read_msgs(&yds->yarg, ynl_dump_trampoline); in ynl_exec_dump()