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>
diff --git a/mbox.h b/mbox.h
index 67d5622..7ae002b 100644
--- a/mbox.h
+++ b/mbox.h
@@ -118,6 +118,21 @@
 	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 @@
 	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;