summaryrefslogtreecommitdiffstats
path: root/mbox.h
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2018-03-26 14:36:43 +1030
committerAndrew Jeffery <andrew@aj.id.au>2018-04-04 17:27:31 +0930
commitefb09def5e21959972adde9f5c092f1840eff908 (patch)
treec8509e238395315024124c63ced2cf31de00f6be /mbox.h
parent30bcf84c932a579532e5f8417af549494e11b6e9 (diff)
downloadphosphor-mboxd-efb09def5e21959972adde9f5c092f1840eff908.tar.gz
phosphor-mboxd-efb09def5e21959972adde9f5c092f1840eff908.zip
mbox_msg: Move handler table to struct mbox_context
This allows us to provide alternative implementations for the handlers as necessary. The vpnor feature, which enforces the read-only property of FFS partitions, requires this for handling CREATE_WRITE_WINDOW. Change-Id: Ia969a6f085244b194c500e66b62adca5e10bacba Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Diffstat (limited to 'mbox.h')
-rw-r--r--mbox.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/mbox.h b/mbox.h
index 67d5622..7ae002b 100644
--- a/mbox.h
+++ b/mbox.h
@@ -118,6 +118,21 @@ struct window_list {
struct window_context *window;
};
+struct mbox_msg {
+ uint8_t command;
+ uint8_t seq;
+ uint8_t args[MBOX_ARGS_BYTES];
+ uint8_t response;
+};
+
+union mbox_regs {
+ uint8_t raw[MBOX_REG_BYTES];
+ struct mbox_msg msg;
+};
+
+typedef int (*mboxd_mbox_handler)(struct mbox_context *, union mbox_regs *,
+ struct mbox_msg *);
+
struct mbox_context {
/* System State */
enum mbox_state state;
@@ -128,6 +143,9 @@ struct mbox_context {
uint8_t bmc_events;
uint8_t prev_seq;
+/* Command Dispatch */
+ const mboxd_mbox_handler *handlers;
+
/* Window State */
/* The window list struct containing all current "windows" */
struct window_list windows;
OpenPOWER on IntegriCloud