From 7c24c770be3b3e25822cf7c45619ee20ed61c172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonny=20Sv=C3=A4rd?= Date: Thu, 14 Jan 2021 19:53:17 +0100 Subject: Improve mailbox message handling Introduce a 32b magic for each message. Verify the magic for all incoming messages. Add reset function - in case of protocol error, effectively reset/empty the incoming queue. Add an error message type and message Add version request/response Verify payload length of responses (when applicable) Change-Id: I8aadd4012024492533d52e2cdb38630fce5c36e2 --- kernel/ethosu_mailbox.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'kernel/ethosu_mailbox.h') diff --git a/kernel/ethosu_mailbox.h b/kernel/ethosu_mailbox.h index 8f539ee..0bc5ffb 100644 --- a/kernel/ethosu_mailbox.h +++ b/kernel/ethosu_mailbox.h @@ -24,6 +24,7 @@ /**************************************************************************** * Includes ****************************************************************************/ +#include "ethosu_core_interface.h" #include #include @@ -86,6 +87,11 @@ int ethosu_mailbox_read(struct ethosu_mailbox *mbox, void *data, size_t length); +/** + * ethosu_mailbox_reset() - Reset to end of queue + */ +void ethosu_mailbox_reset(struct ethosu_mailbox *mbox); + /** * ethosu_mailbox_ping() - Send ping message * @@ -93,6 +99,20 @@ int ethosu_mailbox_read(struct ethosu_mailbox *mbox, */ int ethosu_mailbox_ping(struct ethosu_mailbox *mbox); +/** + * ethosu_mailbox_pong() - Send pong response + * + * Return: 0 on success, else error code. + */ +int ethosu_mailbox_pong(struct ethosu_mailbox *mbox); + +/** + * ethosu_mailbox_version_response - Send version request + * + * Return: 0 on succes, else error code + */ +int ethosu_mailbox_version_request(struct ethosu_mailbox *mbox); + /** * ethosu_mailbox_inference() - Send inference * -- cgit v1.2.1