tf-m: Implement os_wrapper_is_kernel_started

Implement the TF-M kernel-started hook (new in TF-M 2.3.0) using
xTaskGetSchedulerState(). Treat a suspended scheduler as started, since
the kernel has already been initialised.

Guard the hook with the same configuration condition as
xTaskGetSchedulerState() so configurations without that API continue
to build.

Signed-off-by: Wilfried Chauveau <wilfried.chauveau@arm.com>
This commit is contained in:
Wilfried Chauveau 2026-09-22 20:14:30 +01:00
parent 8be86d4a24
commit 22ec5399ec
No known key found for this signature in database
GPG key ID: FD66024FC8A1D433

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2019-2024, Arm Limited. All rights reserved. * Copyright 2019-2024,2026 Arm Limited and/or its affiliates <open-source-office@arm.com>
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -28,9 +28,12 @@
* The implementation is based on FreeRTOS mutex type semaphore. * The implementation is based on FreeRTOS mutex type semaphore.
*/ */
#include <stdbool.h>
#include "os_wrapper/mutex.h" #include "os_wrapper/mutex.h"
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h"
#include "semphr.h" #include "semphr.h"
#include "mpu_wrappers.h" #include "mpu_wrappers.h"
@ -43,6 +46,13 @@
StaticSemaphore_t xSecureMutexBuffer; StaticSemaphore_t xSecureMutexBuffer;
#endif #endif
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
bool os_wrapper_is_kernel_started( void )
{
return xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED;
}
#endif
void * os_wrapper_mutex_create( void ) void * os_wrapper_mutex_create( void )
{ {
SemaphoreHandle_t xMutexHandle = NULL; SemaphoreHandle_t xMutexHandle = NULL;