Controller
[Management]

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.

Function Documentation

struct genl_family* genl_ctrl_search ( struct nl_cache *  cache,
int  id 
) [read]
Parameters:
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().

Returns:
Generic netlink family object or NULL if no match was found.

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]
Parameters:
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().

Returns:
Generic netlink family object or NULL if no match was found.

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 
)
Parameters:
handle Netlink Handle
name Name of generic netlink family

Resolves the generic netlink family name to its identifer and returns it.

Returns:
A positive identifier or a negative error code.

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 }


Generated on 30 Oct 2009 for libnl by  doxygen 1.6.1