diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-10-08 11:24:12 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-10-08 11:24:12 +0000 |
commit | 48db59fab785ce881e154d83115de86d284fce5d (patch) | |
tree | 8741bab5dbcca43c884cdf0788b6c0049e0c25d1 /package/libs/libnl-tiny/src/include/netlink/genl/mngt.h | |
parent | 997ace7e5e78d580d802f3f30ddc00f9b30e0bcc (diff) | |
download | upstream-48db59fab785ce881e154d83115de86d284fce5d.tar.gz upstream-48db59fab785ce881e154d83115de86d284fce5d.tar.bz2 upstream-48db59fab785ce881e154d83115de86d284fce5d.zip |
move library packages to package/libs/
SVN-Revision: 33657
Diffstat (limited to 'package/libs/libnl-tiny/src/include/netlink/genl/mngt.h')
-rw-r--r-- | package/libs/libnl-tiny/src/include/netlink/genl/mngt.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/package/libs/libnl-tiny/src/include/netlink/genl/mngt.h b/package/libs/libnl-tiny/src/include/netlink/genl/mngt.h new file mode 100644 index 0000000000..8b0244f2cc --- /dev/null +++ b/package/libs/libnl-tiny/src/include/netlink/genl/mngt.h @@ -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 |