2011-06-17 16:35:11 +02:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2011 Felix Fietkau <nbd@openwrt.org>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 2.1
|
|
|
|
* as published by the Free Software Foundation
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*/
|
|
|
|
|
2010-12-06 03:51:58 +01:00
|
|
|
#ifndef __UBUSMSG_H
|
|
|
|
#define __UBUSMSG_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <libubox/blob.h>
|
|
|
|
|
|
|
|
#define __packetdata __attribute__((packed)) __attribute__((__aligned__(4)))
|
|
|
|
|
2011-02-07 01:52:40 +01:00
|
|
|
#define UBUS_MAX_MSGLEN 65536
|
2010-12-06 03:51:58 +01:00
|
|
|
|
2011-02-05 00:21:27 +01:00
|
|
|
#define UBUS_SYSTEM_OBJECT_EVENT 1
|
|
|
|
#define UBUS_SYSTEM_OBJECT_MAX 1024
|
|
|
|
|
2010-12-06 03:51:58 +01:00
|
|
|
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,
|
|
|
|
|
2011-02-06 21:33:03 +01:00
|
|
|
UBUS_MSG_ADD_OBJECT,
|
|
|
|
UBUS_MSG_REMOVE_OBJECT,
|
2010-12-06 03:51:58 +01:00
|
|
|
|
2012-12-13 18:44:15 +01:00
|
|
|
/*
|
|
|
|
* subscribe/unsubscribe to object notifications
|
|
|
|
* The unsubscribe message is sent from ubusd when
|
|
|
|
* the object disappears
|
|
|
|
*/
|
|
|
|
UBUS_MSG_SUBSCRIBE,
|
|
|
|
UBUS_MSG_UNSUBSCRIBE,
|
2012-05-19 21:09:35 +02:00
|
|
|
|
2012-12-14 13:00:49 +01:00
|
|
|
/*
|
|
|
|
* send a notification to all subscribers of an object.
|
|
|
|
* when sent from the server, it indicates a subscription
|
|
|
|
* status change
|
|
|
|
*/
|
|
|
|
UBUS_MSG_NOTIFY,
|
|
|
|
|
2010-12-06 03:51:58 +01:00
|
|
|
/* 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,
|
2012-05-19 21:09:35 +02:00
|
|
|
UBUS_ATTR_TARGET,
|
2010-12-06 03:51:58 +01:00
|
|
|
|
2012-12-14 13:00:49 +01:00
|
|
|
UBUS_ATTR_ACTIVE,
|
|
|
|
|
2010-12-06 03:51:58 +01:00
|
|
|
/* must be last */
|
|
|
|
UBUS_ATTR_MAX,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ubus_msg_status {
|
|
|
|
UBUS_STATUS_OK,
|
|
|
|
UBUS_STATUS_INVALID_COMMAND,
|
|
|
|
UBUS_STATUS_INVALID_ARGUMENT,
|
2011-01-31 03:26:53 +01:00
|
|
|
UBUS_STATUS_METHOD_NOT_FOUND,
|
2010-12-06 03:51:58 +01:00
|
|
|
UBUS_STATUS_NOT_FOUND,
|
|
|
|
UBUS_STATUS_NO_DATA,
|
2011-02-05 19:53:14 +01:00
|
|
|
UBUS_STATUS_PERMISSION_DENIED,
|
2011-02-11 02:40:39 +01:00
|
|
|
UBUS_STATUS_TIMEOUT,
|
2011-09-05 03:16:59 +02:00
|
|
|
UBUS_STATUS_NOT_SUPPORTED,
|
2011-09-05 03:20:07 +02:00
|
|
|
UBUS_STATUS_UNKNOWN_ERROR,
|
2012-05-29 00:56:37 +02:00
|
|
|
UBUS_STATUS_CONNECTION_FAILED,
|
2010-12-06 03:51:58 +01:00
|
|
|
__UBUS_STATUS_LAST
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|