#define KDBUS_MATCH_SRC_ID_ANY (~0ULL)
#define KDBUS_DST_ID_BROADCAST (~0ULL)
+/**
+ * struct kdbus_notify_id_change - name registry change message
+ * @id: New or former owner of the name
+ * @flags: flags field from KDBUS_HELLO_*
+ *
+ * Sent from kernel to userspace when the owner or activator of
+ * a well-known name changes.
+ *
+ * Attached to:
+ * KDBUS_ITEM_ID_ADD
+ * KDBUS_ITEM_ID_REMOVE
+ */
+struct kdbus_notify_id_change {
+ __u64 id;
+ __u64 flags;
+};
+
/**
* struct kdbus_notify_name_change - name registry change message
* @old_id: Former owner of a name
* KDBUS_ITEM_NAME_CHANGE
*/
struct kdbus_notify_name_change {
- __u64 old_id;
- __u64 new_id;
- __u64 old_flags;
- __u64 new_flags;
+ struct kdbus_notify_id_change old;
+ struct kdbus_notify_id_change new;
char name[0];
};
-/**
- * struct kdbus_notify_id_change - name registry change message
- * @id: New or former owner of the name
- * @flags: flags field from KDBUS_HELLO_*
- *
- * Sent from kernel to userspace when the owner or activator of
- * a well-known name changes.
- *
- * Attached to:
- * KDBUS_ITEM_ID_ADD
- * KDBUS_ITEM_ID_REMOVE
- */
-struct kdbus_notify_id_change {
- __u64 id;
- __u64 flags;
-};
-
/**
* struct kdbus_creds - process credentials
* @uid: User ID
kmsg->msg.src_id = KDBUS_SRC_ID_KERNEL;
kmsg->notification_type = type;
kmsg->msg.items[0].type = type;
- kmsg->msg.items[0].name_change.old_id = old_id;
- kmsg->msg.items[0].name_change.old_flags = old_flags;
- kmsg->msg.items[0].name_change.new_id = new_id;
- kmsg->msg.items[0].name_change.new_flags = new_flags;
+ kmsg->msg.items[0].name_change.old.id = old_id;
+ kmsg->msg.items[0].name_change.old.flags = old_flags;
+ kmsg->msg.items[0].name_change.new.id = new_id;
+ kmsg->msg.items[0].name_change.new.flags = new_flags;
strcpy(kmsg->msg.items[0].name_change.name, name);
list_add_tail(&kmsg->queue_entry, queue_list);
case KDBUS_ITEM_NAME_CHANGE:
printf(" +%s (%llu bytes) '%s', old id=%lld, new id=%lld, old_flags=0x%llx new_flags=0x%llx\n",
enum_MSG(item->type), (unsigned long long) item->size,
- item->name_change.name, item->name_change.old_id,
- item->name_change.new_id, item->name_change.old_flags,
- item->name_change.new_flags);
+ item->name_change.name, item->name_change.old.id,
+ item->name_change.new.id, item->name_change.old.flags,
+ item->name_change.new.flags);
break;
case KDBUS_ITEM_ID_ADD: