• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ubus/ubusmsg.h

  1 /*
  2  * Copyright (C) 2011 Felix Fietkau <nbd@openwrt.org>
  3  *
  4  * This program is free software; you can redistribute it and/or modify
  5  * it under the terms of the GNU Lesser General Public License version 2.1
  6  * as published by the Free Software Foundation
  7  *
  8  * This program is distributed in the hope that it will be useful,
  9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 11  * GNU General Public License for more details.
 12  */
 13 
 14 #ifndef __UBUSMSG_H
 15 #define __UBUSMSG_H
 16 
 17 #include <stdint.h>
 18 #include <libubox/blob.h>
 19 
 20 #define __packetdata __attribute__((packed)) __attribute__((__aligned__(4)))
 21 
 22 #define UBUS_MSG_CHUNK_SIZE     65536
 23 
 24 #define UBUS_SYSTEM_OBJECT_EVENT        1
 25 #define UBUS_SYSTEM_OBJECT_ACL          2
 26 #define UBUS_SYSTEM_OBJECT_MONITOR      3
 27 #define UBUS_SYSTEM_OBJECT_MAX          1024
 28 
 29 struct ubus_msghdr {
 30         uint8_t version;
 31         uint8_t type;
 32         uint16_t seq;
 33         uint32_t peer;
 34 } __packetdata;
 35 
 36 enum ubus_msg_type {
 37         /* initial server message */
 38         UBUS_MSG_HELLO,
 39 
 40         /* generic command response */
 41         UBUS_MSG_STATUS,
 42 
 43         /* data message response */
 44         UBUS_MSG_DATA,
 45 
 46         /* ping request */
 47         UBUS_MSG_PING,
 48 
 49         /* look up one or more objects */
 50         UBUS_MSG_LOOKUP,
 51 
 52         /* invoke a method on a single object */
 53         UBUS_MSG_INVOKE,
 54 
 55         UBUS_MSG_ADD_OBJECT,
 56         UBUS_MSG_REMOVE_OBJECT,
 57 
 58         /*
 59          * subscribe/unsubscribe to object notifications
 60          * The unsubscribe message is sent from ubusd when
 61          * the object disappears
 62          */
 63         UBUS_MSG_SUBSCRIBE,
 64         UBUS_MSG_UNSUBSCRIBE,
 65 
 66         /*
 67          * send a notification to all subscribers of an object.
 68          * when sent from the server, it indicates a subscription
 69          * status change
 70          */
 71         UBUS_MSG_NOTIFY,
 72 
 73         UBUS_MSG_MONITOR,
 74 
 75         /* must be last */
 76         __UBUS_MSG_LAST,
 77 };
 78 
 79 enum ubus_msg_attr {
 80         UBUS_ATTR_UNSPEC,
 81 
 82         UBUS_ATTR_STATUS,
 83 
 84         UBUS_ATTR_OBJPATH,
 85         UBUS_ATTR_OBJID,
 86         UBUS_ATTR_METHOD,
 87 
 88         UBUS_ATTR_OBJTYPE,
 89         UBUS_ATTR_SIGNATURE,
 90 
 91         UBUS_ATTR_DATA,
 92         UBUS_ATTR_TARGET,
 93 
 94         UBUS_ATTR_ACTIVE,
 95         UBUS_ATTR_NO_REPLY,
 96 
 97         UBUS_ATTR_SUBSCRIBERS,
 98 
 99         UBUS_ATTR_USER,
100         UBUS_ATTR_GROUP,
101 
102         /* must be last */
103         UBUS_ATTR_MAX,
104 };
105 
106 enum ubus_monitor_attr {
107         UBUS_MONITOR_CLIENT,
108         UBUS_MONITOR_PEER,
109         UBUS_MONITOR_SEND,
110         UBUS_MONITOR_SEQ,
111         UBUS_MONITOR_TYPE,
112         UBUS_MONITOR_DATA,
113 
114         /* must be last */
115         UBUS_MONITOR_MAX,
116 };
117 
118 enum ubus_msg_status {
119         UBUS_STATUS_OK,
120         UBUS_STATUS_INVALID_COMMAND,
121         UBUS_STATUS_INVALID_ARGUMENT,
122         UBUS_STATUS_METHOD_NOT_FOUND,
123         UBUS_STATUS_NOT_FOUND,
124         UBUS_STATUS_NO_DATA,
125         UBUS_STATUS_PERMISSION_DENIED,
126         UBUS_STATUS_TIMEOUT,
127         UBUS_STATUS_NOT_SUPPORTED,
128         UBUS_STATUS_UNKNOWN_ERROR,
129         UBUS_STATUS_CONNECTION_FAILED,
130         UBUS_STATUS_NO_MEMORY,
131         UBUS_STATUS_PARSE_ERROR,
132         UBUS_STATUS_SYSTEM_ERROR,
133         __UBUS_STATUS_LAST
134 };
135 
136 #endif
137 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt