summaryrefslogtreecommitdiff
path: root/ubusmsg.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-12-06 03:51:58 +0100
committerFelix Fietkau <nbd@openwrt.org>2011-01-30 14:16:09 +0100
commitdbd4c2f121be08e514828f2533687b145a6e16dd (patch)
treea0d6c73d6d1d4f6157b607f0f236f441700d7639 /ubusmsg.h
downloadubus-dbd4c2f121be08e514828f2533687b145a6e16dd.tar.gz
Initial import
Diffstat (limited to 'ubusmsg.h')
-rw-r--r--ubusmsg.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/ubusmsg.h b/ubusmsg.h
new file mode 100644
index 0000000..e62a393
--- /dev/null
+++ b/ubusmsg.h
@@ -0,0 +1,72 @@
+#ifndef __UBUSMSG_H
+#define __UBUSMSG_H
+
+#include <stdint.h>
+#include <libubox/blob.h>
+
+#define __packetdata __attribute__((packed)) __attribute__((__aligned__(4)))
+
+#define UBUS_MAX_MSGLEN 65535
+
+struct ubus_msghdr {
+ uint8_t version;
+ uint8_t type;
+ uint16_t seq;
+ uint32_t peer;
+ struct blob_attr data[];
+} __packetdata;
+
+enum ubus_msg_type {
+ /* initial server message */
+ UBUS_MSG_HELLO,
+
+ /* generic command response */
+ UBUS_MSG_STATUS,
+
+ /* data message response */
+ UBUS_MSG_DATA,
+
+ /* ping request */
+ UBUS_MSG_PING,
+
+ /* look up one or more objects */
+ UBUS_MSG_LOOKUP,
+
+ /* invoke a method on a single object */
+ UBUS_MSG_INVOKE,
+
+ /* publish an object */
+ UBUS_MSG_PUBLISH,
+
+ /* must be last */
+ __UBUS_MSG_LAST,
+};
+
+enum ubus_msg_attr {
+ UBUS_ATTR_UNSPEC,
+
+ UBUS_ATTR_STATUS,
+
+ UBUS_ATTR_OBJPATH,
+ UBUS_ATTR_OBJID,
+ UBUS_ATTR_METHOD,
+
+ UBUS_ATTR_OBJTYPE,
+ UBUS_ATTR_SIGNATURE,
+
+ UBUS_ATTR_DATA,
+
+ /* must be last */
+ UBUS_ATTR_MAX,
+};
+
+enum ubus_msg_status {
+ UBUS_STATUS_OK,
+ UBUS_STATUS_INVALID_COMMAND,
+ UBUS_STATUS_INVALID_ARGUMENT,
+ UBUS_STATUS_NOT_FOUND,
+ UBUS_STATUS_NO_DATA,
+ __UBUS_STATUS_LAST
+};
+
+#endif