diff options
author | Andrew Jeffery <andrew@aj.id.au> | 2018-03-26 14:36:43 +1030 |
---|---|---|
committer | Andrew Jeffery <andrew@aj.id.au> | 2018-04-04 17:27:31 +0930 |
commit | efb09def5e21959972adde9f5c092f1840eff908 (patch) | |
tree | c8509e238395315024124c63ced2cf31de00f6be /mbox.h | |
parent | 30bcf84c932a579532e5f8417af549494e11b6e9 (diff) | |
download | phosphor-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.h | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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; |