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