Initial commit
This commit is contained in:
87
package/libs/libnl-tiny/src/include/netlink/genl/mngt.h
Normal file
87
package/libs/libnl-tiny/src/include/netlink/genl/mngt.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* netlink/genl/mngt.h Generic Netlink Management
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation version 2.1
|
||||
* of the License.
|
||||
*
|
||||
* Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
|
||||
*/
|
||||
|
||||
#ifndef NETLINK_GENL_MNGT_H_
|
||||
#define NETLINK_GENL_MNGT_H_
|
||||
|
||||
#include <netlink/netlink.h>
|
||||
#include <netlink/attr.h>
|
||||
#include <netlink/list.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct nl_cache_ops;
|
||||
|
||||
struct genl_info
|
||||
{
|
||||
struct sockaddr_nl * who;
|
||||
struct nlmsghdr * nlh;
|
||||
struct genlmsghdr * genlhdr;
|
||||
void * userhdr;
|
||||
struct nlattr ** attrs;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup genl_mngt
|
||||
* Generic Netlink Command
|
||||
*/
|
||||
struct genl_cmd
|
||||
{
|
||||
/** Unique command identifier */
|
||||
int c_id;
|
||||
|
||||
/** Name/description of command */
|
||||
char * c_name;
|
||||
|
||||
/**
|
||||
* Maximum attribute identifier, must be provided if
|
||||
* a message parser is available.
|
||||
*/
|
||||
int c_maxattr;
|
||||
|
||||
int (*c_msg_parser)(struct nl_cache_ops *,
|
||||
struct genl_cmd *,
|
||||
struct genl_info *, void *);
|
||||
|
||||
/**
|
||||
* Attribute validation policy (optional)
|
||||
*/
|
||||
struct nla_policy * c_attr_policy;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup genl_mngt
|
||||
* Generic Netlink Operations
|
||||
*/
|
||||
struct genl_ops
|
||||
{
|
||||
int o_family;
|
||||
int o_id;
|
||||
char * o_name;
|
||||
struct nl_cache_ops * o_cache_ops;
|
||||
struct genl_cmd * o_cmds;
|
||||
int o_ncmds;
|
||||
|
||||
/* linked list of all genl cache operations */
|
||||
struct nl_list_head o_list;
|
||||
};
|
||||
|
||||
|
||||
extern int genl_register(struct nl_cache_ops *);
|
||||
extern void genl_unregister(struct nl_cache_ops *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user