File indexing completed on 2025-05-11 08:24:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 #ifndef _RTEMS_SCORE_STATUS_H
0038 #define _RTEMS_SCORE_STATUS_H
0039
0040 #include <rtems/score/basedefs.h>
0041
0042 #include <errno.h>
0043 #include <pthread.h>
0044
0045 #ifdef __cplusplus
0046 extern "C" {
0047 #endif
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064 typedef enum {
0065 STATUS_CLASSIC_INCORRECT_STATE = 14,
0066 STATUS_CLASSIC_INTERNAL_ERROR = 25,
0067 STATUS_CLASSIC_INVALID_ADDRESS = 9,
0068 STATUS_CLASSIC_INVALID_ID = 4,
0069 STATUS_CLASSIC_INVALID_NAME = 3,
0070 STATUS_CLASSIC_INVALID_NODE = 21,
0071 STATUS_CLASSIC_INVALID_NUMBER = 10,
0072 STATUS_CLASSIC_INVALID_PRIORITY = 19,
0073 STATUS_CLASSIC_INVALID_SIZE = 8,
0074 STATUS_CLASSIC_NO_MEMORY = 26,
0075 STATUS_CLASSIC_NOT_DEFINED = 11,
0076 STATUS_CLASSIC_NOT_OWNER_OF_RESOURCE = 23,
0077 STATUS_CLASSIC_OBJECT_WAS_DELETED = 7,
0078 STATUS_CLASSIC_PROXY_BLOCKING = 29,
0079 STATUS_CLASSIC_RESOURCE_IN_USE = 12,
0080 STATUS_CLASSIC_SUCCESSFUL = 0,
0081 STATUS_CLASSIC_TIMEOUT = 6,
0082 STATUS_CLASSIC_TOO_MANY = 5,
0083 STATUS_CLASSIC_UNSATISFIED = 13
0084 } Status_Classic;
0085
0086
0087
0088
0089
0090
0091 #define STATUS_BUILD( classic_status, posix_status ) \
0092 ( ( ( posix_status ) * 256 ) | ( classic_status ) )
0093
0094
0095
0096
0097 #define STATUS_GET_CLASSIC( status ) \
0098 ( ( status ) & 0xff )
0099
0100
0101
0102
0103
0104
0105 #define STATUS_GET_POSIX( status ) \
0106 ( ( status ) / 256 )
0107
0108
0109
0110
0111 typedef enum {
0112 STATUS_BARRIER_AUTOMATICALLY_RELEASED =
0113 STATUS_BUILD( STATUS_CLASSIC_SUCCESSFUL, PTHREAD_BARRIER_SERIAL_THREAD ),
0114 STATUS_DEADLOCK =
0115 STATUS_BUILD( STATUS_CLASSIC_INCORRECT_STATE, EDEADLK ),
0116 STATUS_FLUSHED =
0117 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EAGAIN ),
0118 STATUS_INCORRECT_STATE =
0119 STATUS_BUILD( STATUS_CLASSIC_INCORRECT_STATE, EINVAL ),
0120 STATUS_INTERRUPTED =
0121 STATUS_BUILD( STATUS_CLASSIC_INTERNAL_ERROR, EINTR ),
0122 STATUS_INTERNAL_ERROR =
0123 STATUS_BUILD( STATUS_CLASSIC_INTERNAL_ERROR, ENOTSUP ),
0124 STATUS_INVALID_ADDRESS =
0125 STATUS_BUILD( STATUS_CLASSIC_INVALID_ADDRESS, EFAULT ),
0126 STATUS_INVALID_ID =
0127 STATUS_BUILD( STATUS_CLASSIC_INVALID_ID, EINVAL ),
0128 STATUS_INVALID_NODE =
0129 STATUS_BUILD( STATUS_CLASSIC_INVALID_NODE, EINVAL ),
0130 STATUS_INVALID_NAME =
0131 STATUS_BUILD( STATUS_CLASSIC_INVALID_NAME, EINVAL ),
0132 STATUS_INVALID_NUMBER =
0133 STATUS_BUILD( STATUS_CLASSIC_INVALID_NUMBER, EINVAL ),
0134 STATUS_INVALID_PRIORITY =
0135 STATUS_BUILD( STATUS_CLASSIC_INVALID_PRIORITY, EINVAL ),
0136 STATUS_INVALID_SIZE =
0137 STATUS_BUILD( STATUS_CLASSIC_INVALID_SIZE, EINVAL ),
0138 STATUS_MAXIMUM_COUNT_EXCEEDED =
0139 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EOVERFLOW ),
0140 STATUS_MESSAGE_INVALID_SIZE =
0141 STATUS_BUILD( STATUS_CLASSIC_INVALID_SIZE, EMSGSIZE ),
0142 STATUS_MESSAGE_QUEUE_INVALID_NUMBER =
0143 STATUS_BUILD( STATUS_CLASSIC_INVALID_NUMBER, ENOSPC ),
0144 STATUS_MESSAGE_QUEUE_INVALID_SIZE =
0145 STATUS_BUILD( STATUS_CLASSIC_INVALID_SIZE, ENOSPC ),
0146 STATUS_MESSAGE_QUEUE_NO_MEMORY =
0147 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, ENOSPC ),
0148 STATUS_MESSAGE_QUEUE_WAIT_IN_ISR =
0149 STATUS_BUILD( STATUS_CLASSIC_INTERNAL_ERROR, EAGAIN ),
0150 STATUS_MESSAGE_QUEUE_WAS_DELETED =
0151 STATUS_BUILD( STATUS_CLASSIC_OBJECT_WAS_DELETED, EBADF ),
0152 STATUS_MINUS_ONE =
0153 -1,
0154 STATUS_MUTEX_CEILING_VIOLATED =
0155 STATUS_BUILD( STATUS_CLASSIC_INVALID_PRIORITY, EINVAL ),
0156 STATUS_NESTING_NOT_ALLOWED =
0157 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EDEADLK ),
0158 STATUS_NO_MEMORY =
0159 STATUS_BUILD( STATUS_CLASSIC_NO_MEMORY, EINVAL ),
0160 STATUS_NOT_DEFINED =
0161 STATUS_BUILD( STATUS_CLASSIC_NOT_DEFINED, EINVAL ),
0162 STATUS_NOT_OWNER =
0163 STATUS_BUILD( STATUS_CLASSIC_NOT_OWNER_OF_RESOURCE, EPERM ),
0164 STATUS_OBJECT_WAS_DELETED =
0165 STATUS_BUILD( STATUS_CLASSIC_OBJECT_WAS_DELETED, EINVAL ),
0166 STATUS_PROXY_BLOCKING =
0167 STATUS_BUILD( STATUS_CLASSIC_PROXY_BLOCKING, EINVAL ),
0168 STATUS_RESOURCE_IN_USE =
0169 STATUS_BUILD( STATUS_CLASSIC_RESOURCE_IN_USE, EBUSY ),
0170 STATUS_RESULT_TOO_LARGE =
0171 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, ERANGE ),
0172 STATUS_SUCCESSFUL =
0173 STATUS_BUILD( STATUS_CLASSIC_SUCCESSFUL, 0 ),
0174 STATUS_TIMEOUT =
0175 STATUS_BUILD( STATUS_CLASSIC_TIMEOUT, ETIMEDOUT ),
0176 STATUS_TOO_MANY =
0177 STATUS_BUILD( STATUS_CLASSIC_TOO_MANY, EAGAIN ),
0178 STATUS_UNAVAILABLE =
0179 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EBUSY ),
0180 STATUS_UNSATISFIED =
0181 STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EAGAIN )
0182 } Status_Control;
0183
0184
0185
0186 #ifdef __cplusplus
0187 }
0188 #endif
0189
0190 #endif