diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-23 13:37:59 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-26 21:44:31 +0200 |
commit | dce487912d98835b8168e755b60514f5a8592b27 (patch) | |
tree | 8778547fbb0f2dbb07bb6a83f28d3f4464924141 /cpukit/score/include/rtems/score/mrsp.h | |
parent | posix: Fix sem_init() with too large initial value (diff) | |
download | rtems-dce487912d98835b8168e755b60514f5a8592b27.tar.bz2 |
score: Add Status_Control for all APIs
Unify the status codes of the Classic and POSIX API to use the new enum
Status_Control. This eliminates the Thread_Control::Wait::timeout_code
field and the timeout parameter of _Thread_queue_Enqueue_critical() and
_MPCI_Send_request_packet(). It gets rid of the status code translation
tables and instead uses simple bit operations to get the status for a
particular API. This enables translation of status code constants at
compile time. Add _Thread_Wait_get_status() to avoid direct access of
thread internal data structures.
Diffstat (limited to 'cpukit/score/include/rtems/score/mrsp.h')
-rw-r--r-- | cpukit/score/include/rtems/score/mrsp.h | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/cpukit/score/include/rtems/score/mrsp.h b/cpukit/score/include/rtems/score/mrsp.h index cb3de67e26..595884864f 100644 --- a/cpukit/score/include/rtems/score/mrsp.h +++ b/cpukit/score/include/rtems/score/mrsp.h @@ -51,31 +51,6 @@ extern "C" { * @{ */ -/** - * @brief MrsP status code. - * - * The values are chosen to directly map to RTEMS status codes. In case this - * implementation is used for other APIs, then for example the errno values can - * be added with a bit shift. - */ -typedef enum { - MRSP_SUCCESSFUL = 0, - MRSP_TIMEOUT = 6, - MRSP_INVALID_NUMBER = 10, - MRSP_RESOUCE_IN_USE = 12, - MRSP_UNSATISFIED = 13, - MRSP_INCORRECT_STATE = 14, - MRSP_INVALID_PRIORITY = 19, - MRSP_NOT_OWNER_OF_RESOURCE = 23, - MRSP_NO_MEMORY = 26, - - /** - * @brief Internal state used for MRSP_Rival::status to indicate that this - * rival waits for resource ownership. - */ - MRSP_WAIT_FOR_OWNERSHIP = 255 -} MRSP_Status; - typedef struct MRSP_Control MRSP_Control; /** @@ -124,10 +99,10 @@ typedef struct { * @brief The rival status. * * Initially the status is set to MRSP_WAIT_FOR_OWNERSHIP. The rival will - * busy wait until a status change happens. This can be MRSP_SUCCESSFUL or - * MRSP_TIMEOUT. State changes are protected by the MrsP control lock. + * busy wait until a status change happens. This can be STATUS_SUCCESSFUL or + * STATUS_TIMEOUT. State changes are protected by the MrsP control lock. */ - volatile MRSP_Status status; + volatile int status; /** * @brief Watchdog for timeouts. |