summaryrefslogtreecommitdiff
path: root/package/libnl-tiny/src/include/netlink/genl/mngt.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-04-30 13:57:29 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-04-30 13:57:29 +0000
commit938553bd69d1484b9d25495da4e7c2f09927638c (patch)
treecaace55defd2b5d38382a27ea1ae384c1f8ecc80 /package/libnl-tiny/src/include/netlink/genl/mngt.h
parent4e12c9d210531b67d6428cb15e763f49decd8199 (diff)
downloadmtk-20170518-938553bd69d1484b9d25495da4e7c2f09927638c.zip
mtk-20170518-938553bd69d1484b9d25495da4e7c2f09927638c.tar.gz
mtk-20170518-938553bd69d1484b9d25495da4e7c2f09927638c.tar.bz2
add libnl-tiny as a small replacement for libnl with only genl support included
SVN-Revision: 15507
Diffstat (limited to 'package/libnl-tiny/src/include/netlink/genl/mngt.h')
-rw-r--r--package/libnl-tiny/src/include/netlink/genl/mngt.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/package/libnl-tiny/src/include/netlink/genl/mngt.h b/package/libnl-tiny/src/include/netlink/genl/mngt.h
new file mode 100644
index 0000000..8b0244f
--- /dev/null
+++ b/package/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