aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/include/odp/plat/rwlock_recursive_types.h')
-rw-r--r--platform/linux-generic/include/odp/plat/rwlock_recursive_types.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h b/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h
new file mode 100644
index 000000000..474751cf0
--- /dev/null
+++ b/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h
@@ -0,0 +1,38 @@
+/* Copyright (c) 2015, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP recursive read/write lock
+ */
+
+#ifndef ODP_RWLOCK_RECURSIVE_TYPES_H_
+#define ODP_RWLOCK_RECURSIVE_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/rwlock.h>
+#include <odp/std_types.h>
+#include <odp/thread.h>
+
+/** @internal */
+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 */
+};
+
+typedef struct odp_rwlock_recursive_s odp_rwlock_recursive_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif