Lines Matching refs:ops
93 static int genl_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who, in genl_msg_parser() argument
102 if (ops->co_genl == NULL) in genl_msg_parser()
105 for (i = 0; i < ops->co_genl->o_ncmds; i++) { in genl_msg_parser()
106 cmd = &ops->co_genl->o_cmds[i]; in genl_msg_parser()
127 err = nlmsg_parse(nlh, ops->co_hdrsize, tb, cmd->c_maxattr, in genl_msg_parser()
132 err = cmd->c_msg_parser(ops, cmd, &info, pp); in genl_msg_parser()
141 struct genl_ops *ops; in genl_op2name() local
144 nl_list_for_each_entry(ops, &genl_ops_list, o_list) { in genl_op2name()
145 if (ops->o_family == family) { in genl_op2name()
146 for (i = 0; i < ops->o_ncmds; i++) { in genl_op2name()
148 cmd = &ops->o_cmds[i]; in genl_op2name()
172 int genl_register(struct nl_cache_ops *ops) in genl_register() argument
176 if (ops->co_protocol != NETLINK_GENERIC) { in genl_register()
181 if (ops->co_hdrsize < GENL_HDRSIZE(0)) { in genl_register()
186 if (ops->co_genl == NULL) { in genl_register()
191 ops->co_genl->o_cache_ops = ops; in genl_register()
192 ops->co_genl->o_name = ops->co_msgtypes[0].mt_name; in genl_register()
193 ops->co_genl->o_family = ops->co_msgtypes[0].mt_id; in genl_register()
194 ops->co_msg_parser = genl_msg_parser; in genl_register()
198 nl_list_add_tail(&ops->co_genl->o_list, &genl_ops_list); in genl_register()
200 err = nl_cache_mngt_register(ops); in genl_register()
209 void genl_unregister(struct nl_cache_ops *ops) in genl_unregister() argument
211 nl_cache_mngt_unregister(ops); in genl_unregister()
212 nl_list_del(&ops->co_genl->o_list); in genl_unregister()
222 static int __genl_ops_resolve(struct nl_cache *ctrl, struct genl_ops *ops) in __genl_ops_resolve() argument
226 family = genl_ctrl_search_by_name(ctrl, ops->o_name); in __genl_ops_resolve()
228 ops->o_id = genl_family_get_id(family); in __genl_ops_resolve()
237 int genl_ops_resolve(struct nl_sock *sk, struct genl_ops *ops) in genl_ops_resolve() argument
245 err = __genl_ops_resolve(ctrl, ops); in genl_ops_resolve()
255 struct genl_ops *ops; in genl_mngt_resolve() local
261 nl_list_for_each_entry(ops, &genl_ops_list, o_list) { in genl_mngt_resolve()
262 err = __genl_ops_resolve(ctrl, ops); in genl_mngt_resolve()