summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2018-08-23 21:43:44 +0930
committerAndrew Jeffery <andrew@aj.id.au>2018-09-14 16:52:34 +0930
commit0e785f43c5640b4a5d452f5618363be50bc88eb3 (patch)
treed442f9a82081bca59f59dea31f5f3e466ec7a3f7
parentb9d72d0ff49cdfb05ceab445a5936f996aa3979f (diff)
downloadphosphor-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.c28
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,
OpenPOWER on IntegriCloud