Functions | |
int | genl_ctrl_resolve (struct nl_handle *handle, const char *name) |
Resolve generic netlink family name to its identifier. | |
Cache Management | |
| |
struct nl_cache * | genl_ctrl_alloc_cache (struct nl_handle *handle) |
struct genl_family * | genl_ctrl_search (struct nl_cache *cache, int id) |
Look up generic netlink family by id in the provided cache. | |
Resolver | |
| |
struct genl_family * | genl_ctrl_search_by_name (struct nl_cache *cache, const char *name) |
Look up generic netlink family by family name in the provided cache. |
struct genl_family* genl_ctrl_search | ( | struct nl_cache * | cache, | |
int | id | |||
) | [read] |
cache | Generic netlink family cache. | |
id | Family identifier. |
Searches through the cache looking for a registered family matching the specified identifier. The caller will own a reference on the returned object which needs to be given back after usage using genl_family_put().
Definition at line 174 of file ctrl.c.
References nl_object_get().
00175 { 00176 struct genl_family *fam; 00177 00178 if (cache->c_ops != &genl_ctrl_ops) 00179 BUG(); 00180 00181 nl_list_for_each_entry(fam, &cache->c_items, ce_list) { 00182 if (fam->gf_id == id) { 00183 nl_object_get((struct nl_object *) fam); 00184 return fam; 00185 } 00186 } 00187 00188 return NULL; 00189 }
struct genl_family* genl_ctrl_search_by_name | ( | struct nl_cache * | cache, | |
const char * | name | |||
) | [read] |
cache | Generic netlink family cache. | |
name | Family name. |
Searches through the cache looking for a registered family matching the specified name. The caller will own a reference on the returned object which needs to be given back after usage using genl_family_put().
Definition at line 208 of file ctrl.c.
References nl_object_get().
Referenced by genl_ctrl_resolve().
00210 { 00211 struct genl_family *fam; 00212 00213 if (cache->c_ops != &genl_ctrl_ops) 00214 BUG(); 00215 00216 nl_list_for_each_entry(fam, &cache->c_items, ce_list) { 00217 if (!strcmp(name, fam->gf_name)) { 00218 nl_object_get((struct nl_object *) fam); 00219 return fam; 00220 } 00221 } 00222 00223 return NULL; 00224 }
int genl_ctrl_resolve | ( | struct nl_handle * | handle, | |
const char * | name | |||
) |
handle | Netlink Handle | |
name | Name of generic netlink family |
Resolves the generic netlink family name to its identifer and returns it.
Definition at line 238 of file ctrl.c.
References genl_ctrl_search_by_name(), and nl_cache_free().
00239 { 00240 struct nl_cache *cache; 00241 struct genl_family *family; 00242 int err; 00243 00244 cache = genl_ctrl_alloc_cache(handle); 00245 if (cache == NULL) 00246 return nl_get_errno(); 00247 00248 family = genl_ctrl_search_by_name(cache, name); 00249 if (family == NULL) { 00250 err = nl_error(ENOENT, "Generic Netlink Family not found"); 00251 goto errout; 00252 } 00253 00254 err = genl_family_get_id(family); 00255 genl_family_put(family); 00256 errout: 00257 nl_cache_free(cache); 00258 00259 return err; 00260 }