ubusmsg.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef __UBUSMSG_H
  2. #define __UBUSMSG_H
  3. #include <stdint.h>
  4. #include <libubox/blob.h>
  5. #define __packetdata __attribute__((packed)) __attribute__((__aligned__(4)))
  6. #define UBUS_MAX_MSGLEN 65535
  7. #define UBUS_SYSTEM_OBJECT_EVENT 1
  8. #define UBUS_SYSTEM_OBJECT_MAX 1024
  9. struct ubus_msghdr {
  10. uint8_t version;
  11. uint8_t type;
  12. uint16_t seq;
  13. uint32_t peer;
  14. struct blob_attr data[];
  15. } __packetdata;
  16. enum ubus_msg_type {
  17. /* initial server message */
  18. UBUS_MSG_HELLO,
  19. /* generic command response */
  20. UBUS_MSG_STATUS,
  21. /* data message response */
  22. UBUS_MSG_DATA,
  23. /* ping request */
  24. UBUS_MSG_PING,
  25. /* look up one or more objects */
  26. UBUS_MSG_LOOKUP,
  27. /* invoke a method on a single object */
  28. UBUS_MSG_INVOKE,
  29. /* publish an object */
  30. UBUS_MSG_PUBLISH,
  31. /* must be last */
  32. __UBUS_MSG_LAST,
  33. };
  34. enum ubus_msg_attr {
  35. UBUS_ATTR_UNSPEC,
  36. UBUS_ATTR_STATUS,
  37. UBUS_ATTR_OBJPATH,
  38. UBUS_ATTR_OBJID,
  39. UBUS_ATTR_METHOD,
  40. UBUS_ATTR_OBJTYPE,
  41. UBUS_ATTR_SIGNATURE,
  42. UBUS_ATTR_DATA,
  43. /* must be last */
  44. UBUS_ATTR_MAX,
  45. };
  46. enum ubus_msg_status {
  47. UBUS_STATUS_OK,
  48. UBUS_STATUS_INVALID_COMMAND,
  49. UBUS_STATUS_INVALID_ARGUMENT,
  50. UBUS_STATUS_METHOD_NOT_FOUND,
  51. UBUS_STATUS_NOT_FOUND,
  52. UBUS_STATUS_NO_DATA,
  53. UBUS_STATUS_PERMISSION_DENIED,
  54. __UBUS_STATUS_LAST
  55. };
  56. #endif