From 39ef89bd41150b76ab6b2634065f2fa656036295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonny=20Sv=C3=A4rd?= Date: Wed, 17 Apr 2024 18:07:01 +0200 Subject: Add missing mutex/semaphore destroy overrides MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Override NPU driver weak function prototypes to properly free up resources after use. Change-Id: I4f3141d6106e5feeb1523452ca5fe2dbe66903be Signed-off-by: Jonny Svärd --- applications/message_handler_openamp/core_driver_mutex.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/applications/message_handler_openamp/core_driver_mutex.cpp b/applications/message_handler_openamp/core_driver_mutex.cpp index 7948bd0..5f2e6cc 100644 --- a/applications/message_handler_openamp/core_driver_mutex.cpp +++ b/applications/message_handler_openamp/core_driver_mutex.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its affiliates + * SPDX-FileCopyrightText: Copyright 2022-2024 Arm Limited and/or its affiliates * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may @@ -24,11 +24,15 @@ #include extern "C" { - void *ethosu_mutex_create(void) { return xSemaphoreCreateMutex(); } +void ethosu_mutex_destroy(void *mutex) { + SemaphoreHandle_t handle = reinterpret_cast(mutex); + vSemaphoreDelete(handle); +} + int ethosu_mutex_lock(void *mutex) { SemaphoreHandle_t handle = reinterpret_cast(mutex); if (xSemaphoreTake(handle, portMAX_DELAY) != pdTRUE) { @@ -51,6 +55,11 @@ void *ethosu_semaphore_create(void) { return xSemaphoreCreateCounting(255, 0); } +void ethosu_semaphore_destroy(void *sem) { + SemaphoreHandle_t handle = reinterpret_cast(sem); + vSemaphoreDelete(handle); +} + int ethosu_semaphore_take(void *sem, uint64_t timeout) { SemaphoreHandle_t handle = reinterpret_cast(sem); if (xSemaphoreTake(handle, (TickType_t)timeout) != pdTRUE) { -- cgit v1.2.1