summaryrefslogtreecommitdiffstats
path: root/cpukit/score/inline
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2006-09-25 13:36:58 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2006-09-25 13:36:58 +0000
commit9c191eea63fd6c5511c01186297722e594220032 (patch)
treed5ad903d3005a0c24511851d829e0a00b2c1c53c /cpukit/score/inline
parent2006-09-14 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-9c191eea63fd6c5511c01186297722e594220032.tar.bz2
* score/Makefile.am, score/preinstall.am,
score/include/rtems/score/coresem.h, score/include/rtems/score/object.h, score/include/rtems/score/states.h, score/inline/rtems/score/coresem.inl: Add SuperCore Barriers, SpinLocks and a partial implementation of RWLocks. * score/include/rtems/score/corebarrier.h, score/include/rtems/score/corerwlock.h, score/include/rtems/score/corespinlock.h, score/inline/rtems/score/corebarrier.inl, score/inline/rtems/score/corerwlock.inl, score/inline/rtems/score/corespinlock.inl, score/macros/rtems/score/corebarrier.inl, score/macros/rtems/score/corerwlock.inl, score/macros/rtems/score/corespinlock.inl, score/src/corebarrier.c, score/src/corebarrierrelease.c, score/src/corebarrierwait.c, score/src/corerwlock.c, score/src/corerwlockobtainread.c, score/src/corerwlockobtainwrite.c, score/src/corerwlockrelease.c, score/src/corespinlock.c, score/src/corespinlockrelease.c, score/src/corespinlockwait.c: New files.
Diffstat (limited to 'cpukit/score/inline')
-rw-r--r--cpukit/score/inline/rtems/score/corebarrier.inl62
-rw-r--r--cpukit/score/inline/rtems/score/corerwlock.inl34
-rw-r--r--cpukit/score/inline/rtems/score/coresem.inl4
-rw-r--r--cpukit/score/inline/rtems/score/corespinlock.inl38
4 files changed, 136 insertions, 2 deletions
diff --git a/cpukit/score/inline/rtems/score/corebarrier.inl b/cpukit/score/inline/rtems/score/corebarrier.inl
new file mode 100644
index 0000000000..d8104e7179
--- /dev/null
+++ b/cpukit/score/inline/rtems/score/corebarrier.inl
@@ -0,0 +1,62 @@
+/**
+ * @file rtems/score/corebarrier.inl
+ *
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore barrier.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2006.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_SCORE_COREBARRIER_INL
+#define _RTEMS_SCORE_COREBARRIER_INL
+
+/**
+ * @addtogroup ScoreBarrier
+ * @{
+ */
+
+#include <rtems/score/thread.h>
+#include <rtems/score/threadq.h>
+
+/**
+ * This function returns TRUE if the automatic release attribute is
+ * enabled in the @a attribute_set and FALSE otherwise.
+ *
+ * @param[in] the_attribute is the attribute set to test
+ * @return TRUE if the priority attribute is enabled
+ */
+RTEMS_INLINE_ROUTINE boolean _CORE_barrier_Is_automatic(
+ CORE_barrier_Attributes *the_attribute
+)
+{
+ return
+ (the_attribute->discipline == CORE_BARRIER_AUTOMATIC_RELEASE);
+}
+
+/**
+ * This routine returns the number of threads currently waiting at the barrier.
+ *
+ * @param[in] the_barrier is the barrier to obtain the number of blocked
+ * threads for
+ * @return the current count of this barrier
+ */
+RTEMS_INLINE_ROUTINE uint32_t _CORE_barrier_Get_number_of_waiting_threads(
+ CORE_barrier_Control *the_barrier
+)
+{
+ return the_barrier->number_of_waiting_threads;
+}
+
+/**@}*/
+
+#endif
+/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/corerwlock.inl b/cpukit/score/inline/rtems/score/corerwlock.inl
new file mode 100644
index 0000000000..31ca5f0dc0
--- /dev/null
+++ b/cpukit/score/inline/rtems/score/corerwlock.inl
@@ -0,0 +1,34 @@
+/**
+ * @file rtems/score/coreRWLock.inl
+ *
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore RWLock.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2006.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_SCORE_CORERWLOCK_INL
+#define _RTEMS_SCORE_CORERWLOCK_INL
+
+/**
+ * @addtogroup ScoreRWLock
+ * @{
+ */
+
+#include <rtems/score/thread.h>
+#include <rtems/score/threadq.h>
+
+
+/**@}*/
+
+#endif
+/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/coresem.inl b/cpukit/score/inline/rtems/score/coresem.inl
index c7e6b69605..72b297b489 100644
--- a/cpukit/score/inline/rtems/score/coresem.inl
+++ b/cpukit/score/inline/rtems/score/coresem.inl
@@ -2,7 +2,7 @@
* @file rtems/score/coresem.inl
*
* This include file contains all of the inlined routines associated
- * with the CORE semaphore.
+ * with the SuperCore semaphore.
*/
/*
@@ -29,7 +29,7 @@
/**
* This function returns TRUE if the priority attribute is
- * enabled in the attribute_set and FALSE otherwise.
+ * enabled in the @a attribute_set and FALSE otherwise.
*
* @param[in] the_attribute is the attribute set to test
* @return TRUE if the priority attribute is enabled
diff --git a/cpukit/score/inline/rtems/score/corespinlock.inl b/cpukit/score/inline/rtems/score/corespinlock.inl
new file mode 100644
index 0000000000..e0f3feeec2
--- /dev/null
+++ b/cpukit/score/inline/rtems/score/corespinlock.inl
@@ -0,0 +1,38 @@
+/**
+ * @file rtems/score/corespinlock.inl
+ *
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore spinlock.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2006.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_SCORE_CORESPINLOCK_INL
+#define _RTEMS_SCORE_CORESPINLOCK_INL
+
+/**
+ * @addtogroup ScoreSpinlock
+ * @{
+ */
+
+RTEMS_INLINE_ROUTINE boolean _CORE_spinlock_Is_busy(
+ CORE_spinlock_Control *the_spinlock
+)
+{
+ return (the_spinlock->users != 0);
+}
+
+
+/**@}*/
+
+#endif
+/* end of include file */