chiark / gitweb /
kdbus: update kdbus.h from upstream
[elogind.git] / src / libsystemd-bus / kdbus.h
index a597c87dc788207167d1ccac85f14d0b96b145f9..6d817b8a2bf429b4c999e7a1ecf5db996578f72a 100644 (file)
 struct kdbus_manager_msg_name_change {
        __u64 old_id;
        __u64 new_id;
-       __u64 flags;            /* 0 or (possibly?) KDBUS_CMD_NAME_IN_QUEUE */
+       __u64 flags;                    /* 0 or (possibly?) KDBUS_NAME_IN_QUEUE */
        char name[0];
 };
 
 struct kdbus_manager_msg_id_change {
        __u64 id;
-       __u64 flags; /* The kernel flags field from KDBUS_CMD_HELLO */
+       __u64 flags;                    /* The kernel flags field from KDBUS_HELLO */
 };
 
 struct kdbus_creds {
@@ -144,7 +144,7 @@ enum {
 };
 
 enum {
-       KDBUS_PAYLOAD_NONE,
+       KDBUS_PAYLOAD_NULL,
        KDBUS_PAYLOAD_DBUS1     = 0x4442757356657231ULL, /* 'DBusVer1' */
        KDBUS_PAYLOAD_GVARIANT  = 0x4756617269616e74ULL, /* 'GVariant' */
 };
@@ -163,10 +163,10 @@ enum {
 struct kdbus_msg {
        __u64 size;
        __u64 flags;
-       __u64 dst_id;           /* connection, 0 == name in data, ~0 broadcast */
-       __u64 src_id;           /* connection, 0 == kernel */
-       __u64 payload_type;     /* 'DBusVer1', 'GVariant', ... */
-       __u64 cookie;           /* userspace-supplied cookie */
+       __u64 dst_id;                   /* connection, 0 == name in data, ~0 broadcast */
+       __u64 src_id;                   /* connection, 0 == kernel */
+       __u64 payload_type;             /* 'DBusVer1', 'GVariant', ... */
+       __u64 cookie;                   /* userspace-supplied cookie */
        union {
                __u64 cookie_reply;     /* cookie we reply to */
                __u64 timeout_ns;       /* timespan to wait for reply */
@@ -208,50 +208,32 @@ struct kdbus_policy {
 
 struct kdbus_cmd_policy {
        __u64 size;
-       __u8 buffer[0]; /* a series of KDBUS_POLICY_NAME plus one or
-                        * more KDBUS_POLICY_ACCESS each. */
+       __u8 buffer[0];         /* a series of KDBUS_POLICY_NAME plus one or
+                                * more KDBUS_POLICY_ACCESS each. */
 };
 
+/* Flags for struct kdbus_cmd_hello */
 enum {
-       KDBUS_CMD_HELLO_STARTER         =  1 <<  0,
-       KDBUS_CMD_HELLO_ACCEPT_FD       =  1 <<  1,
+       KDBUS_HELLO_STARTER             =  1 <<  0,
+       KDBUS_HELLO_ACCEPT_FD           =  1 <<  1,
 
        /* The following have an effect on directed messages only --
         * not for broadcasts */
-       KDBUS_CMD_HELLO_ATTACH_COMM     =  1 << 10,
-       KDBUS_CMD_HELLO_ATTACH_EXE      =  1 << 11,
-       KDBUS_CMD_HELLO_ATTACH_CMDLINE  =  1 << 12,
-       KDBUS_CMD_HELLO_ATTACH_CGROUP   =  1 << 13,
-       KDBUS_CMD_HELLO_ATTACH_CAPS     =  1 << 14,
-       KDBUS_CMD_HELLO_ATTACH_SECLABEL =  1 << 15,
-       KDBUS_CMD_HELLO_ATTACH_AUDIT    =  1 << 16,
+       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,
 };
 
-/* Flags for kdbus_cmd_bus_make, kdbus_cmd_ep_make and
- * kdbus_cmd_ns_make */
+/* Items to append to struct kdbus_cmd_hello */
 enum {
-       KDBUS_ACCESS_GROUP              = 1 <<  0,
-       KDBUS_ACCESS_WORLD              = 1 <<  1,
-       KDBUS_POLICY_OPEN               = 1 <<  2,
+       KDBUS_HELLO_NULL,
 };
 
-/* Items to append to kdbus_cmd_bus_make, kdbus_cmd_ep_make and
- * kdbus_cmd_ns_make */
-
-enum {
-       KDBUS_CMD_MAKE_NONE,
-       KDBUS_CMD_MAKE_NAME,
-       KDBUS_CMD_MAKE_CGROUP,  /* the cgroup hierarchy ID for which to attach
-                                * cgroup membership paths * to messages. */
-       KDBUS_CMD_MAKE_CRED,    /* allow translator services which connect
-                                * to the bus on behalf of somebody else,
-                                * allow specifiying the credentials of the
-                                * client to connect on behalf on. Needs
-                                * privileges */
-
-};
-
-struct kdbus_cmd_make_item {
+struct kdbus_cmd_hello_item {
        __u64 size;
        __u64 type;
        union {
@@ -270,7 +252,7 @@ struct kdbus_cmd_hello {
                                 * returns its capabilites and
                                 * more. Kernel might refuse client's
                                 * capabilities by returning an error
-                                * from KDBUS_CMD_HELLO */
+                                * from KDBUS_HELLO */
 
        /* kernel → userspace */
        __u64 bus_flags;        /* this is .flags copied verbatim from
@@ -281,7 +263,37 @@ struct kdbus_cmd_hello {
        __u64 id;               /* id assigned to this connection */
        __u64 bloom_size;       /* The bloom filter size chosen by the
                                 * bus owner */
-       struct kdbus_cmd_make_item items[0];
+       struct kdbus_cmd_hello_item items[0];
+};
+
+/* Flags for kdbus_cmd_{bus,ep,ns}_make */
+enum {
+       KDBUS_MAKE_ACCESS_GROUP         = 1 <<  0,
+       KDBUS_MAKE_ACCESS_WORLD         = 1 <<  1,
+       KDBUS_MAKE_POLICY_OPEN          = 1 <<  2,
+};
+
+/* Items to append to kdbus_cmd_{bus,ep,ns}_make */
+enum {
+       KDBUS_MAKE_NULL,
+       KDBUS_MAKE_NAME,
+       KDBUS_MAKE_CGROUP,      /* the cgroup hierarchy ID for which to attach
+                                * cgroup membership paths * to messages. */
+       KDBUS_MAKE_CRED,        /* allow translator services which connect
+                                * to the bus on behalf of somebody else,
+                                * allow specifiying the credentials of the
+                                * client to connect on behalf on. Needs
+                                * privileges */
+};
+
+struct kdbus_cmd_make_item {
+       __u64 size;
+       __u64 type;
+       union {
+               __u8 data[0];
+               __u64 data64[0];
+               char str[0];
+       };
 };
 
 struct kdbus_cmd_bus_make {
@@ -323,12 +335,12 @@ struct kdbus_cmd_ns_make {
 
 enum {
        /* userspace → kernel */
-       KDBUS_CMD_NAME_REPLACE_EXISTING         = 1 <<  0,
-       KDBUS_CMD_NAME_QUEUE                    = 1 <<  1,
-       KDBUS_CMD_NAME_ALLOW_REPLACEMENT        = 1 <<  2,
+       KDBUS_NAME_REPLACE_EXISTING             = 1 <<  0,
+       KDBUS_NAME_QUEUE                        = 1 <<  1,
+       KDBUS_NAME_ALLOW_REPLACEMENT            = 1 <<  2,
 
        /* kernel → userspace */
-       KDBUS_CMD_NAME_IN_QUEUE                 = 1 << 16,
+       KDBUS_NAME_IN_QUEUE                     = 1 << 16,
 };
 
 struct kdbus_cmd_name {
@@ -345,10 +357,10 @@ struct kdbus_cmd_names {
 };
 
 enum {
-       KDBUS_CMD_NAME_INFO_ITEM_NULL,
-       KDBUS_CMD_NAME_INFO_ITEM_NAME,          /* userspace → kernel */
-       KDBUS_CMD_NAME_INFO_ITEM_SECLABEL,      /* kernel → userspace */
-       KDBUS_CMD_NAME_INFO_ITEM_AUDIT,         /* kernel → userspace */
+       KDBUS_NAME_INFO_ITEM_NULL,
+       KDBUS_NAME_INFO_ITEM_NAME,      /* userspace → kernel */
+       KDBUS_NAME_INFO_ITEM_SECLABEL,  /* kernel → userspace */
+       KDBUS_NAME_INFO_ITEM_AUDIT,     /* kernel → userspace */
 };
 
 struct kdbus_cmd_name_info_item {
@@ -366,14 +378,14 @@ struct kdbus_cmd_name_info {
 };
 
 enum {
-       KDBUS_CMD_MATCH_NULL,
-       KDBUS_CMD_MATCH_BLOOM,          /* Matches a mask blob against KDBUS_MSG_BLOOM */
-       KDBUS_CMD_MATCH_SRC_NAME,       /* Matches a name string against KDBUS_MSG_SRC_NAMES */
-       KDBUS_CMD_MATCH_NAME_ADD,       /* Matches a name string against KDBUS_MSG_NAME_ADD */
-       KDBUS_CMD_MATCH_NAME_REMOVE,    /* Matches a name string against KDBUS_MSG_NAME_REMOVE */
-       KDBUS_CMD_MATCH_NAME_CHANGE,    /* Matches a name string against KDBUS_MSG_NAME_CHANGE */
-       KDBUS_CMD_MATCH_ID_ADD,         /* Matches an ID against KDBUS_MSG_ID_ADD */
-       KDBUS_CMD_MATCH_ID_REMOVE,      /* Matches an ID against KDBUS_MSG_ID_REMOVE */
+       KDBUS_MATCH_NULL,
+       KDBUS_MATCH_BLOOM,              /* Matches a mask blob against KDBUS_MSG_BLOOM */
+       KDBUS_MATCH_SRC_NAME,           /* Matches a name string against KDBUS_MSG_SRC_NAMES */
+       KDBUS_MATCH_NAME_ADD,           /* Matches a name string against KDBUS_MSG_NAME_ADD */
+       KDBUS_MATCH_NAME_REMOVE,        /* Matches a name string against KDBUS_MSG_NAME_REMOVE */
+       KDBUS_MATCH_NAME_CHANGE,        /* Matches a name string against KDBUS_MSG_NAME_CHANGE */
+       KDBUS_MATCH_ID_ADD,             /* Matches an ID against KDBUS_MSG_ID_ADD */
+       KDBUS_MATCH_ID_REMOVE,          /* Matches an ID against KDBUS_MSG_ID_REMOVE */
 };
 
 struct kdbus_cmd_match_item {