1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-17 18:43:50 +01:00
2025-09-12 11:25:41 +02:00

59 lines
1.2 KiB
C

/*
* SPDX-FileCopyrightText: 2022 Gunar Schorcht
* SPDX-License-Identifier: LGPL-2.1-only
*/
#pragma once
/**
* @ingroup cpu_esp32
* @{
*
* @file
* @brief Wrapper for sys/lock.h
*
* @author Gunar Schorcht <gunar@schorcht.net>
*
* This file is a wrapper for sys/lock.h to ensure source code compatibility
* even if retargetable locking is enabled in newlib.
*/
#ifndef DOXYGEN
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(_RETARGETABLE_LOCKING)
typedef void * _lock_t;
#define _LOCK_T _lock_t
#define _LOCK_RECURSIVE_T _lock_t
void _lock_init(_lock_t *lock);
void _lock_init_recursive(_lock_t *lock);
void _lock_close(_lock_t *lock);
void _lock_close_recursive(_lock_t *lock);
void _lock_acquire(_lock_t *lock);
void _lock_acquire_recursive(_lock_t *lock);
int _lock_try_acquire(_lock_t *lock);
int _lock_try_acquire_recursive(_lock_t *lock);
void _lock_release(_lock_t *lock);
void _lock_release_recursive(_lock_t *lock);
#else /* !defined(_RETARGETABLE_LOCKING) */
#include_next <sys/lock.h>
#endif /* !defined(_RETARGETABLE_LOCKING) */
#ifdef __cplusplus
}
#endif
#endif /* DOXYGEN */
/** @} */