From 5870ac55678115857215a4199f519263599ee341 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 5 Jan 2000 22:19:21 +0000 Subject: 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 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. --- cpukit/rtems/include/rtems/rtems/attr.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'cpukit/rtems/include/rtems/rtems/attr.h') 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 -- cgit v1.2.3