diff options
Diffstat (limited to 'include/odp/api/abi-default/rwlock_recursive.h')
-rw-r--r-- | include/odp/api/abi-default/rwlock_recursive.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/odp/api/abi-default/rwlock_recursive.h b/include/odp/api/abi-default/rwlock_recursive.h new file mode 100644 index 000000000..eb5c000c0 --- /dev/null +++ b/include/odp/api/abi-default/rwlock_recursive.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2015-2018 Linaro Limited + */ + +/** + * @file + * + * ODP recursive read/write lock + */ + +#ifndef ODP_ABI_RWLOCK_RECURSIVE_H_ +#define ODP_ABI_RWLOCK_RECURSIVE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <odp/api/rwlock.h> +#include <odp/api/std_types.h> +#include <odp/api/thread.h> + +/** @internal */ +typedef struct odp_rwlock_recursive_s { + odp_rwlock_t lock; /**< the lock */ + int wr_owner; /**< write owner thread */ + uint32_t wr_cnt; /**< write recursion count */ + uint8_t rd_cnt[ODP_THREAD_COUNT_MAX]; /**< read recursion count */ +} odp_rwlock_recursive_t; + +#ifdef __cplusplus +} +#endif + +#endif |