aboutsummaryrefslogtreecommitdiff
path: root/include/odp/api/abi-default/rwlock_recursive.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/odp/api/abi-default/rwlock_recursive.h')
-rw-r--r--include/odp/api/abi-default/rwlock_recursive.h34
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