From d663f1b1a92a778bcdc68f29b8c08cb49431b4f7 Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Mon, 6 Oct 2014 18:36:16 +0200 Subject: sd-bus: sync kdbus.h (ABI break) The KDBUS_CMD_FREE ioctl now uses a struct rather than a direct pointer to the offset to free. The KDBUS_CMD_MSG_CANCEL ioctl has also changes, but there's no user of it yet in systemd. --- src/libsystemd/sd-bus/bus-control.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/libsystemd/sd-bus/bus-control.c') diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index d9a53c702f..dbd94fc46b 100644 --- a/src/libsystemd/sd-bus/bus-control.c +++ b/src/libsystemd/sd-bus/bus-control.c @@ -223,6 +223,23 @@ _public_ int sd_bus_release_name(sd_bus *bus, const char *name) { return bus_release_name_dbus1(bus, name); } +static int kernel_cmd_free(sd_bus *bus, uint64_t offset) +{ + struct kdbus_cmd_free cmd; + int r; + + assert(bus); + + cmd.flags = 0; + cmd.offset = offset; + + r = ioctl(bus->input_fd, KDBUS_CMD_FREE, &cmd); + if (r < 0) + return -errno; + + return 0; +} + static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) { struct kdbus_cmd_name_list cmd = {}; struct kdbus_name_list *name_list; @@ -269,9 +286,9 @@ static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) { } } - r = ioctl(bus->input_fd, KDBUS_CMD_FREE, &cmd.offset); + r = kernel_cmd_free(bus, cmd.offset); if (r < 0) - return -errno; + return r; return 0; } @@ -597,7 +614,7 @@ static int bus_get_owner_kdbus( r = 0; fail: - ioctl(bus->input_fd, KDBUS_CMD_FREE, &cmd->offset); + kernel_cmd_free(bus, cmd->offset); return r; } -- cgit v1.2.3-54-g00ecf