From b3cde3c0db2049a27941af520061742f3be92bbc Mon Sep 17 00:00:00 2001 From: Kristofer Jonsson Date: Thu, 27 Jan 2022 17:30:15 +0100 Subject: Inference begin and end user argument Adding user argument parameter to invoke() which is passed on to the inference_begin() and inference_end() callbacks. Change-Id: I1372767c3a0dbd963aa395911bda7625bc6d6ee4 --- include/ethosu_driver.h | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/ethosu_driver.h b/include/ethosu_driver.h index a7b2bdb..ff8d1eb 100644 --- a/include/ethosu_driver.h +++ b/include/ethosu_driver.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Arm Limited. All rights reserved. + * Copyright (c) 2019-2022 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -109,11 +109,11 @@ void ethosu_semaphore_take(void *sem); void ethosu_semaphore_give(void *sem); /* - * Callbacks for begin/end of inference. inference_data pointer is set in the - * ethosu_invoke() call, referenced as custom_data_ptr. + * Callbacks for begin/end of inference. user_data pointer is passed to the + * ethosu_invoke() call and forwarded to the callback functions. */ -void ethosu_inference_begin(struct ethosu_driver *drv, const void *inference_data); -void ethosu_inference_end(struct ethosu_driver *drv, const void *inference_data); +void ethosu_inference_begin(struct ethosu_driver *drv, void *user_arg); +void ethosu_inference_end(struct ethosu_driver *drv, void *user_arg); /****************************************************************************** * Prototypes @@ -147,12 +147,16 @@ void ethosu_get_hw_info(struct ethosu_driver *drv, struct ethosu_hw_info *hw); /** * Invoke Vela command stream. */ -int ethosu_invoke(struct ethosu_driver *drv, - const void *custom_data_ptr, - const int custom_data_size, - const uint64_t *base_addr, - const size_t *base_addr_size, - const int num_base_addr); +int ethosu_invoke_v3(struct ethosu_driver *drv, + const void *custom_data_ptr, + const int custom_data_size, + const uint64_t *base_addr, + const size_t *base_addr_size, + const int num_base_addr, + void *user_arg); + +#define ethosu_invoke(drv, custom_data_ptr, custom_data_size, base_addr, base_addr_size, num_base_addr) \ + ethosu_invoke_v3(drv, custom_data_ptr, custom_data_size, base_addr, base_addr_size, num_base_addr, 0) /** * Set Ethos-U power mode. @@ -187,7 +191,7 @@ static inline int ethosu_invoke_v2(const void *custom_data_ptr, const int num_base_addr) { struct ethosu_driver *drv = ethosu_reserve_driver(); - int result = ethosu_invoke(drv, custom_data_ptr, custom_data_size, base_addr, base_addr_size, num_base_addr); + int result = ethosu_invoke_v3(drv, custom_data_ptr, custom_data_size, base_addr, base_addr_size, num_base_addr, 0); ethosu_release_driver(drv); return result; } -- cgit v1.2.1