diff options
author | Andrew Jeffery <andrew@aj.id.au> | 2018-08-23 21:43:44 +0930 |
---|---|---|
committer | Andrew Jeffery <andrew@aj.id.au> | 2018-09-14 16:52:34 +0930 |
commit | 0e785f43c5640b4a5d452f5618363be50bc88eb3 (patch) | |
tree | d442f9a82081bca59f59dea31f5f3e466ec7a3f7 | |
parent | b9d72d0ff49cdfb05ceab445a5936f996aa3979f (diff) | |
download | phosphor-mboxbridge-0e785f43c5640b4a5d452f5618363be50bc88eb3.tar.gz phosphor-mboxbridge-0e785f43c5640b4a5d452f5618363be50bc88eb3.zip |
transport: dbus: Implement create_write_window
Change-Id: I85b318cae135cfe8203cb01c54ab4872fcc947c0
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
-rw-r--r-- | transport_dbus.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/transport_dbus.c b/transport_dbus.c index 19b71c7..7443975 100644 --- a/transport_dbus.c +++ b/transport_dbus.c @@ -214,10 +214,11 @@ static int transport_dbus_get_flash_info(sd_bus_message *m, void *userdata, return sd_bus_send(NULL, n, NULL); } -static int transport_dbus_create_read_window(sd_bus_message *m, void *userdata, - sd_bus_error *ret_error) +static int transport_dbus_create_window(struct mbox_context *context, + bool ro, + sd_bus_message *m, + sd_bus_error *ret_error) { - struct mbox_context *context = userdata; struct protocol_create_window io; sd_bus_message *n; int rc; @@ -233,7 +234,7 @@ static int transport_dbus_create_read_window(sd_bus_message *m, void *userdata, return rc; } - io.req.ro = true; + io.req.ro = ro; rc = context->protocol->create_window(context, &io); if (rc < 0) { return rc; @@ -257,6 +258,22 @@ static int transport_dbus_create_read_window(sd_bus_message *m, void *userdata, return sd_bus_send(NULL, n, NULL); } +static int transport_dbus_create_read_window(sd_bus_message *m, void *userdata, + sd_bus_error *ret_error) +{ + struct mbox_context *context = userdata; + + return transport_dbus_create_window(context, true, m, ret_error); +} + +static int transport_dbus_create_write_window(sd_bus_message *m, void *userdata, + sd_bus_error *ret_error) +{ + struct mbox_context *context = userdata; + + return transport_dbus_create_window(context, false, m, ret_error); +} + static int transport_dbus_ack(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { @@ -339,6 +356,9 @@ static const sd_bus_vtable protocol_v2_vtable[] = { SD_BUS_METHOD("CreateReadWindow", "qq", "qqq", &transport_dbus_create_read_window, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("CreateWriteWindow", "qq", "qqq", + &transport_dbus_create_write_window, + SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_METHOD("Ack", "y", NULL, &transport_dbus_ack, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_PROPERTY("FlashControlLost", "b", transport_dbus_get_property, |