struct kdbus_memfd {
__u64 size;
int fd;
+ __u32 __pad;
};
/* Message Item Types */
KDBUS_HELLO_STARTER = 1 << 0,
KDBUS_HELLO_ACCEPT_FD = 1 << 1,
- /* The following have an effect on directed messages only --
- * not for broadcasts */
- KDBUS_HELLO_ATTACH_COMM = 1 << 10,
- KDBUS_HELLO_ATTACH_EXE = 1 << 11,
- KDBUS_HELLO_ATTACH_CMDLINE = 1 << 12,
- KDBUS_HELLO_ATTACH_CGROUP = 1 << 13,
- KDBUS_HELLO_ATTACH_CAPS = 1 << 14,
- KDBUS_HELLO_ATTACH_SECLABEL = 1 << 15,
- KDBUS_HELLO_ATTACH_AUDIT = 1 << 16,
+ /* subscription for metadata to attach */
+ KDBUS_HELLO_ATTACH_TIMESTAMP = 1 << 8,
+ KDBUS_HELLO_ATTACH_CREDS = 1 << 9,
+ KDBUS_HELLO_ATTACH_NAMES = 1 << 10,
+ KDBUS_HELLO_ATTACH_COMM = 1 << 11,
+ KDBUS_HELLO_ATTACH_EXE = 1 << 12,
+ KDBUS_HELLO_ATTACH_CMDLINE = 1 << 13,
+ KDBUS_HELLO_ATTACH_CGROUP = 1 << 14,
+ KDBUS_HELLO_ATTACH_CAPS = 1 << 15,
+ KDBUS_HELLO_ATTACH_SECLABEL = 1 << 16,
+ KDBUS_HELLO_ATTACH_AUDIT = 1 << 17,
};
struct kdbus_cmd_hello {
enum {
_KDBUS_MAKE_NULL,
KDBUS_MAKE_NAME,
- KDBUS_MAKE_CGROUP, /* the cgroup hierarchy ID for which to attach
- * cgroup membership paths to messages.
- * FIXME: remove, use *the* hierarchy */
KDBUS_MAKE_CRED, /* allow translator services which connect
* to the bus on behalf of somebody else,
- * allow specifiying the credentials of the
+ * allow specifying the credentials of the
* client to connect on behalf on. Needs
* privileges */
};
char name[0];
};
+enum {
+ KDBUS_NAME_LIST_UNIQUE_NAMES = 1 << 0,
+};
+
struct kdbus_cmd_names {
__u64 size;
+ __u64 flags;
struct kdbus_cmd_name names[0];
};
struct kdbus_cmd_monitor {
__u64 id; /* We allow setting the monitor flag of other peers */
unsigned int enable; /* A boolean to enable/disable monitoring */
+ __u32 __pad;
};
/* FD states:
*/
enum {
/* kdbus control node commands: require unset state */
- KDBUS_CMD_BUS_MAKE = _IOWR(KDBUS_IOC_MAGIC, 0x00, struct kdbus_cmd_bus_make),
- KDBUS_CMD_NS_MAKE = _IOWR(KDBUS_IOC_MAGIC, 0x10, struct kdbus_cmd_ns_make),
+ KDBUS_CMD_BUS_MAKE = _IOW(KDBUS_IOC_MAGIC, 0x00, struct kdbus_cmd_bus_make),
+ KDBUS_CMD_NS_MAKE = _IOR(KDBUS_IOC_MAGIC, 0x10, struct kdbus_cmd_ns_make),
/* kdbus ep node commands: require unset state */
- KDBUS_CMD_EP_MAKE = _IOWR(KDBUS_IOC_MAGIC, 0x20, struct kdbus_cmd_ep_make),
+ KDBUS_CMD_EP_MAKE = _IOW(KDBUS_IOC_MAGIC, 0x20, struct kdbus_cmd_ep_make),
KDBUS_CMD_HELLO = _IOWR(KDBUS_IOC_MAGIC, 0x30, struct kdbus_cmd_hello),
/* kdbus ep node commands: require connected state */
- KDBUS_CMD_MSG_SEND = _IOWR(KDBUS_IOC_MAGIC, 0x40, struct kdbus_msg),
- KDBUS_CMD_MSG_RECV = _IOWR(KDBUS_IOC_MAGIC, 0x41, __u64 *),
- KDBUS_CMD_MSG_RELEASE = _IOWR(KDBUS_IOC_MAGIC, 0x42, __u64 *),
+ KDBUS_CMD_MSG_SEND = _IOW(KDBUS_IOC_MAGIC, 0x40, struct kdbus_msg),
+ KDBUS_CMD_MSG_RECV = _IOR(KDBUS_IOC_MAGIC, 0x41, __u64 *),
+ KDBUS_CMD_MSG_RELEASE = _IOW(KDBUS_IOC_MAGIC, 0x42, __u64 *),
KDBUS_CMD_NAME_ACQUIRE = _IOWR(KDBUS_IOC_MAGIC, 0x50, struct kdbus_cmd_name),
- KDBUS_CMD_NAME_RELEASE = _IOWR(KDBUS_IOC_MAGIC, 0x51, struct kdbus_cmd_name),
+ KDBUS_CMD_NAME_RELEASE = _IOW(KDBUS_IOC_MAGIC, 0x51, struct kdbus_cmd_name),
KDBUS_CMD_NAME_LIST = _IOWR(KDBUS_IOC_MAGIC, 0x52, struct kdbus_cmd_names),
KDBUS_CMD_NAME_QUERY = _IOWR(KDBUS_IOC_MAGIC, 0x53, struct kdbus_cmd_name_info),
- KDBUS_CMD_MATCH_ADD = _IOWR(KDBUS_IOC_MAGIC, 0x60, struct kdbus_cmd_match),
- KDBUS_CMD_MATCH_REMOVE = _IOWR(KDBUS_IOC_MAGIC, 0x61, struct kdbus_cmd_match),
- KDBUS_CMD_MONITOR = _IOWR(KDBUS_IOC_MAGIC, 0x62, struct kdbus_cmd_monitor),
+ KDBUS_CMD_MATCH_ADD = _IOW(KDBUS_IOC_MAGIC, 0x60, struct kdbus_cmd_match),
+ KDBUS_CMD_MATCH_REMOVE = _IOW(KDBUS_IOC_MAGIC, 0x61, struct kdbus_cmd_match),
+ KDBUS_CMD_MONITOR = _IOW(KDBUS_IOC_MAGIC, 0x62, struct kdbus_cmd_monitor),
/* kdbus ep node commands: require ep owner state */
- KDBUS_CMD_EP_POLICY_SET = _IOWR(KDBUS_IOC_MAGIC, 0x70, struct kdbus_cmd_policy),
+ KDBUS_CMD_EP_POLICY_SET = _IOW(KDBUS_IOC_MAGIC, 0x70, struct kdbus_cmd_policy),
/* kdbus memfd commands: */
- KDBUS_CMD_MEMFD_NEW = _IOWR(KDBUS_IOC_MAGIC, 0x80, int *),
- KDBUS_CMD_MEMFD_SIZE_GET = _IOWR(KDBUS_IOC_MAGIC, 0x81, __u64 *),
- KDBUS_CMD_MEMFD_SIZE_SET = _IOWR(KDBUS_IOC_MAGIC, 0x82, __u64 *),
- KDBUS_CMD_MEMFD_SEAL_GET = _IOWR(KDBUS_IOC_MAGIC, 0x83, int *),
- KDBUS_CMD_MEMFD_SEAL_SET = _IOWR(KDBUS_IOC_MAGIC, 0x84, int),
+ KDBUS_CMD_MEMFD_NEW = _IOR(KDBUS_IOC_MAGIC, 0x80, int *),
+ KDBUS_CMD_MEMFD_SIZE_GET = _IOR(KDBUS_IOC_MAGIC, 0x81, __u64 *),
+ KDBUS_CMD_MEMFD_SIZE_SET = _IOW(KDBUS_IOC_MAGIC, 0x82, __u64 *),
+ KDBUS_CMD_MEMFD_SEAL_GET = _IOR(KDBUS_IOC_MAGIC, 0x83, int *),
+ KDBUS_CMD_MEMFD_SEAL_SET = _IO(KDBUS_IOC_MAGIC, 0x84),
};
#endif