summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/include/rtems/rtems/attr.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-05 22:19:21 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-01-05 22:19:21 +0000
commit5870ac55678115857215a4199f519263599ee341 (patch)
tree8b6f044ae7cccc3da9a3bd69b2468c2ca77acff8 /cpukit/rtems/include/rtems/rtems/attr.h
parentUpdated to reflect a time that had previously been left out due to (diff)
downloadrtems-5870ac55678115857215a4199f519263599ee341.tar.bz2
Added support for simple binary semaphores in addition to the high
power binary/mutex style semaphores already supported by RTEMS. This was done at the request of Eric Norum <eric@cls.usask.ca> in support of his effort to port EPICS to RTEMS. This change consisted of changing the nesting_allowed boolean into a lock_nesting_behavior enumerated value as well as allowing the core mutex object to optionally support ensuring that the holder of a binary semaphore released it. Finally, a more subtle enhancement was to allow the non-holder to release a priority inheritance/ceiling mutex and still allow the holding task to return to its original priority.
Diffstat (limited to 'cpukit/rtems/include/rtems/rtems/attr.h')
-rw-r--r--cpukit/rtems/include/rtems/rtems/attr.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/cpukit/rtems/include/rtems/rtems/attr.h b/cpukit/rtems/include/rtems/rtems/attr.h
index 20d8eebe01..b054bd6684 100644
--- a/cpukit/rtems/include/rtems/rtems/attr.h
+++ b/cpukit/rtems/include/rtems/rtems/attr.h
@@ -37,17 +37,16 @@ typedef unsigned32 rtems_attribute;
#define RTEMS_FIFO 0x00000000 /* process RTEMS_FIFO */
#define RTEMS_PRIORITY 0x00000004 /* process by priority */
-#define RTEMS_COUNTING_SEMAPHORE 0x00000000
-#define RTEMS_BINARY_SEMAPHORE 0x00000010
+#define RTEMS_SEMAPHORE_CLASS 0x00000030 /* mask */
+#define RTEMS_COUNTING_SEMAPHORE 0x00000000
+#define RTEMS_BINARY_SEMAPHORE 0x00000010
+#define RTEMS_SIMPLE_BINARY_SEMAPHORE 0x00000020
#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
-#define RTEMS_INHERIT_PRIORITY 0x00000020
+#define RTEMS_INHERIT_PRIORITY 0x00000040
#define RTEMS_NO_PRIORITY_CEILING 0x00000000
-#define RTEMS_PRIORITY_CEILING 0x00000040
-
-#define RTEMS_NESTING_ALLOWED 0x00000000
-#define RTEMS_NO_NESTING_ALLOWED 0x00000080
+#define RTEMS_PRIORITY_CEILING 0x00000080
#define RTEMS_APPLICATION_TASK 0x00000000
#define RTEMS_SYSTEM_TASK 0x00000100