Lines Matching refs:gf

95 	struct genl_family *gf;  in genl_family()  local
97 gf = &families[family_id - GENL_MIN_ID]; in genl_family()
99 gf->family_name != NULL, ("family %u does not exist", family_id)); in genl_family()
100 return (gf); in genl_family()
104 genl_family_id(const struct genl_family *gf) in genl_family_id() argument
106 MPASS(gf >= &families[0] && gf < &families[MAX_FAMILIES]); in genl_family_id()
107 return ((uint16_t)(gf - &families[0]) + GENL_MIN_ID); in genl_family_id()
117 struct genl_family *gf; in genl_handle_message() local
129 gf = &families[family_id]; in genl_handle_message()
131 gf->family_name == NULL)) { in genl_handle_message()
139 if (ghdr->cmd >= gf->family_cmd_size || gf->family_cmds[ghdr->cmd].cmd_cb == NULL) { in genl_handle_message()
141 gf->family_name, ghdr->cmd); in genl_handle_message()
145 struct genl_cmd *cmd = &gf->family_cmds[ghdr->cmd]; in genl_handle_message()
149 gf->family_name, ghdr->cmd); in genl_handle_message()
154 gf->family_name, cmd->cmd_name, ghdr->cmd, hdr->nlmsg_len); in genl_handle_message()
172 const struct genl_family *gf, struct nl_writer *nw) in dump_family() argument
179 ghdr_new->version = gf->family_version; in dump_family()
182 nlattr_add_string(nw, CTRL_ATTR_FAMILY_NAME, gf->family_name); in dump_family()
183 nlattr_add_u16(nw, CTRL_ATTR_FAMILY_ID, genl_family_id(gf)); in dump_family()
184 nlattr_add_u32(nw, CTRL_ATTR_VERSION, gf->family_version); in dump_family()
185 nlattr_add_u32(nw, CTRL_ATTR_HDRSIZE, gf->family_hdrsize); in dump_family()
186 nlattr_add_u32(nw, CTRL_ATTR_MAXATTR, gf->family_attr_max); in dump_family()
188 if (gf->family_cmd_size > 0) { in dump_family()
192 for (int i = 0, cnt=0; i < gf->family_cmd_size; i++) { in dump_family()
193 struct genl_cmd *cmd = &gf->family_cmds[i]; in dump_family()
206 if (gf->family_num_groups > 0) { in dump_family()
213 if (gg->group_family != gf) in dump_family()
228 NL_LOG(LOG_DEBUG, "unable to dump family %s state (ENOMEM)", gf->family_name); in dump_family()
269 struct genl_family *gf = &families[i]; in nlctrl_handle_getfamily() local
271 if (gf->family_name == NULL) in nlctrl_handle_getfamily()
274 attrs.family_id != genl_family_id(gf)) in nlctrl_handle_getfamily()
277 strcmp(attrs.family_name, gf->family_name) != 0) in nlctrl_handle_getfamily()
279 return (dump_family(hdr, &ghdr, gf, npt->nw)); in nlctrl_handle_getfamily()
286 struct genl_family *gf = &families[i]; in nlctrl_handle_getfamily() local
288 if (gf->family_name != NULL) { in nlctrl_handle_getfamily()
289 error = dump_family(hdr, &ghdr, gf, npt->nw); in nlctrl_handle_getfamily()
309 struct genl_family *gf; in nlctrl_notify() local
312 gf = genl_family(family_id); in nlctrl_notify()
319 dump_family(&hdr, &ghdr, gf, &nw); in nlctrl_notify()
361 struct genl_family *gf; in genl_register_family() local
373 gf = NULL; in genl_register_family()
376 gf = &families[i]; in genl_register_family()
379 KASSERT(gf, ("%s: maximum of %u generic netlink families allocated", in genl_register_family()
382 *gf = (struct genl_family) { in genl_register_family()
388 family_id = genl_family_id(gf); in genl_register_family()
391 NL_LOG(LOG_DEBUG2, "Registered family %s id %d", gf->family_name, in genl_register_family()
393 EVENTHANDLER_INVOKE(genl_family_event, gf->family_name, family_id, in genl_register_family()
402 struct genl_family *gf; in genl_unregister_family() local
405 gf = genl_family(family_id); in genl_unregister_family()
407 EVENTHANDLER_INVOKE(genl_family_event, gf->family_name, in genl_unregister_family()
411 if (gg->group_family == gf && gg->group_name != NULL) { in genl_unregister_family()
416 if (gf->family_cmds != NULL) in genl_unregister_family()
417 free(gf->family_cmds, M_NETLINK); in genl_unregister_family()
418 bzero(gf, sizeof(*gf)); in genl_unregister_family()
426 struct genl_family *gf; in genl_register_cmds() local
430 gf = genl_family(family_id); in genl_register_cmds()
432 cmd_size = gf->family_cmd_size; in genl_register_cmds()
440 if (cmd_size > gf->family_cmd_size) { in genl_register_cmds()
447 memcpy(data, gf->family_cmds, in genl_register_cmds()
448 gf->family_cmd_size * sizeof(struct genl_cmd)); in genl_register_cmds()
449 old_data = gf->family_cmds; in genl_register_cmds()
450 gf->family_cmds = data; in genl_register_cmds()
451 gf->family_cmd_size = cmd_size; in genl_register_cmds()
458 MPASS(gf->family_cmds[cmd->cmd_num].cmd_cb == NULL); in genl_register_cmds()
459 gf->family_cmds[cmd->cmd_num] = cmds[i]; in genl_register_cmds()
461 cmd->cmd_name, cmd->cmd_num, gf->family_name); in genl_register_cmds()
470 struct genl_family *gf; in genl_register_group() local
476 gf = genl_family(family_id); in genl_register_group()
479 if (groups[i].group_family == gf && in genl_register_group()
489 gf->family_num_groups++; in genl_register_group()
490 gg->group_family = gf; in genl_register_group()
504 struct genl_family *gf; in genl_unregister_group() local
515 gf = genl_family(family_id); in genl_unregister_group()
518 MPASS(gg->group_family == gf); in genl_unregister_group()
519 MPASS(gf->family_num_groups > 0); in genl_unregister_group()
521 gf->family_num_groups--; in genl_unregister_group()