Changeset 1a8fde6c in rtems
- Timestamp:
- 03/06/96 21:34:57 (28 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- e6424462
- Parents:
- 8e76546
- Files:
-
- 238 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/libcsupport/src/newlibc.c
r8e76546 r1a8fde6c 40 40 */ 41 41 42 #define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 42 43 #include <rtems.h> 43 44 #include <libcsupport.h> -
c/src/exec/rtems/headers/asr.h
r8e76546 r1a8fde6c 101 101 #define RTEMS_SIGNAL_31 0x80000000 102 102 103 /* 104 * _ASR_Initialize 105 * 106 * DESCRIPTION: 107 * 108 * This routine initializes the given RTEMS_ASR information record. 109 */ 110 111 STATIC INLINE void _ASR_Initialize ( 112 ASR_Information *information 113 ); 114 115 /* 116 * _ASR_Swap_signals 117 * 118 * DESCRIPTION: 119 * 120 * This routine atomically swaps the pending and posted signal 121 * sets. This is done when the thread alters its mode in such a 122 * way that the RTEMS_ASR disable/enable flag changes. 123 */ 124 125 STATIC INLINE void _ASR_Swap_signals ( 126 ASR_Information *information 127 ); 128 129 /* 130 * _ASR_Is_null_handler 131 * 132 * DESCRIPTION: 133 * 134 * This function returns TRUE if the given asr_handler is NULL and 135 * FALSE otherwise. 136 */ 137 138 STATIC INLINE boolean _ASR_Is_null_handler ( 139 rtems_asr_entry asr_handler 140 ); 141 142 /* 143 * _ASR_Are_signals_pending 144 * 145 * DESCRIPTION: 146 * 147 * This function returns TRUE if there are signals pending in the 148 * given RTEMS_ASR information record and FALSE otherwise. 149 */ 150 151 STATIC INLINE boolean _ASR_Are_signals_pending ( 152 ASR_Information *information 153 ); 154 155 /* 156 * _ASR_Post_signals 157 * 158 * DESCRIPTION: 159 * 160 * This routine posts the given signals into the signal_set 161 * passed in. The result is returned to the user in signal_set. 162 * 163 * NOTE: This must be implemented as a macro. 164 */ 165 166 STATIC INLINE void _ASR_Post_signals( 167 rtems_signal_set signals, 168 rtems_signal_set *signal_set 169 ); 170 103 #ifndef __RTEMS_APPLICATION__ 171 104 #include <rtems/rtems/asr.inl> 105 #endif 172 106 173 107 #ifdef __cplusplus -
c/src/exec/rtems/headers/attr.h
r8e76546 r1a8fde6c 73 73 #define _Attributes_Handler_initialization() 74 74 75 /* 76 * _Attributes_Set 77 * 78 * DESCRIPTION: 79 * 80 * This function sets the requested new_attributes in the attribute_set 81 * passed in. The result is returned to the user. 82 */ 83 84 STATIC INLINE rtems_attribute _Attributes_Set ( 85 rtems_attribute new_attributes, 86 rtems_attribute attribute_set 87 ); 88 89 /* 90 * _Attributes_Clear 91 * 92 * DESCRIPTION: 93 * 94 * This function clears the requested new_attributes in the attribute_set 95 * passed in. The result is returned to the user. 96 */ 97 98 STATIC INLINE rtems_attribute _Attributes_Clear ( 99 rtems_attribute attribute_set, 100 rtems_attribute mask 101 ); 102 103 /* 104 * _Attributes_Is_floating_point 105 * 106 * DESCRIPTION: 107 * 108 * This function returns TRUE if the floating point attribute is 109 * enabled in the attribute_set and FALSE otherwise. 110 */ 111 112 STATIC INLINE boolean _Attributes_Is_floating_point( 113 rtems_attribute attribute_set 114 ); 115 116 /* 117 * _Attributes_Is_global 118 * 119 * DESCRIPTION: 120 * 121 * This function returns TRUE if the global object attribute is 122 * enabled in the attribute_set and FALSE otherwise. 123 */ 124 125 STATIC INLINE boolean _Attributes_Is_global( 126 rtems_attribute attribute_set 127 ); 128 129 /* 130 * _Attributes_Is_priority 131 * 132 * DESCRIPTION: 133 * 134 * This function returns TRUE if the priority attribute is 135 * enabled in the attribute_set and FALSE otherwise. 136 */ 137 138 STATIC INLINE boolean _Attributes_Is_priority( 139 rtems_attribute attribute_set 140 ); 141 142 #if 0 143 /* 144 * _Attributes_Is_limit 145 * 146 * DESCRIPTION: 147 * 148 * This function returns TRUE if the limited attribute is 149 * enabled in the attribute_set and FALSE otherwise. 150 */ 151 152 STATIC INLINE boolean _Attributes_Is_limit( 153 rtems_attribute attribute_set 154 ); 75 #ifndef __RTEMS_APPLICATION__ 76 #include <rtems/rtems/attr.inl> 155 77 #endif 156 157 /*158 * _Attributes_Is_binary_semaphore159 *160 * DESCRIPTION:161 *162 * This function returns TRUE if the binary semaphore attribute is163 * enabled in the attribute_set and FALSE otherwise.164 */165 166 STATIC INLINE boolean _Attributes_Is_binary_semaphore(167 rtems_attribute attribute_set168 );169 170 /*171 * _Attributes_Is_inherit_priority172 *173 * DESCRIPTION:174 *175 * This function returns TRUE if the priority inheritance attribute176 * is enabled in the attribute_set and FALSE otherwise.177 */178 179 STATIC INLINE boolean _Attributes_Is_inherit_priority(180 rtems_attribute attribute_set181 );182 183 /*184 * _Attributes_Is_priority_ceiling185 *186 * DESCRIPTION:187 *188 * This function returns TRUE if the priority ceiling attribute189 * is enabled in the attribute_set and FALSE otherwise.190 */191 192 STATIC INLINE boolean _Attributes_Is_priority_ceiling(193 rtems_attribute attribute_set194 );195 196 197 #include <rtems/rtems/attr.inl>198 78 199 79 #ifdef __cplusplus -
c/src/exec/rtems/headers/dpmem.h
r8e76546 r1a8fde6c 146 146 ); 147 147 148 /* 149 * _Dual_ported_memory_Allocate 150 * 151 * DESCRIPTION: 152 * 153 * This routine allocates a port control block from the inactive chain 154 * of free port control blocks. 155 */ 156 157 STATIC INLINE Dual_ported_memory_Control 158 *_Dual_ported_memory_Allocate ( void ); 159 160 /* 161 * _Dual_ported_memory_Free 162 * 163 * DESCRIPTION: 164 * 165 * This routine frees a port control block to the inactive chain 166 * of free port control blocks. 167 */ 168 169 STATIC INLINE void _Dual_ported_memory_Free ( 170 Dual_ported_memory_Control *the_port 171 ); 172 173 /* 174 * _Dual_ported_memory_Get 175 * 176 * DESCRIPTION: 177 * 178 * This function maps port IDs to port control blocks. If ID 179 * corresponds to a local port, then it returns the_port control 180 * pointer which maps to ID and location is set to OBJECTS_LOCAL. 181 * Global ports are not supported, thus if ID does not map to a 182 * local port, location is set to OBJECTS_ERROR and the_port is 183 * undefined. 184 */ 185 186 STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( 187 Objects_Id id, 188 Objects_Locations *location 189 ); 190 191 /* 192 * _Dual_ported_memory_Is_null 193 * 194 * DESCRIPTION: 195 * 196 * This function returns TRUE if the_port is NULL and FALSE otherwise. 197 */ 198 199 STATIC INLINE boolean _Dual_ported_memory_Is_null( 200 Dual_ported_memory_Control *the_port 201 ); 202 148 #ifndef __RTEMS_APPLICATION__ 203 149 #include <rtems/rtems/dpmem.inl> 150 #endif 204 151 205 152 #ifdef __cplusplus -
c/src/exec/rtems/headers/event.h
r8e76546 r1a8fde6c 54 54 EVENT_SYNC_SATISFIED 55 55 } Event_Sync_states; 56 57 /*58 * _Event_Manager_initialization59 *60 * DESCRIPTION:61 *62 * This routine performs the initialization necessary for this manager.63 */64 65 STATIC INLINE void _Event_Manager_initialization( void );66 56 67 57 /* … … 163 153 164 154 #include <rtems/rtems/eventmp.h> 155 #ifndef __RTEMS_APPLICATION__ 165 156 #include <rtems/rtems/event.inl> 157 #endif 166 158 167 159 #ifdef __cplusplus -
c/src/exec/rtems/headers/eventset.h
r8e76546 r1a8fde6c 78 78 #define EVENT_SETS_NONE_PENDING 0 79 79 80 /* 81 * _Event_sets_Is_empty 82 * 83 * DESCRIPTION: 84 * 85 * This function returns TRUE if on events are posted in the event_set, 86 * and FALSE otherwise. 87 */ 88 89 STATIC INLINE boolean _Event_sets_Is_empty( 90 rtems_event_set the_event_set 91 ); 92 93 /* 94 * _Event_sets_Post 95 * 96 * DESCRIPTION: 97 * 98 * This routine posts the given new_events into the event_set 99 * passed in. The result is returned to the user in event_set. 100 */ 101 102 STATIC INLINE void _Event_sets_Post( 103 rtems_event_set the_new_events, 104 rtems_event_set *the_event_set 105 ); 106 107 /* 108 * _Event_sets_Get 109 * 110 * DESCRIPTION: 111 * 112 * This function returns the events in event_condition which are 113 * set in event_set. 114 */ 115 116 STATIC INLINE rtems_event_set _Event_sets_Get( 117 rtems_event_set the_event_set, 118 rtems_event_set the_event_condition 119 ); 120 121 /* 122 * _Event_sets_Clear 123 * 124 * DESCRIPTION: 125 * 126 * This function removes the events in mask from the event_set 127 * passed in. The result is returned to the user in event_set. 128 */ 129 130 STATIC INLINE rtems_event_set _Event_sets_Clear( 131 rtems_event_set the_event_set, 132 rtems_event_set the_mask 133 ); 134 80 #ifndef __RTEMS_APPLICATION__ 135 81 #include <rtems/rtems/eventset.inl> 82 #endif 136 83 137 84 #ifdef __cplusplus -
c/src/exec/rtems/headers/message.h
r8e76546 r1a8fde6c 263 263 264 264 /* 265 * _Message_queue_Is_null266 *267 * DESCRIPTION:268 *269 * This function places the_message at the rear of the outstanding270 * messages on the_message_queue.271 */272 273 STATIC INLINE boolean _Message_queue_Is_null (274 Message_queue_Control *the_message_queue275 );276 277 /*278 265 * _Message_queue_Allocate 279 266 * … … 287 274 unsigned32 count, 288 275 unsigned32 max_message_size 289 );290 291 /*292 * _Message_queue_Free293 *294 * DESCRIPTION:295 *296 * This routine deallocates a message queue control block into297 * the inactive chain of free message queue control blocks.298 */299 300 STATIC INLINE void _Message_queue_Free (301 Message_queue_Control *the_message_queue302 );303 304 /*305 * _Message_queue_Get306 *307 * DESCRIPTION:308 *309 * This function maps message queue IDs to message queue control310 * blocks. If ID corresponds to a local message queue, then it311 * returns the_message_queue control pointer which maps to ID312 * and location is set to OBJECTS_LOCAL. If the message queue ID is313 * global and resides on a remote node, then location is set314 * to OBJECTS_REMOTE, and the_message_queue is undefined.315 * Otherwise, location is set to OBJECTS_ERROR and316 * the_message_queue is undefined.317 */318 319 STATIC INLINE Message_queue_Control *_Message_queue_Get (320 Objects_Id id,321 Objects_Locations *location322 276 ); 323 277 … … 351 305 ); 352 306 307 #ifndef __RTEMS_APPLICATION__ 353 308 #include <rtems/rtems/message.inl> 309 #endif 354 310 #include <rtems/rtems/msgmp.h> 355 311 -
c/src/exec/rtems/headers/modes.h
r8e76546 r1a8fde6c 60 60 */ 61 61 62 /* 62 /*PAGE 63 * 63 64 * RTEMS_INTERRUPT_LEVEL 64 65 * … … 73 74 */ 74 75 75 STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( 76 Modes_Control mode_set77 ); 76 #define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ 77 ( (_mode_set) & RTEMS_INTERRUPT_MASK ) 78 78 79 79 /* 80 * _Modes_Mask_changed 81 * 82 * DESCRIPTION: 83 * 84 * This function returns TRUE if any of the mode flags in mask 85 * are set in mode_set, and FALSE otherwise. 86 */ 87 88 STATIC INLINE boolean _Modes_Mask_changed ( 89 Modes_Control mode_set, 90 Modes_Control masks 91 ); 92 93 /* 94 * _Modes_Is_asr_disabled 95 * 96 * DESCRIPTION: 97 * 98 * This function returns TRUE if mode_set indicates that Asynchronous 99 * Signal Processing is disabled, and FALSE otherwise. 100 */ 101 102 STATIC INLINE boolean _Modes_Is_asr_disabled ( 103 Modes_Control mode_set 104 ); 105 106 /* 107 * _Modes_Is_preempt 108 * 109 * DESCRIPTION: 110 * 111 * This function returns TRUE if mode_set indicates that preemption 112 * is enabled, and FALSE otherwise. 113 */ 114 115 STATIC INLINE boolean _Modes_Is_preempt ( 116 Modes_Control mode_set 117 ); 118 119 /* 120 * _Modes_Is_timeslice 121 * 122 * DESCRIPTION: 123 * 124 * This function returns TRUE if mode_set indicates that timeslicing 125 * is enabled, and FALSE otherwise. 126 */ 127 128 STATIC INLINE boolean _Modes_Is_timeslice ( 129 Modes_Control mode_set 130 ); 131 132 /* 133 * _Modes_Get_interrupt_level 134 * 135 * DESCRIPTION: 136 * 137 * This function returns the interrupt level portion of the mode_set. 138 */ 139 140 STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( 141 Modes_Control mode_set 142 ); 143 144 /* 145 * _Modes_Set_interrupt_level 146 * 147 * DESCRIPTION: 148 * 149 * This routine sets the current interrupt level to that specified 150 * in the mode_set. 151 */ 152 153 STATIC INLINE void _Modes_Set_interrupt_level ( 154 Modes_Control mode_set 155 ); 156 157 /* 158 * _Modes_Change 159 * 160 * DESCRIPTION: 161 * 162 * This routine changes the modes in old_mode_set indicated by 163 * mask to the requested values in new_mode_set. The resulting 164 * mode set is returned in out_mode_set and the modes that changed 165 * is returned in changed. 166 */ 167 168 STATIC INLINE void _Modes_Change ( 169 Modes_Control old_mode_set, 170 Modes_Control new_mode_set, 171 Modes_Control mask, 172 Modes_Control *out_mode_set, 173 Modes_Control *changed 174 ); 175 80 #ifndef __RTEMS_APPLICATION__ 176 81 #include <rtems/rtems/modes.inl> 82 #endif 177 83 178 84 #ifdef __cplusplus -
c/src/exec/rtems/headers/options.h
r8e76546 r1a8fde6c 42 42 #define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */ 43 43 44 /* 45 * _Options_Is_no_wait 46 * 47 * DESCRIPTION: 48 * 49 * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in 50 * option_set, and FALSE otherwise. 51 * 52 */ 53 54 STATIC INLINE boolean _Options_Is_no_wait ( 55 rtems_option option_set 56 ); 57 58 /* 59 * _Options_Is_any 60 * 61 * DESCRIPTION: 62 * 63 * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in 64 * OPTION_SET, and FALSE otherwise. 65 * 66 */ 67 68 STATIC INLINE boolean _Options_Is_any ( 69 rtems_option option_set 70 ); 71 44 #ifndef __RTEMS_APPLICATION__ 72 45 #include <rtems/rtems/options.inl> 46 #endif 73 47 74 48 #ifdef __cplusplus -
c/src/exec/rtems/headers/part.h
r8e76546 r1a8fde6c 156 156 ); 157 157 158 /* 159 * _Partition_Allocate_buffer 160 * 161 * DESCRIPTION: 162 * 163 * This function attempts to allocate a buffer from the_partition. 164 * If successful, it returns the address of the allocated buffer. 165 * Otherwise, it returns NULL. 166 */ 167 168 STATIC INLINE void *_Partition_Allocate_buffer ( 169 Partition_Control *the_partition 170 ); 171 172 /* 173 * _Partition_Free_buffer 174 * 175 * DESCRIPTION: 176 * 177 * This routine frees the_buffer to the_partition. 178 */ 179 180 STATIC INLINE void _Partition_Free_buffer ( 181 Partition_Control *the_partition, 182 Chain_Node *the_buffer 183 ); 184 185 /* 186 * _Partition_Is_buffer_on_boundary 187 * 188 * DESCRIPTION: 189 * 190 * This function returns TRUE if the_buffer is on a valid buffer 191 * boundary for the_partition, and FALSE otherwise. 192 */ 193 194 STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( 195 void *the_buffer, 196 Partition_Control *the_partition 197 ); 198 199 /* 200 * _Partition_Is_buffer_valid 201 * 202 * DESCRIPTION: 203 * 204 * This function returns TRUE if the_buffer is a valid buffer from 205 * the_partition, otherwise FALSE is returned. 206 */ 207 208 STATIC INLINE boolean _Partition_Is_buffer_valid ( 209 Chain_Node *the_buffer, 210 Partition_Control *the_partition 211 ); 212 213 /* 214 * _Partition_Is_buffer_size_aligned 215 * 216 * DESCRIPTION: 217 * 218 * This function returns TRUE if the use of the specified buffer_size 219 * will result in the allocation of buffers whose first byte is 220 * properly aligned, and FALSE otherwise. 221 */ 222 223 STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( 224 unsigned32 buffer_size 225 ); 226 227 /* 228 * _Partition_Allocate 229 * 230 * DESCRIPTION: 231 * 232 * This function allocates a partition control block from 233 * the inactive chain of free partition control blocks. 234 */ 235 236 STATIC INLINE Partition_Control *_Partition_Allocate ( void ); 237 238 /* 239 * _Partition_Free 240 * 241 * DESCRIPTION: 242 * 243 * This routine frees a partition control block to the 244 * inactive chain of free partition control blocks. 245 */ 246 247 STATIC INLINE void _Partition_Free ( 248 Partition_Control *the_partition 249 ); 250 251 /* 252 * _Partition_Get 253 * 254 * DESCRIPTION: 255 * 256 * This function maps partition IDs to partition control blocks. 257 * If ID corresponds to a local partition, then it returns 258 * the_partition control pointer which maps to ID and location 259 * is set to OBJECTS_LOCAL. If the partition ID is global and 260 * resides on a remote node, then location is set to OBJECTS_REMOTE, 261 * and the_partition is undefined. Otherwise, location is set 262 * to OBJECTS_ERROR and the_partition is undefined. 263 */ 264 265 STATIC INLINE Partition_Control *_Partition_Get ( 266 Objects_Id id, 267 Objects_Locations *location 268 ); 269 270 /* 271 * _Partition_Is_null 272 * 273 * DESCRIPTION: 274 * 275 * This function returns TRUE if the_partition is NULL 276 * and FALSE otherwise. 277 */ 278 279 STATIC INLINE boolean _Partition_Is_null ( 280 Partition_Control *the_partition 281 ); 282 158 #ifndef __RTEMS_APPLICATION__ 283 159 #include <rtems/rtems/part.inl> 160 #endif 284 161 #include <rtems/rtems/partmp.h> 285 162 -
c/src/exec/rtems/headers/ratemon.h
r8e76546 r1a8fde6c 157 157 158 158 /* 159 * _Rate_monotonic_Allocate160 *161 * DESCRIPTION:162 *163 * This function allocates a period control block from164 * the inactive chain of free period control blocks.165 */166 167 STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void );168 169 /*170 * _Rate_monotonic_Free171 *172 * DESCRIPTION:173 *174 * This routine allocates a period control block from175 * the inactive chain of free period control blocks.176 */177 178 STATIC INLINE void _Rate_monotonic_Free (179 Rate_monotonic_Control *the_period180 );181 182 /*183 * _Rate_monotonic_Get184 *185 * DESCRIPTION:186 *187 * This function maps period IDs to period control blocks.188 * If ID corresponds to a local period, then it returns189 * the_period control pointer which maps to ID and location190 * is set to OBJECTS_LOCAL. Otherwise, location is set191 * to OBJECTS_ERROR and the_period is undefined.192 */193 194 STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (195 Objects_Id id,196 Objects_Locations *location197 );198 199 /*200 159 * _Rate_monotonic_Timeout 201 160 * … … 215 174 ); 216 175 217 /* 218 * _Rate_monotonic_Is_active 219 * 220 * DESCRIPTION: 221 * 222 * This function returns TRUE if the_period is in the ACTIVE state, 223 * and FALSE otherwise. 224 */ 225 226 STATIC INLINE boolean _Rate_monotonic_Is_active ( 227 Rate_monotonic_Control *the_period 228 ); 229 230 /* 231 * _Rate_monotonic_Is_inactive 232 * 233 * DESCRIPTION: 234 * 235 * This function returns TRUE if the_period is in the ACTIVE state, 236 * and FALSE otherwise. 237 */ 238 239 STATIC INLINE boolean _Rate_monotonic_Is_inactive ( 240 Rate_monotonic_Control *the_period 241 ); 242 243 /* 244 * _Rate_monotonic_Is_expired 245 * 246 * DESCRIPTION: 247 * 248 * This function returns TRUE if the_period is in the EXPIRED state, 249 * and FALSE otherwise. 250 */ 251 252 STATIC INLINE boolean _Rate_monotonic_Is_expired ( 253 Rate_monotonic_Control *the_period 254 ); 255 256 /* 257 * _Rate_monotonic_Is_null 258 * 259 * DESCRIPTION: 260 * 261 * This function returns TRUE if the_period is NULL and FALSE otherwise. 262 */ 263 264 STATIC INLINE boolean _Rate_monotonic_Is_null ( 265 Rate_monotonic_Control *the_period 266 ); 267 176 #ifndef __RTEMS_APPLICATION__ 268 177 #include <rtems/rtems/ratemon.inl> 178 #endif 269 179 270 180 #ifdef __cplusplus -
c/src/exec/rtems/headers/region.h
r8e76546 r1a8fde6c 199 199 ); 200 200 201 /* 202 * _Region_Allocate 203 * 204 * DESCRIPTION: 205 * 206 * This function allocates a region control block from 207 * the inactive chain of free region control blocks. 208 */ 209 210 STATIC INLINE Region_Control *_Region_Allocate( void ); 211 212 /* 213 * _Region_Free 214 * 215 * DESCRIPTION: 216 * 217 * This routine frees a region control block to the 218 * inactive chain of free region control blocks. 219 */ 220 221 STATIC INLINE void _Region_Free ( 222 Region_Control *the_region 223 ); 224 225 /* 226 * _Region_Get 227 * 228 * DESCRIPTION: 229 * 230 * This function maps region IDs to region control blocks. 231 * If ID corresponds to a local region, then it returns 232 * the_region control pointer which maps to ID and location 233 * is set to OBJECTS_LOCAL. Otherwise, location is set 234 * to OBJECTS_ERROR and the_region is undefined. 235 */ 236 237 STATIC INLINE Region_Control *_Region_Get ( 238 Objects_Id id, 239 Objects_Locations *location 240 ); 241 242 /* 243 * _Region_Allocate_segment 244 * 245 * DESCRIPTION: 246 * 247 * This function attempts to allocate a segment from the_region. 248 * If successful, it returns the address of the allocated segment. 249 * Otherwise, it returns NULL. 250 */ 251 252 STATIC INLINE void *_Region_Allocate_segment ( 253 Region_Control *the_region, 254 unsigned32 size 255 ); 256 257 /* 258 * _Region_Free_segment 259 * 260 * DESCRIPTION: 261 * 262 * This function frees the_segment to the_region. 263 */ 264 265 STATIC INLINE boolean _Region_Free_segment ( 266 Region_Control *the_region, 267 void *the_segment 268 ); 269 270 /* 271 * _Region_Is_null 272 * 273 * DESCRIPTION: 274 * 275 * This function returns TRUE if the_region is NULL and FALSE otherwise. 276 */ 277 278 STATIC INLINE boolean _Region_Is_null ( 279 Region_Control *the_region 280 ); 281 201 #ifndef __RTEMS_APPLICATION__ 282 202 #include <rtems/rtems/region.inl> 203 #endif 283 204 #include <rtems/rtems/regionmp.h> 284 205 -
c/src/exec/rtems/headers/rtems.h
r8e76546 r1a8fde6c 22 22 #ifdef __cplusplus 23 23 extern "C" { 24 #endif 25 26 /* 27 * Unless told otherwise, the RTEMS include files will hide some stuff 28 * from normal application code. Defining this crosses a boundary which 29 * is undesirable since it means your application is using RTEMS features 30 * which are not included in the formally defined and supported API. 31 * Define this at your own risk. 32 */ 33 34 #ifndef __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 35 #define __RTEMS_APPLICATION__ 24 36 #endif 25 37 -
c/src/exec/rtems/headers/sem.h
r8e76546 r1a8fde6c 179 179 180 180 /* 181 * _Semaphore_Allocate182 *183 * DESCRIPTION:184 *185 * This function allocates a semaphore control block from186 * the inactive chain of free semaphore control blocks.187 */188 189 STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void );190 191 /*192 * _Semaphore_Free193 *194 * DESCRIPTION:195 *196 * This routine frees a semaphore control block to the197 * inactive chain of free semaphore control blocks.198 */199 200 STATIC INLINE void _Semaphore_Free (201 Semaphore_Control *the_semaphore202 );203 204 /*205 * _Semaphore_Get206 *207 * DESCRIPTION:208 *209 * This function maps semaphore IDs to semaphore control blocks.210 * If ID corresponds to a local semaphore, then it returns211 * the_semaphore control pointer which maps to ID and location212 * is set to OBJECTS_LOCAL. if the semaphore ID is global and213 * resides on a remote node, then location is set to OBJECTS_REMOTE,214 * and the_semaphore is undefined. Otherwise, location is set215 * to OBJECTS_ERROR and the_semaphore is undefined.216 */217 218 STATIC INLINE Semaphore_Control *_Semaphore_Get (219 rtems_id id,220 Objects_Locations *location221 );222 223 /*224 * _Semaphore_Is_null225 *226 * DESCRIPTION:227 *228 * This function returns TRUE if the_semaphore is NULL and FALSE otherwise.229 */230 231 STATIC INLINE boolean _Semaphore_Is_null (232 Semaphore_Control *the_semaphore233 );234 235 /*236 181 * _Semaphore_Translate_core_mutex_return_code 237 182 * … … 291 236 ); 292 237 238 #ifndef __RTEMS_APPLICATION__ 293 239 #include <rtems/rtems/sem.inl> 240 #endif 294 241 #include <rtems/rtems/semmp.h> 295 242 -
c/src/exec/rtems/headers/status.h
r8e76546 r1a8fde6c 70 70 71 71 /* 72 * rtems_is_status_successful 73 * 74 * DESCRIPTION: 75 * 76 * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, 77 * and FALSE otherwise. 72 * Applications are allowed to use the macros to compare status codes. 78 73 */ 79 80 STATIC INLINE boolean rtems_is_status_successful (81 rtems_status_code code82 );83 84 /*85 * rtems_are_statuses_equal86 *87 * DESCRIPTION:88 *89 * This function returns TRUE if the status code1 is equal to code2,90 * and FALSE otherwise.91 */92 93 STATIC INLINE boolean rtems_are_statuses_equal (94 rtems_status_code code1,95 rtems_status_code code296 );97 74 98 75 #include <rtems/rtems/status.inl> -
c/src/exec/rtems/headers/support.h
r8e76546 r1a8fde6c 25 25 26 26 /* 27 * rtems_is_name_valid28 *29 * DESCRIPTION:30 *31 * This function returns TRUE if the name is valid, and FALSE otherwise.32 */33 34 STATIC INLINE rtems_boolean rtems_is_name_valid (35 rtems_name name36 );37 38 /*39 27 * rtems_build_name 40 28 * … … 53 41 ( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) ) 54 42 55 /*56 * rtems_name_to_characters57 *58 * DESCRIPTION:59 *60 * This function breaks the object name into the four component61 * characters C1, C2, C3, and C4.62 *63 */64 65 STATIC INLINE void rtems_name_to_characters(66 rtems_name name,67 char *c1,68 char *c2,69 char *c3,70 char *c471 );72 73 43 /* 74 44 * rtems_get_class -
c/src/exec/rtems/headers/tasks.h
r8e76546 r1a8fde6c 393 393 ); 394 394 395 /*396 * _RTEMS_tasks_Allocate397 *398 * DESCRIPTION:399 *400 * This function allocates a task control block from401 * the inactive chain of free task control blocks.402 */403 404 STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void );405 406 /*407 * _RTEMS_tasks_Free408 *409 * DESCRIPTION:410 *411 * This routine frees a task control block to the412 * inactive chain of free task control blocks.413 414 */415 416 STATIC INLINE void _RTEMS_tasks_Free (417 Thread_Control *the_task418 );419 420 /*421 * _RTEMS_tasks_Priority_to_Core422 *423 * DESCRIPTION:424 *425 * This function converts an RTEMS API priority into a core priority.426 */427 428 STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(429 rtems_task_priority priority430 );431 432 395 /*PAGE 433 396 * … … 444 407 void _RTEMS_tasks_Initialize_user_tasks( void ); 445 408 446 /*PAGE 447 * 448 * _RTEMS_tasks_Priority_is_valid 449 * 450 */ 451 452 STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid ( 453 rtems_task_priority the_priority 454 ); 455 409 #ifndef __RTEMS_APPLICATION__ 456 410 #include <rtems/rtems/tasks.inl> 411 #endif 457 412 #include <rtems/rtems/taskmp.h> 458 413 -
c/src/exec/rtems/headers/timer.h
r8e76546 r1a8fde6c 196 196 ); 197 197 198 /* 199 * _Timer_Allocate 200 * 201 * DESCRIPTION: 202 * 203 * This function allocates a timer control block from 204 * the inactive chain of free timer control blocks. 205 */ 206 207 STATIC INLINE Timer_Control *_Timer_Allocate( void ); 208 209 /* 210 * _Timer_Free 211 * 212 * DESCRIPTION: 213 * 214 * This routine frees a timer control block to the 215 * inactive chain of free timer control blocks. 216 */ 217 218 STATIC INLINE void _Timer_Free ( 219 Timer_Control *the_timer 220 ); 221 222 /* 223 * _Timer_Get 224 * 225 * DESCRIPTION: 226 * 227 * This function maps timer IDs to timer control blocks. 228 * If ID corresponds to a local timer, then it returns 229 * the timer control pointer which maps to ID and location 230 * is set to OBJECTS_LOCAL. Otherwise, location is set 231 * to OBJECTS_ERROR and the returned value is undefined. 232 */ 233 234 STATIC INLINE Timer_Control *_Timer_Get ( 235 Objects_Id id, 236 Objects_Locations *location 237 ); 238 239 /* 240 * _Timer_Is_interval_class 241 * 242 * DESCRIPTION: 243 * 244 * This function returns TRUE if the class is that of an INTERVAL 245 * timer, and FALSE otherwise. 246 */ 247 248 STATIC INLINE boolean _Timer_Is_interval_class ( 249 Timer_Classes the_class 250 ); 251 252 /* 253 * _Timer_Is_time_of_day_class 254 * 255 * DESCRIPTION: 256 * 257 * This function returns TRUE if the class is that of an INTERVAL 258 * timer, and FALSE otherwise. 259 */ 260 261 STATIC INLINE boolean _Timer_Is_timer_of_day_class ( 262 Timer_Classes the_class 263 ); 264 265 /* 266 * _Timer_Is_dormant_class 267 * 268 * DESCRIPTION: 269 * 270 * This function returns TRUE if the class is that of a DORMANT 271 * timer, and FALSE otherwise. 272 */ 273 274 STATIC INLINE boolean _Timer_Is_dormant_class ( 275 Timer_Classes the_class 276 ); 277 278 /* 279 * _Timer_Is_null 280 * 281 * DESCRIPTION: 282 * 283 * This function returns TRUE if the_timer is NULL and FALSE otherwise. 284 */ 285 286 STATIC INLINE boolean _Timer_Is_null ( 287 Timer_Control *the_timer 288 ); 289 198 #ifndef __RTEMS_APPLICATION__ 290 199 #include <rtems/rtems/timer.inl> 200 #endif 291 201 292 202 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems.h
r8e76546 r1a8fde6c 22 22 #ifdef __cplusplus 23 23 extern "C" { 24 #endif 25 26 /* 27 * Unless told otherwise, the RTEMS include files will hide some stuff 28 * from normal application code. Defining this crosses a boundary which 29 * is undesirable since it means your application is using RTEMS features 30 * which are not included in the formally defined and supported API. 31 * Define this at your own risk. 32 */ 33 34 #ifndef __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 35 #define __RTEMS_APPLICATION__ 24 36 #endif 25 37 -
c/src/exec/rtems/include/rtems/rtems/asr.h
r8e76546 r1a8fde6c 101 101 #define RTEMS_SIGNAL_31 0x80000000 102 102 103 /* 104 * _ASR_Initialize 105 * 106 * DESCRIPTION: 107 * 108 * This routine initializes the given RTEMS_ASR information record. 109 */ 110 111 STATIC INLINE void _ASR_Initialize ( 112 ASR_Information *information 113 ); 114 115 /* 116 * _ASR_Swap_signals 117 * 118 * DESCRIPTION: 119 * 120 * This routine atomically swaps the pending and posted signal 121 * sets. This is done when the thread alters its mode in such a 122 * way that the RTEMS_ASR disable/enable flag changes. 123 */ 124 125 STATIC INLINE void _ASR_Swap_signals ( 126 ASR_Information *information 127 ); 128 129 /* 130 * _ASR_Is_null_handler 131 * 132 * DESCRIPTION: 133 * 134 * This function returns TRUE if the given asr_handler is NULL and 135 * FALSE otherwise. 136 */ 137 138 STATIC INLINE boolean _ASR_Is_null_handler ( 139 rtems_asr_entry asr_handler 140 ); 141 142 /* 143 * _ASR_Are_signals_pending 144 * 145 * DESCRIPTION: 146 * 147 * This function returns TRUE if there are signals pending in the 148 * given RTEMS_ASR information record and FALSE otherwise. 149 */ 150 151 STATIC INLINE boolean _ASR_Are_signals_pending ( 152 ASR_Information *information 153 ); 154 155 /* 156 * _ASR_Post_signals 157 * 158 * DESCRIPTION: 159 * 160 * This routine posts the given signals into the signal_set 161 * passed in. The result is returned to the user in signal_set. 162 * 163 * NOTE: This must be implemented as a macro. 164 */ 165 166 STATIC INLINE void _ASR_Post_signals( 167 rtems_signal_set signals, 168 rtems_signal_set *signal_set 169 ); 170 103 #ifndef __RTEMS_APPLICATION__ 171 104 #include <rtems/rtems/asr.inl> 105 #endif 172 106 173 107 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/attr.h
r8e76546 r1a8fde6c 73 73 #define _Attributes_Handler_initialization() 74 74 75 /* 76 * _Attributes_Set 77 * 78 * DESCRIPTION: 79 * 80 * This function sets the requested new_attributes in the attribute_set 81 * passed in. The result is returned to the user. 82 */ 83 84 STATIC INLINE rtems_attribute _Attributes_Set ( 85 rtems_attribute new_attributes, 86 rtems_attribute attribute_set 87 ); 88 89 /* 90 * _Attributes_Clear 91 * 92 * DESCRIPTION: 93 * 94 * This function clears the requested new_attributes in the attribute_set 95 * passed in. The result is returned to the user. 96 */ 97 98 STATIC INLINE rtems_attribute _Attributes_Clear ( 99 rtems_attribute attribute_set, 100 rtems_attribute mask 101 ); 102 103 /* 104 * _Attributes_Is_floating_point 105 * 106 * DESCRIPTION: 107 * 108 * This function returns TRUE if the floating point attribute is 109 * enabled in the attribute_set and FALSE otherwise. 110 */ 111 112 STATIC INLINE boolean _Attributes_Is_floating_point( 113 rtems_attribute attribute_set 114 ); 115 116 /* 117 * _Attributes_Is_global 118 * 119 * DESCRIPTION: 120 * 121 * This function returns TRUE if the global object attribute is 122 * enabled in the attribute_set and FALSE otherwise. 123 */ 124 125 STATIC INLINE boolean _Attributes_Is_global( 126 rtems_attribute attribute_set 127 ); 128 129 /* 130 * _Attributes_Is_priority 131 * 132 * DESCRIPTION: 133 * 134 * This function returns TRUE if the priority attribute is 135 * enabled in the attribute_set and FALSE otherwise. 136 */ 137 138 STATIC INLINE boolean _Attributes_Is_priority( 139 rtems_attribute attribute_set 140 ); 141 142 #if 0 143 /* 144 * _Attributes_Is_limit 145 * 146 * DESCRIPTION: 147 * 148 * This function returns TRUE if the limited attribute is 149 * enabled in the attribute_set and FALSE otherwise. 150 */ 151 152 STATIC INLINE boolean _Attributes_Is_limit( 153 rtems_attribute attribute_set 154 ); 75 #ifndef __RTEMS_APPLICATION__ 76 #include <rtems/rtems/attr.inl> 155 77 #endif 156 157 /*158 * _Attributes_Is_binary_semaphore159 *160 * DESCRIPTION:161 *162 * This function returns TRUE if the binary semaphore attribute is163 * enabled in the attribute_set and FALSE otherwise.164 */165 166 STATIC INLINE boolean _Attributes_Is_binary_semaphore(167 rtems_attribute attribute_set168 );169 170 /*171 * _Attributes_Is_inherit_priority172 *173 * DESCRIPTION:174 *175 * This function returns TRUE if the priority inheritance attribute176 * is enabled in the attribute_set and FALSE otherwise.177 */178 179 STATIC INLINE boolean _Attributes_Is_inherit_priority(180 rtems_attribute attribute_set181 );182 183 /*184 * _Attributes_Is_priority_ceiling185 *186 * DESCRIPTION:187 *188 * This function returns TRUE if the priority ceiling attribute189 * is enabled in the attribute_set and FALSE otherwise.190 */191 192 STATIC INLINE boolean _Attributes_Is_priority_ceiling(193 rtems_attribute attribute_set194 );195 196 197 #include <rtems/rtems/attr.inl>198 78 199 79 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/dpmem.h
r8e76546 r1a8fde6c 146 146 ); 147 147 148 /* 149 * _Dual_ported_memory_Allocate 150 * 151 * DESCRIPTION: 152 * 153 * This routine allocates a port control block from the inactive chain 154 * of free port control blocks. 155 */ 156 157 STATIC INLINE Dual_ported_memory_Control 158 *_Dual_ported_memory_Allocate ( void ); 159 160 /* 161 * _Dual_ported_memory_Free 162 * 163 * DESCRIPTION: 164 * 165 * This routine frees a port control block to the inactive chain 166 * of free port control blocks. 167 */ 168 169 STATIC INLINE void _Dual_ported_memory_Free ( 170 Dual_ported_memory_Control *the_port 171 ); 172 173 /* 174 * _Dual_ported_memory_Get 175 * 176 * DESCRIPTION: 177 * 178 * This function maps port IDs to port control blocks. If ID 179 * corresponds to a local port, then it returns the_port control 180 * pointer which maps to ID and location is set to OBJECTS_LOCAL. 181 * Global ports are not supported, thus if ID does not map to a 182 * local port, location is set to OBJECTS_ERROR and the_port is 183 * undefined. 184 */ 185 186 STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get ( 187 Objects_Id id, 188 Objects_Locations *location 189 ); 190 191 /* 192 * _Dual_ported_memory_Is_null 193 * 194 * DESCRIPTION: 195 * 196 * This function returns TRUE if the_port is NULL and FALSE otherwise. 197 */ 198 199 STATIC INLINE boolean _Dual_ported_memory_Is_null( 200 Dual_ported_memory_Control *the_port 201 ); 202 148 #ifndef __RTEMS_APPLICATION__ 203 149 #include <rtems/rtems/dpmem.inl> 150 #endif 204 151 205 152 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/event.h
r8e76546 r1a8fde6c 54 54 EVENT_SYNC_SATISFIED 55 55 } Event_Sync_states; 56 57 /*58 * _Event_Manager_initialization59 *60 * DESCRIPTION:61 *62 * This routine performs the initialization necessary for this manager.63 */64 65 STATIC INLINE void _Event_Manager_initialization( void );66 56 67 57 /* … … 163 153 164 154 #include <rtems/rtems/eventmp.h> 155 #ifndef __RTEMS_APPLICATION__ 165 156 #include <rtems/rtems/event.inl> 157 #endif 166 158 167 159 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/eventset.h
r8e76546 r1a8fde6c 78 78 #define EVENT_SETS_NONE_PENDING 0 79 79 80 /* 81 * _Event_sets_Is_empty 82 * 83 * DESCRIPTION: 84 * 85 * This function returns TRUE if on events are posted in the event_set, 86 * and FALSE otherwise. 87 */ 88 89 STATIC INLINE boolean _Event_sets_Is_empty( 90 rtems_event_set the_event_set 91 ); 92 93 /* 94 * _Event_sets_Post 95 * 96 * DESCRIPTION: 97 * 98 * This routine posts the given new_events into the event_set 99 * passed in. The result is returned to the user in event_set. 100 */ 101 102 STATIC INLINE void _Event_sets_Post( 103 rtems_event_set the_new_events, 104 rtems_event_set *the_event_set 105 ); 106 107 /* 108 * _Event_sets_Get 109 * 110 * DESCRIPTION: 111 * 112 * This function returns the events in event_condition which are 113 * set in event_set. 114 */ 115 116 STATIC INLINE rtems_event_set _Event_sets_Get( 117 rtems_event_set the_event_set, 118 rtems_event_set the_event_condition 119 ); 120 121 /* 122 * _Event_sets_Clear 123 * 124 * DESCRIPTION: 125 * 126 * This function removes the events in mask from the event_set 127 * passed in. The result is returned to the user in event_set. 128 */ 129 130 STATIC INLINE rtems_event_set _Event_sets_Clear( 131 rtems_event_set the_event_set, 132 rtems_event_set the_mask 133 ); 134 80 #ifndef __RTEMS_APPLICATION__ 135 81 #include <rtems/rtems/eventset.inl> 82 #endif 136 83 137 84 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/message.h
r8e76546 r1a8fde6c 263 263 264 264 /* 265 * _Message_queue_Is_null266 *267 * DESCRIPTION:268 *269 * This function places the_message at the rear of the outstanding270 * messages on the_message_queue.271 */272 273 STATIC INLINE boolean _Message_queue_Is_null (274 Message_queue_Control *the_message_queue275 );276 277 /*278 265 * _Message_queue_Allocate 279 266 * … … 287 274 unsigned32 count, 288 275 unsigned32 max_message_size 289 );290 291 /*292 * _Message_queue_Free293 *294 * DESCRIPTION:295 *296 * This routine deallocates a message queue control block into297 * the inactive chain of free message queue control blocks.298 */299 300 STATIC INLINE void _Message_queue_Free (301 Message_queue_Control *the_message_queue302 );303 304 /*305 * _Message_queue_Get306 *307 * DESCRIPTION:308 *309 * This function maps message queue IDs to message queue control310 * blocks. If ID corresponds to a local message queue, then it311 * returns the_message_queue control pointer which maps to ID312 * and location is set to OBJECTS_LOCAL. If the message queue ID is313 * global and resides on a remote node, then location is set314 * to OBJECTS_REMOTE, and the_message_queue is undefined.315 * Otherwise, location is set to OBJECTS_ERROR and316 * the_message_queue is undefined.317 */318 319 STATIC INLINE Message_queue_Control *_Message_queue_Get (320 Objects_Id id,321 Objects_Locations *location322 276 ); 323 277 … … 351 305 ); 352 306 307 #ifndef __RTEMS_APPLICATION__ 353 308 #include <rtems/rtems/message.inl> 309 #endif 354 310 #include <rtems/rtems/msgmp.h> 355 311 -
c/src/exec/rtems/include/rtems/rtems/modes.h
r8e76546 r1a8fde6c 60 60 */ 61 61 62 /* 62 /*PAGE 63 * 63 64 * RTEMS_INTERRUPT_LEVEL 64 65 * … … 73 74 */ 74 75 75 STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( 76 Modes_Control mode_set77 ); 76 #define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ 77 ( (_mode_set) & RTEMS_INTERRUPT_MASK ) 78 78 79 79 /* 80 * _Modes_Mask_changed 81 * 82 * DESCRIPTION: 83 * 84 * This function returns TRUE if any of the mode flags in mask 85 * are set in mode_set, and FALSE otherwise. 86 */ 87 88 STATIC INLINE boolean _Modes_Mask_changed ( 89 Modes_Control mode_set, 90 Modes_Control masks 91 ); 92 93 /* 94 * _Modes_Is_asr_disabled 95 * 96 * DESCRIPTION: 97 * 98 * This function returns TRUE if mode_set indicates that Asynchronous 99 * Signal Processing is disabled, and FALSE otherwise. 100 */ 101 102 STATIC INLINE boolean _Modes_Is_asr_disabled ( 103 Modes_Control mode_set 104 ); 105 106 /* 107 * _Modes_Is_preempt 108 * 109 * DESCRIPTION: 110 * 111 * This function returns TRUE if mode_set indicates that preemption 112 * is enabled, and FALSE otherwise. 113 */ 114 115 STATIC INLINE boolean _Modes_Is_preempt ( 116 Modes_Control mode_set 117 ); 118 119 /* 120 * _Modes_Is_timeslice 121 * 122 * DESCRIPTION: 123 * 124 * This function returns TRUE if mode_set indicates that timeslicing 125 * is enabled, and FALSE otherwise. 126 */ 127 128 STATIC INLINE boolean _Modes_Is_timeslice ( 129 Modes_Control mode_set 130 ); 131 132 /* 133 * _Modes_Get_interrupt_level 134 * 135 * DESCRIPTION: 136 * 137 * This function returns the interrupt level portion of the mode_set. 138 */ 139 140 STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( 141 Modes_Control mode_set 142 ); 143 144 /* 145 * _Modes_Set_interrupt_level 146 * 147 * DESCRIPTION: 148 * 149 * This routine sets the current interrupt level to that specified 150 * in the mode_set. 151 */ 152 153 STATIC INLINE void _Modes_Set_interrupt_level ( 154 Modes_Control mode_set 155 ); 156 157 /* 158 * _Modes_Change 159 * 160 * DESCRIPTION: 161 * 162 * This routine changes the modes in old_mode_set indicated by 163 * mask to the requested values in new_mode_set. The resulting 164 * mode set is returned in out_mode_set and the modes that changed 165 * is returned in changed. 166 */ 167 168 STATIC INLINE void _Modes_Change ( 169 Modes_Control old_mode_set, 170 Modes_Control new_mode_set, 171 Modes_Control mask, 172 Modes_Control *out_mode_set, 173 Modes_Control *changed 174 ); 175 80 #ifndef __RTEMS_APPLICATION__ 176 81 #include <rtems/rtems/modes.inl> 82 #endif 177 83 178 84 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/options.h
r8e76546 r1a8fde6c 42 42 #define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */ 43 43 44 /* 45 * _Options_Is_no_wait 46 * 47 * DESCRIPTION: 48 * 49 * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in 50 * option_set, and FALSE otherwise. 51 * 52 */ 53 54 STATIC INLINE boolean _Options_Is_no_wait ( 55 rtems_option option_set 56 ); 57 58 /* 59 * _Options_Is_any 60 * 61 * DESCRIPTION: 62 * 63 * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in 64 * OPTION_SET, and FALSE otherwise. 65 * 66 */ 67 68 STATIC INLINE boolean _Options_Is_any ( 69 rtems_option option_set 70 ); 71 44 #ifndef __RTEMS_APPLICATION__ 72 45 #include <rtems/rtems/options.inl> 46 #endif 73 47 74 48 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/part.h
r8e76546 r1a8fde6c 156 156 ); 157 157 158 /* 159 * _Partition_Allocate_buffer 160 * 161 * DESCRIPTION: 162 * 163 * This function attempts to allocate a buffer from the_partition. 164 * If successful, it returns the address of the allocated buffer. 165 * Otherwise, it returns NULL. 166 */ 167 168 STATIC INLINE void *_Partition_Allocate_buffer ( 169 Partition_Control *the_partition 170 ); 171 172 /* 173 * _Partition_Free_buffer 174 * 175 * DESCRIPTION: 176 * 177 * This routine frees the_buffer to the_partition. 178 */ 179 180 STATIC INLINE void _Partition_Free_buffer ( 181 Partition_Control *the_partition, 182 Chain_Node *the_buffer 183 ); 184 185 /* 186 * _Partition_Is_buffer_on_boundary 187 * 188 * DESCRIPTION: 189 * 190 * This function returns TRUE if the_buffer is on a valid buffer 191 * boundary for the_partition, and FALSE otherwise. 192 */ 193 194 STATIC INLINE boolean _Partition_Is_buffer_on_boundary ( 195 void *the_buffer, 196 Partition_Control *the_partition 197 ); 198 199 /* 200 * _Partition_Is_buffer_valid 201 * 202 * DESCRIPTION: 203 * 204 * This function returns TRUE if the_buffer is a valid buffer from 205 * the_partition, otherwise FALSE is returned. 206 */ 207 208 STATIC INLINE boolean _Partition_Is_buffer_valid ( 209 Chain_Node *the_buffer, 210 Partition_Control *the_partition 211 ); 212 213 /* 214 * _Partition_Is_buffer_size_aligned 215 * 216 * DESCRIPTION: 217 * 218 * This function returns TRUE if the use of the specified buffer_size 219 * will result in the allocation of buffers whose first byte is 220 * properly aligned, and FALSE otherwise. 221 */ 222 223 STATIC INLINE boolean _Partition_Is_buffer_size_aligned ( 224 unsigned32 buffer_size 225 ); 226 227 /* 228 * _Partition_Allocate 229 * 230 * DESCRIPTION: 231 * 232 * This function allocates a partition control block from 233 * the inactive chain of free partition control blocks. 234 */ 235 236 STATIC INLINE Partition_Control *_Partition_Allocate ( void ); 237 238 /* 239 * _Partition_Free 240 * 241 * DESCRIPTION: 242 * 243 * This routine frees a partition control block to the 244 * inactive chain of free partition control blocks. 245 */ 246 247 STATIC INLINE void _Partition_Free ( 248 Partition_Control *the_partition 249 ); 250 251 /* 252 * _Partition_Get 253 * 254 * DESCRIPTION: 255 * 256 * This function maps partition IDs to partition control blocks. 257 * If ID corresponds to a local partition, then it returns 258 * the_partition control pointer which maps to ID and location 259 * is set to OBJECTS_LOCAL. If the partition ID is global and 260 * resides on a remote node, then location is set to OBJECTS_REMOTE, 261 * and the_partition is undefined. Otherwise, location is set 262 * to OBJECTS_ERROR and the_partition is undefined. 263 */ 264 265 STATIC INLINE Partition_Control *_Partition_Get ( 266 Objects_Id id, 267 Objects_Locations *location 268 ); 269 270 /* 271 * _Partition_Is_null 272 * 273 * DESCRIPTION: 274 * 275 * This function returns TRUE if the_partition is NULL 276 * and FALSE otherwise. 277 */ 278 279 STATIC INLINE boolean _Partition_Is_null ( 280 Partition_Control *the_partition 281 ); 282 158 #ifndef __RTEMS_APPLICATION__ 283 159 #include <rtems/rtems/part.inl> 160 #endif 284 161 #include <rtems/rtems/partmp.h> 285 162 -
c/src/exec/rtems/include/rtems/rtems/ratemon.h
r8e76546 r1a8fde6c 157 157 158 158 /* 159 * _Rate_monotonic_Allocate160 *161 * DESCRIPTION:162 *163 * This function allocates a period control block from164 * the inactive chain of free period control blocks.165 */166 167 STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void );168 169 /*170 * _Rate_monotonic_Free171 *172 * DESCRIPTION:173 *174 * This routine allocates a period control block from175 * the inactive chain of free period control blocks.176 */177 178 STATIC INLINE void _Rate_monotonic_Free (179 Rate_monotonic_Control *the_period180 );181 182 /*183 * _Rate_monotonic_Get184 *185 * DESCRIPTION:186 *187 * This function maps period IDs to period control blocks.188 * If ID corresponds to a local period, then it returns189 * the_period control pointer which maps to ID and location190 * is set to OBJECTS_LOCAL. Otherwise, location is set191 * to OBJECTS_ERROR and the_period is undefined.192 */193 194 STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (195 Objects_Id id,196 Objects_Locations *location197 );198 199 /*200 159 * _Rate_monotonic_Timeout 201 160 * … … 215 174 ); 216 175 217 /* 218 * _Rate_monotonic_Is_active 219 * 220 * DESCRIPTION: 221 * 222 * This function returns TRUE if the_period is in the ACTIVE state, 223 * and FALSE otherwise. 224 */ 225 226 STATIC INLINE boolean _Rate_monotonic_Is_active ( 227 Rate_monotonic_Control *the_period 228 ); 229 230 /* 231 * _Rate_monotonic_Is_inactive 232 * 233 * DESCRIPTION: 234 * 235 * This function returns TRUE if the_period is in the ACTIVE state, 236 * and FALSE otherwise. 237 */ 238 239 STATIC INLINE boolean _Rate_monotonic_Is_inactive ( 240 Rate_monotonic_Control *the_period 241 ); 242 243 /* 244 * _Rate_monotonic_Is_expired 245 * 246 * DESCRIPTION: 247 * 248 * This function returns TRUE if the_period is in the EXPIRED state, 249 * and FALSE otherwise. 250 */ 251 252 STATIC INLINE boolean _Rate_monotonic_Is_expired ( 253 Rate_monotonic_Control *the_period 254 ); 255 256 /* 257 * _Rate_monotonic_Is_null 258 * 259 * DESCRIPTION: 260 * 261 * This function returns TRUE if the_period is NULL and FALSE otherwise. 262 */ 263 264 STATIC INLINE boolean _Rate_monotonic_Is_null ( 265 Rate_monotonic_Control *the_period 266 ); 267 176 #ifndef __RTEMS_APPLICATION__ 268 177 #include <rtems/rtems/ratemon.inl> 178 #endif 269 179 270 180 #ifdef __cplusplus -
c/src/exec/rtems/include/rtems/rtems/region.h
r8e76546 r1a8fde6c 199 199 ); 200 200 201 /* 202 * _Region_Allocate 203 * 204 * DESCRIPTION: 205 * 206 * This function allocates a region control block from 207 * the inactive chain of free region control blocks. 208 */ 209 210 STATIC INLINE Region_Control *_Region_Allocate( void ); 211 212 /* 213 * _Region_Free 214 * 215 * DESCRIPTION: 216 * 217 * This routine frees a region control block to the 218 * inactive chain of free region control blocks. 219 */ 220 221 STATIC INLINE void _Region_Free ( 222 Region_Control *the_region 223 ); 224 225 /* 226 * _Region_Get 227 * 228 * DESCRIPTION: 229 * 230 * This function maps region IDs to region control blocks. 231 * If ID corresponds to a local region, then it returns 232 * the_region control pointer which maps to ID and location 233 * is set to OBJECTS_LOCAL. Otherwise, location is set 234 * to OBJECTS_ERROR and the_region is undefined. 235 */ 236 237 STATIC INLINE Region_Control *_Region_Get ( 238 Objects_Id id, 239 Objects_Locations *location 240 ); 241 242 /* 243 * _Region_Allocate_segment 244 * 245 * DESCRIPTION: 246 * 247 * This function attempts to allocate a segment from the_region. 248 * If successful, it returns the address of the allocated segment. 249 * Otherwise, it returns NULL. 250 */ 251 252 STATIC INLINE void *_Region_Allocate_segment ( 253 Region_Control *the_region, 254 unsigned32 size 255 ); 256 257 /* 258 * _Region_Free_segment 259 * 260 * DESCRIPTION: 261 * 262 * This function frees the_segment to the_region. 263 */ 264 265 STATIC INLINE boolean _Region_Free_segment ( 266 Region_Control *the_region, 267 void *the_segment 268 ); 269 270 /* 271 * _Region_Is_null 272 * 273 * DESCRIPTION: 274 * 275 * This function returns TRUE if the_region is NULL and FALSE otherwise. 276 */ 277 278 STATIC INLINE boolean _Region_Is_null ( 279 Region_Control *the_region 280 ); 281 201 #ifndef __RTEMS_APPLICATION__ 282 202 #include <rtems/rtems/region.inl> 203 #endif 283 204 #include <rtems/rtems/regionmp.h> 284 205 -
c/src/exec/rtems/include/rtems/rtems/sem.h
r8e76546 r1a8fde6c 179 179 180 180 /* 181 * _Semaphore_Allocate182 *183 * DESCRIPTION:184 *185 * This function allocates a semaphore control block from186 * the inactive chain of free semaphore control blocks.187 */188 189 STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void );190 191 /*192 * _Semaphore_Free193 *194 * DESCRIPTION:195 *196 * This routine frees a semaphore control block to the197 * inactive chain of free semaphore control blocks.198 */199 200 STATIC INLINE void _Semaphore_Free (201 Semaphore_Control *the_semaphore202 );203 204 /*205 * _Semaphore_Get206 *207 * DESCRIPTION:208 *209 * This function maps semaphore IDs to semaphore control blocks.210 * If ID corresponds to a local semaphore, then it returns211 * the_semaphore control pointer which maps to ID and location212 * is set to OBJECTS_LOCAL. if the semaphore ID is global and213 * resides on a remote node, then location is set to OBJECTS_REMOTE,214 * and the_semaphore is undefined. Otherwise, location is set215 * to OBJECTS_ERROR and the_semaphore is undefined.216 */217 218 STATIC INLINE Semaphore_Control *_Semaphore_Get (219 rtems_id id,220 Objects_Locations *location221 );222 223 /*224 * _Semaphore_Is_null225 *226 * DESCRIPTION:227 *228 * This function returns TRUE if the_semaphore is NULL and FALSE otherwise.229 */230 231 STATIC INLINE boolean _Semaphore_Is_null (232 Semaphore_Control *the_semaphore233 );234 235 /*236 181 * _Semaphore_Translate_core_mutex_return_code 237 182 * … … 291 236 ); 292 237 238 #ifndef __RTEMS_APPLICATION__ 293 239 #include <rtems/rtems/sem.inl> 240 #endif 294 241 #include <rtems/rtems/semmp.h> 295 242 -
c/src/exec/rtems/include/rtems/rtems/status.h
r8e76546 r1a8fde6c 70 70 71 71 /* 72 * rtems_is_status_successful 73 * 74 * DESCRIPTION: 75 * 76 * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, 77 * and FALSE otherwise. 72 * Applications are allowed to use the macros to compare status codes. 78 73 */ 79 80 STATIC INLINE boolean rtems_is_status_successful (81 rtems_status_code code82 );83 84 /*85 * rtems_are_statuses_equal86 *87 * DESCRIPTION:88 *89 * This function returns TRUE if the status code1 is equal to code2,90 * and FALSE otherwise.91 */92 93 STATIC INLINE boolean rtems_are_statuses_equal (94 rtems_status_code code1,95 rtems_status_code code296 );97 74 98 75 #include <rtems/rtems/status.inl> -
c/src/exec/rtems/include/rtems/rtems/support.h
r8e76546 r1a8fde6c 25 25 26 26 /* 27 * rtems_is_name_valid28 *29 * DESCRIPTION:30 *31 * This function returns TRUE if the name is valid, and FALSE otherwise.32 */33 34 STATIC INLINE rtems_boolean rtems_is_name_valid (35 rtems_name name36 );37 38 /*39 27 * rtems_build_name 40 28 * … … 53 41 ( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) ) 54 42 55 /*56 * rtems_name_to_characters57 *58 * DESCRIPTION:59 *60 * This function breaks the object name into the four component61 * characters C1, C2, C3, and C4.62 *63 */64 65 STATIC INLINE void rtems_name_to_characters(66 rtems_name name,67 char *c1,68 char *c2,69 char *c3,70 char *c471 );72 73 43 /* 74 44 * rtems_get_class -
c/src/exec/rtems/include/rtems/rtems/tasks.h
r8e76546 r1a8fde6c 393 393 ); 394 394 395 /*396 * _RTEMS_tasks_Allocate397 *398 * DESCRIPTION:399 *400 * This function allocates a task control block from401 * the inactive chain of free task control blocks.402 */403 404 STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void );405 406 /*407 * _RTEMS_tasks_Free408 *409 * DESCRIPTION:410 *411 * This routine frees a task control block to the412 * inactive chain of free task control blocks.413 414 */415 416 STATIC INLINE void _RTEMS_tasks_Free (417 Thread_Control *the_task418 );419 420 /*421 * _RTEMS_tasks_Priority_to_Core422 *423 * DESCRIPTION:424 *425 * This function converts an RTEMS API priority into a core priority.426 */427 428 STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(429 rtems_task_priority priority430 );431 432 395 /*PAGE 433 396 * … … 444 407 void _RTEMS_tasks_Initialize_user_tasks( void ); 445 408 446 /*PAGE 447 * 448 * _RTEMS_tasks_Priority_is_valid 449 * 450 */ 451 452 STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid ( 453 rtems_task_priority the_priority 454 ); 455 409 #ifndef __RTEMS_APPLICATION__ 456 410 #include <rtems/rtems/tasks.inl> 411 #endif 457 412 #include <rtems/rtems/taskmp.h> 458 413 -
c/src/exec/rtems/include/rtems/rtems/timer.h
r8e76546 r1a8fde6c 196 196 ); 197 197 198 /* 199 * _Timer_Allocate 200 * 201 * DESCRIPTION: 202 * 203 * This function allocates a timer control block from 204 * the inactive chain of free timer control blocks. 205 */ 206 207 STATIC INLINE Timer_Control *_Timer_Allocate( void ); 208 209 /* 210 * _Timer_Free 211 * 212 * DESCRIPTION: 213 * 214 * This routine frees a timer control block to the 215 * inactive chain of free timer control blocks. 216 */ 217 218 STATIC INLINE void _Timer_Free ( 219 Timer_Control *the_timer 220 ); 221 222 /* 223 * _Timer_Get 224 * 225 * DESCRIPTION: 226 * 227 * This function maps timer IDs to timer control blocks. 228 * If ID corresponds to a local timer, then it returns 229 * the timer control pointer which maps to ID and location 230 * is set to OBJECTS_LOCAL. Otherwise, location is set 231 * to OBJECTS_ERROR and the returned value is undefined. 232 */ 233 234 STATIC INLINE Timer_Control *_Timer_Get ( 235 Objects_Id id, 236 Objects_Locations *location 237 ); 238 239 /* 240 * _Timer_Is_interval_class 241 * 242 * DESCRIPTION: 243 * 244 * This function returns TRUE if the class is that of an INTERVAL 245 * timer, and FALSE otherwise. 246 */ 247 248 STATIC INLINE boolean _Timer_Is_interval_class ( 249 Timer_Classes the_class 250 ); 251 252 /* 253 * _Timer_Is_time_of_day_class 254 * 255 * DESCRIPTION: 256 * 257 * This function returns TRUE if the class is that of an INTERVAL 258 * timer, and FALSE otherwise. 259 */ 260 261 STATIC INLINE boolean _Timer_Is_timer_of_day_class ( 262 Timer_Classes the_class 263 ); 264 265 /* 266 * _Timer_Is_dormant_class 267 * 268 * DESCRIPTION: 269 * 270 * This function returns TRUE if the class is that of a DORMANT 271 * timer, and FALSE otherwise. 272 */ 273 274 STATIC INLINE boolean _Timer_Is_dormant_class ( 275 Timer_Classes the_class 276 ); 277 278 /* 279 * _Timer_Is_null 280 * 281 * DESCRIPTION: 282 * 283 * This function returns TRUE if the_timer is NULL and FALSE otherwise. 284 */ 285 286 STATIC INLINE boolean _Timer_Is_null ( 287 Timer_Control *the_timer 288 ); 289 198 #ifndef __RTEMS_APPLICATION__ 290 199 #include <rtems/rtems/timer.inl> 200 #endif 291 201 292 202 #ifdef __cplusplus -
c/src/exec/rtems/inline/asr.inl
r8e76546 r1a8fde6c 24 24 * _ASR_Initialize 25 25 * 26 * DESCRIPTION: 27 * 28 * This routine initializes the given RTEMS_ASR information record. 26 29 */ 27 30 … … 42 45 * _ASR_Swap_signals 43 46 * 47 * DESCRIPTION: 48 * 49 * This routine atomically swaps the pending and posted signal 50 * sets. This is done when the thread alters its mode in such a 51 * way that the RTEMS_ASR disable/enable flag changes. 44 52 */ 45 53 … … 62 70 * _ASR_Is_null_handler 63 71 * 72 * DESCRIPTION: 73 * 74 * This function returns TRUE if the given asr_handler is NULL and 75 * FALSE otherwise. 64 76 */ 65 77 … … 75 87 * _ASR_Are_signals_pending 76 88 * 89 * DESCRIPTION: 90 * 91 * This function returns TRUE if there are signals pending in the 92 * given RTEMS_ASR information record and FALSE otherwise. 77 93 */ 78 94 … … 88 104 * _ASR_Post_signals 89 105 * 106 * DESCRIPTION: 107 * 108 * This routine posts the given signals into the signal_set 109 * passed in. The result is returned to the user in signal_set. 110 * 111 * NOTE: This must be implemented as a macro. 90 112 */ 91 113 -
c/src/exec/rtems/inline/attr.inl
r8e76546 r1a8fde6c 21 21 * 22 22 * _Attributes_Set 23 * 24 * DESCRIPTION: 25 * 26 * This function sets the requested new_attributes in the attribute_set 27 * passed in. The result is returned to the user. 23 28 */ 24 29 … … 34 39 * 35 40 * _Attributes_Clear 41 * 42 * DESCRIPTION: 43 * 44 * This function clears the requested new_attributes in the attribute_set 45 * passed in. The result is returned to the user. 36 46 */ 37 47 … … 48 58 * _Attributes_Is_floating_point 49 59 * 60 * DESCRIPTION: 61 * 62 * This function returns TRUE if the floating point attribute is 63 * enabled in the attribute_set and FALSE otherwise. 50 64 */ 51 65 … … 61 75 * _Attributes_Is_global 62 76 * 77 * DESCRIPTION: 78 * 79 * This function returns TRUE if the global object attribute is 80 * enabled in the attribute_set and FALSE otherwise. 63 81 */ 64 82 … … 74 92 * _Attributes_Is_priority 75 93 * 94 * DESCRIPTION: 95 * 96 * This function returns TRUE if the priority attribute is 97 * enabled in the attribute_set and FALSE otherwise. 76 98 */ 77 99 … … 87 109 * _Attributes_Is_binary_semaphore 88 110 * 111 * DESCRIPTION: 112 * 113 * This function returns TRUE if the binary semaphore attribute is 114 * enabled in the attribute_set and FALSE otherwise. 89 115 */ 90 116 … … 100 126 * _Attributes_Is_inherit_priority 101 127 * 128 * DESCRIPTION: 129 * 130 * This function returns TRUE if the priority inheritance attribute 131 * is enabled in the attribute_set and FALSE otherwise. 102 132 */ 103 133 … … 113 143 * _Attributes_Is_priority_ceiling 114 144 * 145 * DESCRIPTION: 146 * 147 * This function returns TRUE if the priority ceiling attribute 148 * is enabled in the attribute_set and FALSE otherwise. 115 149 */ 116 150 -
c/src/exec/rtems/inline/dpmem.inl
r8e76546 r1a8fde6c 23 23 * _Dual_ported_memory_Allocate 24 24 * 25 * DESCRIPTION: 26 * 27 * This routine allocates a port control block from the inactive chain 28 * of free port control blocks. 25 29 */ 26 30 … … 36 40 * _Dual_ported_memory_Free 37 41 * 42 * DESCRIPTION: 43 * 44 * This routine frees a port control block to the inactive chain 45 * of free port control blocks. 38 46 */ 39 47 … … 49 57 * _Dual_ported_memory_Get 50 58 * 59 * DESCRIPTION: 60 * 61 * This function maps port IDs to port control blocks. If ID 62 * corresponds to a local port, then it returns the_port control 63 * pointer which maps to ID and location is set to OBJECTS_LOCAL. 64 * Global ports are not supported, thus if ID does not map to a 65 * local port, location is set to OBJECTS_ERROR and the_port is 66 * undefined. 51 67 */ 52 68 … … 63 79 * 64 80 * _Dual_ported_memory_Is_null 81 * 82 * DESCRIPTION: 83 * 84 * This function returns TRUE if the_port is NULL and FALSE otherwise. 65 85 */ 66 86 -
c/src/exec/rtems/inline/event.inl
r8e76546 r1a8fde6c 20 20 /* 21 21 * Event_Manager_initialization 22 * 23 * DESCRIPTION: 24 * 25 * This routine performs the initialization necessary for this manager. 22 26 */ 23 27 -
c/src/exec/rtems/inline/eventset.inl
r8e76546 r1a8fde6c 20 20 * 21 21 * _Event_sets_Is_empty 22 * 23 * DESCRIPTION: 24 * 25 * This function returns TRUE if on events are posted in the event_set, 26 * and FALSE otherwise. 22 27 */ 23 28 … … 32 37 * 33 38 * _Event_sets_Post 39 * 40 * DESCRIPTION: 41 * 42 * This routine posts the given new_events into the event_set 43 * passed in. The result is returned to the user in event_set. 34 44 */ 35 45 … … 45 55 * 46 56 * _Event_sets_Get 57 * 58 * DESCRIPTION: 59 * 60 * This function returns the events in event_condition which are 61 * set in event_set. 47 62 */ 48 63 … … 58 73 * 59 74 * _Event_sets_Clear 75 * 76 * DESCRIPTION: 77 * 78 * This function removes the events in mask from the event_set 79 * passed in. The result is returned to the user in event_set. 60 80 */ 61 81 -
c/src/exec/rtems/inline/message.inl
r8e76546 r1a8fde6c 24 24 * _Message_queue_Is_null 25 25 * 26 * DESCRIPTION: 27 * 28 * This function places the_message at the rear of the outstanding 29 * messages on the_message_queue. 26 30 */ 27 31 … … 38 42 * _Message_queue_Free 39 43 * 44 * DESCRIPTION: 45 * 46 * This routine deallocates a message queue control block into 47 * the inactive chain of free message queue control blocks. 40 48 */ 41 49 … … 51 59 * _Message_queue_Get 52 60 * 61 * DESCRIPTION: 62 * 63 * This function maps message queue IDs to message queue control 64 * blocks. If ID corresponds to a local message queue, then it 65 * returns the_message_queue control pointer which maps to ID 66 * and location is set to OBJECTS_LOCAL. If the message queue ID is 67 * global and resides on a remote node, then location is set 68 * to OBJECTS_REMOTE, and the_message_queue is undefined. 69 * Otherwise, location is set to OBJECTS_ERROR and 70 * the_message_queue is undefined. 53 71 */ 54 72 -
c/src/exec/rtems/inline/modes.inl
r8e76546 r1a8fde6c 20 20 /*PAGE 21 21 * 22 * RTEMS_INTERRUPT_LEVEL23 */24 25 STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (26 Modes_Control mode_set27 )28 {29 return mode_set & RTEMS_INTERRUPT_MASK;30 }31 32 /*PAGE33 *34 22 * _Modes_Mask_changed 35 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if any of the mode flags in mask 27 * are set in mode_set, and FALSE otherwise. 36 28 */ 37 29 … … 48 40 * _Modes_Is_asr_disabled 49 41 * 42 * DESCRIPTION: 43 * 44 * This function returns TRUE if mode_set indicates that Asynchronous 45 * Signal Processing is disabled, and FALSE otherwise. 50 46 */ 51 47 … … 61 57 * _Modes_Is_preempt 62 58 * 59 * DESCRIPTION: 60 * 61 * This function returns TRUE if mode_set indicates that preemption 62 * is enabled, and FALSE otherwise. 63 63 */ 64 64 … … 74 74 * _Modes_Is_timeslice 75 75 * 76 * DESCRIPTION: 77 * 78 * This function returns TRUE if mode_set indicates that timeslicing 79 * is enabled, and FALSE otherwise. 76 80 */ 77 81 … … 87 91 * _Modes_Get_interrupt_level 88 92 * 93 * DESCRIPTION: 94 * 95 * This function returns the interrupt level portion of the mode_set. 89 96 */ 90 97 … … 100 107 * _Modes_Set_interrupt_level 101 108 * 109 * DESCRIPTION: 110 * 111 * This routine sets the current interrupt level to that specified 112 * in the mode_set. 102 113 */ 103 114 … … 113 124 * _Modes_Change 114 125 * 126 * DESCRIPTION: 127 * 128 * This routine changes the modes in old_mode_set indicated by 129 * mask to the requested values in new_mode_set. The resulting 130 * mode set is returned in out_mode_set and the modes that changed 131 * is returned in changed. 115 132 */ 116 133 -
c/src/exec/rtems/inline/options.inl
r8e76546 r1a8fde6c 22 22 * _Options_Is_no_wait 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in 27 * option_set, and FALSE otherwise. 24 28 */ 25 29 … … 35 39 * _Options_Is_any 36 40 * 41 * DESCRIPTION: 42 * 43 * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in 44 * OPTION_SET, and FALSE otherwise. 37 45 */ 38 46 -
c/src/exec/rtems/inline/part.inl
r8e76546 r1a8fde6c 22 22 * _Partition_Allocate_buffer 23 23 * 24 * DESCRIPTION: 25 * 26 * This function attempts to allocate a buffer from the_partition. 27 * If successful, it returns the address of the allocated buffer. 28 * Otherwise, it returns NULL. 24 29 */ 25 30 … … 35 40 * _Partition_Free_buffer 36 41 * 42 * DESCRIPTION: 43 * 44 * This routine frees the_buffer to the_partition. 37 45 */ 38 46 … … 49 57 * _Partition_Is_buffer_on_boundary 50 58 * 59 * DESCRIPTION: 60 * 61 * This function returns TRUE if the_buffer is on a valid buffer 62 * boundary for the_partition, and FALSE otherwise. 51 63 */ 52 64 … … 70 82 * _Partition_Is_buffer_valid 71 83 * 84 * DESCRIPTION: 85 * 86 * This function returns TRUE if the_buffer is a valid buffer from 87 * the_partition, otherwise FALSE is returned. 72 88 */ 73 89 … … 93 109 * _Partition_Is_buffer_size_aligned 94 110 * 111 * DESCRIPTION: 112 * 113 * This function returns TRUE if the use of the specified buffer_size 114 * will result in the allocation of buffers whose first byte is 115 * properly aligned, and FALSE otherwise. 95 116 */ 96 117 … … 106 127 * _Partition_Allocate 107 128 * 129 * DESCRIPTION: 130 * 131 * This function allocates a partition control block from 132 * the inactive chain of free partition control blocks. 108 133 */ 109 134 … … 117 142 * _Partition_Free 118 143 * 144 * DESCRIPTION: 145 * 146 * This routine frees a partition control block to the 147 * inactive chain of free partition control blocks. 119 148 */ 120 149 … … 130 159 * _Partition_Get 131 160 * 161 * DESCRIPTION: 162 * 163 * This function maps partition IDs to partition control blocks. 164 * If ID corresponds to a local partition, then it returns 165 * the_partition control pointer which maps to ID and location 166 * is set to OBJECTS_LOCAL. If the partition ID is global and 167 * resides on a remote node, then location is set to OBJECTS_REMOTE, 168 * and the_partition is undefined. Otherwise, location is set 169 * to OBJECTS_ERROR and the_partition is undefined. 132 170 */ 133 171 … … 145 183 * _Partition_Is_null 146 184 * 185 * DESCRIPTION: 186 * 187 * This function returns TRUE if the_partition is NULL 188 * and FALSE otherwise. 147 189 */ 148 190 -
c/src/exec/rtems/inline/ratemon.inl
r8e76546 r1a8fde6c 22 22 * _Rate_monotonic_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a period control block from 27 * the inactive chain of free period control blocks. 24 28 */ 25 29 … … 34 38 * _Rate_monotonic_Free 35 39 * 40 * DESCRIPTION: 41 * 42 * This routine allocates a period control block from 43 * the inactive chain of free period control blocks. 36 44 */ 37 45 … … 47 55 * _Rate_monotonic_Get 48 56 * 57 * DESCRIPTION: 58 * 59 * This function maps period IDs to period control blocks. 60 * If ID corresponds to a local period, then it returns 61 * the_period control pointer which maps to ID and location 62 * is set to OBJECTS_LOCAL. Otherwise, location is set 63 * to OBJECTS_ERROR and the_period is undefined. 49 64 */ 50 65 … … 62 77 * _Rate_monotonic_Is_active 63 78 * 79 * DESCRIPTION: 80 * 81 * This function returns TRUE if the_period is in the ACTIVE state, 82 * and FALSE otherwise. 64 83 */ 65 84 … … 75 94 * _Rate_monotonic_Is_inactive 76 95 * 96 * DESCRIPTION: 97 * 98 * This function returns TRUE if the_period is in the ACTIVE state, 99 * and FALSE otherwise. 77 100 */ 78 101 … … 88 111 * _Rate_monotonic_Is_expired 89 112 * 113 * DESCRIPTION: 114 * 115 * This function returns TRUE if the_period is in the EXPIRED state, 116 * and FALSE otherwise. 90 117 */ 91 118 … … 101 128 * _Rate_monotonic_Is_null 102 129 * 130 * DESCRIPTION: 131 * 132 * This function returns TRUE if the_period is NULL and FALSE otherwise. 103 133 */ 104 134 -
c/src/exec/rtems/inline/region.inl
r8e76546 r1a8fde6c 22 22 * _Region_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a region control block from 27 * the inactive chain of free region control blocks. 24 28 */ 25 29 … … 33 37 * _Region_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a region control block to the 42 * inactive chain of free region control blocks. 35 43 */ 36 44 … … 46 54 * _Region_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps region IDs to region control blocks. 59 * If ID corresponds to a local region, then it returns 60 * the_region control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the_region is undefined. 48 63 */ 49 64 … … 61 76 * _Region_Allocate_segment 62 77 * 78 * DESCRIPTION: 79 * 80 * This function attempts to allocate a segment from the_region. 81 * If successful, it returns the address of the allocated segment. 82 * Otherwise, it returns NULL. 63 83 */ 64 84 … … 75 95 * _Region_Free_segment 76 96 * 97 * DESCRIPTION: 98 * 99 * This function frees the_segment to the_region. 77 100 */ 78 101 … … 89 112 * _Region_Is_null 90 113 * 114 * DESCRIPTION: 115 * 116 * This function returns TRUE if the_region is NULL and FALSE otherwise. 91 117 */ 92 118 -
c/src/exec/rtems/inline/rtems/rtems/asr.inl
r8e76546 r1a8fde6c 24 24 * _ASR_Initialize 25 25 * 26 * DESCRIPTION: 27 * 28 * This routine initializes the given RTEMS_ASR information record. 26 29 */ 27 30 … … 42 45 * _ASR_Swap_signals 43 46 * 47 * DESCRIPTION: 48 * 49 * This routine atomically swaps the pending and posted signal 50 * sets. This is done when the thread alters its mode in such a 51 * way that the RTEMS_ASR disable/enable flag changes. 44 52 */ 45 53 … … 62 70 * _ASR_Is_null_handler 63 71 * 72 * DESCRIPTION: 73 * 74 * This function returns TRUE if the given asr_handler is NULL and 75 * FALSE otherwise. 64 76 */ 65 77 … … 75 87 * _ASR_Are_signals_pending 76 88 * 89 * DESCRIPTION: 90 * 91 * This function returns TRUE if there are signals pending in the 92 * given RTEMS_ASR information record and FALSE otherwise. 77 93 */ 78 94 … … 88 104 * _ASR_Post_signals 89 105 * 106 * DESCRIPTION: 107 * 108 * This routine posts the given signals into the signal_set 109 * passed in. The result is returned to the user in signal_set. 110 * 111 * NOTE: This must be implemented as a macro. 90 112 */ 91 113 -
c/src/exec/rtems/inline/rtems/rtems/attr.inl
r8e76546 r1a8fde6c 21 21 * 22 22 * _Attributes_Set 23 * 24 * DESCRIPTION: 25 * 26 * This function sets the requested new_attributes in the attribute_set 27 * passed in. The result is returned to the user. 23 28 */ 24 29 … … 34 39 * 35 40 * _Attributes_Clear 41 * 42 * DESCRIPTION: 43 * 44 * This function clears the requested new_attributes in the attribute_set 45 * passed in. The result is returned to the user. 36 46 */ 37 47 … … 48 58 * _Attributes_Is_floating_point 49 59 * 60 * DESCRIPTION: 61 * 62 * This function returns TRUE if the floating point attribute is 63 * enabled in the attribute_set and FALSE otherwise. 50 64 */ 51 65 … … 61 75 * _Attributes_Is_global 62 76 * 77 * DESCRIPTION: 78 * 79 * This function returns TRUE if the global object attribute is 80 * enabled in the attribute_set and FALSE otherwise. 63 81 */ 64 82 … … 74 92 * _Attributes_Is_priority 75 93 * 94 * DESCRIPTION: 95 * 96 * This function returns TRUE if the priority attribute is 97 * enabled in the attribute_set and FALSE otherwise. 76 98 */ 77 99 … … 87 109 * _Attributes_Is_binary_semaphore 88 110 * 111 * DESCRIPTION: 112 * 113 * This function returns TRUE if the binary semaphore attribute is 114 * enabled in the attribute_set and FALSE otherwise. 89 115 */ 90 116 … … 100 126 * _Attributes_Is_inherit_priority 101 127 * 128 * DESCRIPTION: 129 * 130 * This function returns TRUE if the priority inheritance attribute 131 * is enabled in the attribute_set and FALSE otherwise. 102 132 */ 103 133 … … 113 143 * _Attributes_Is_priority_ceiling 114 144 * 145 * DESCRIPTION: 146 * 147 * This function returns TRUE if the priority ceiling attribute 148 * is enabled in the attribute_set and FALSE otherwise. 115 149 */ 116 150 -
c/src/exec/rtems/inline/rtems/rtems/dpmem.inl
r8e76546 r1a8fde6c 23 23 * _Dual_ported_memory_Allocate 24 24 * 25 * DESCRIPTION: 26 * 27 * This routine allocates a port control block from the inactive chain 28 * of free port control blocks. 25 29 */ 26 30 … … 36 40 * _Dual_ported_memory_Free 37 41 * 42 * DESCRIPTION: 43 * 44 * This routine frees a port control block to the inactive chain 45 * of free port control blocks. 38 46 */ 39 47 … … 49 57 * _Dual_ported_memory_Get 50 58 * 59 * DESCRIPTION: 60 * 61 * This function maps port IDs to port control blocks. If ID 62 * corresponds to a local port, then it returns the_port control 63 * pointer which maps to ID and location is set to OBJECTS_LOCAL. 64 * Global ports are not supported, thus if ID does not map to a 65 * local port, location is set to OBJECTS_ERROR and the_port is 66 * undefined. 51 67 */ 52 68 … … 63 79 * 64 80 * _Dual_ported_memory_Is_null 81 * 82 * DESCRIPTION: 83 * 84 * This function returns TRUE if the_port is NULL and FALSE otherwise. 65 85 */ 66 86 -
c/src/exec/rtems/inline/rtems/rtems/event.inl
r8e76546 r1a8fde6c 20 20 /* 21 21 * Event_Manager_initialization 22 * 23 * DESCRIPTION: 24 * 25 * This routine performs the initialization necessary for this manager. 22 26 */ 23 27 -
c/src/exec/rtems/inline/rtems/rtems/eventset.inl
r8e76546 r1a8fde6c 20 20 * 21 21 * _Event_sets_Is_empty 22 * 23 * DESCRIPTION: 24 * 25 * This function returns TRUE if on events are posted in the event_set, 26 * and FALSE otherwise. 22 27 */ 23 28 … … 32 37 * 33 38 * _Event_sets_Post 39 * 40 * DESCRIPTION: 41 * 42 * This routine posts the given new_events into the event_set 43 * passed in. The result is returned to the user in event_set. 34 44 */ 35 45 … … 45 55 * 46 56 * _Event_sets_Get 57 * 58 * DESCRIPTION: 59 * 60 * This function returns the events in event_condition which are 61 * set in event_set. 47 62 */ 48 63 … … 58 73 * 59 74 * _Event_sets_Clear 75 * 76 * DESCRIPTION: 77 * 78 * This function removes the events in mask from the event_set 79 * passed in. The result is returned to the user in event_set. 60 80 */ 61 81 -
c/src/exec/rtems/inline/rtems/rtems/message.inl
r8e76546 r1a8fde6c 24 24 * _Message_queue_Is_null 25 25 * 26 * DESCRIPTION: 27 * 28 * This function places the_message at the rear of the outstanding 29 * messages on the_message_queue. 26 30 */ 27 31 … … 38 42 * _Message_queue_Free 39 43 * 44 * DESCRIPTION: 45 * 46 * This routine deallocates a message queue control block into 47 * the inactive chain of free message queue control blocks. 40 48 */ 41 49 … … 51 59 * _Message_queue_Get 52 60 * 61 * DESCRIPTION: 62 * 63 * This function maps message queue IDs to message queue control 64 * blocks. If ID corresponds to a local message queue, then it 65 * returns the_message_queue control pointer which maps to ID 66 * and location is set to OBJECTS_LOCAL. If the message queue ID is 67 * global and resides on a remote node, then location is set 68 * to OBJECTS_REMOTE, and the_message_queue is undefined. 69 * Otherwise, location is set to OBJECTS_ERROR and 70 * the_message_queue is undefined. 53 71 */ 54 72 -
c/src/exec/rtems/inline/rtems/rtems/modes.inl
r8e76546 r1a8fde6c 20 20 /*PAGE 21 21 * 22 * RTEMS_INTERRUPT_LEVEL23 */24 25 STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (26 Modes_Control mode_set27 )28 {29 return mode_set & RTEMS_INTERRUPT_MASK;30 }31 32 /*PAGE33 *34 22 * _Modes_Mask_changed 35 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if any of the mode flags in mask 27 * are set in mode_set, and FALSE otherwise. 36 28 */ 37 29 … … 48 40 * _Modes_Is_asr_disabled 49 41 * 42 * DESCRIPTION: 43 * 44 * This function returns TRUE if mode_set indicates that Asynchronous 45 * Signal Processing is disabled, and FALSE otherwise. 50 46 */ 51 47 … … 61 57 * _Modes_Is_preempt 62 58 * 59 * DESCRIPTION: 60 * 61 * This function returns TRUE if mode_set indicates that preemption 62 * is enabled, and FALSE otherwise. 63 63 */ 64 64 … … 74 74 * _Modes_Is_timeslice 75 75 * 76 * DESCRIPTION: 77 * 78 * This function returns TRUE if mode_set indicates that timeslicing 79 * is enabled, and FALSE otherwise. 76 80 */ 77 81 … … 87 91 * _Modes_Get_interrupt_level 88 92 * 93 * DESCRIPTION: 94 * 95 * This function returns the interrupt level portion of the mode_set. 89 96 */ 90 97 … … 100 107 * _Modes_Set_interrupt_level 101 108 * 109 * DESCRIPTION: 110 * 111 * This routine sets the current interrupt level to that specified 112 * in the mode_set. 102 113 */ 103 114 … … 113 124 * _Modes_Change 114 125 * 126 * DESCRIPTION: 127 * 128 * This routine changes the modes in old_mode_set indicated by 129 * mask to the requested values in new_mode_set. The resulting 130 * mode set is returned in out_mode_set and the modes that changed 131 * is returned in changed. 115 132 */ 116 133 -
c/src/exec/rtems/inline/rtems/rtems/options.inl
r8e76546 r1a8fde6c 22 22 * _Options_Is_no_wait 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in 27 * option_set, and FALSE otherwise. 24 28 */ 25 29 … … 35 39 * _Options_Is_any 36 40 * 41 * DESCRIPTION: 42 * 43 * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in 44 * OPTION_SET, and FALSE otherwise. 37 45 */ 38 46 -
c/src/exec/rtems/inline/rtems/rtems/part.inl
r8e76546 r1a8fde6c 22 22 * _Partition_Allocate_buffer 23 23 * 24 * DESCRIPTION: 25 * 26 * This function attempts to allocate a buffer from the_partition. 27 * If successful, it returns the address of the allocated buffer. 28 * Otherwise, it returns NULL. 24 29 */ 25 30 … … 35 40 * _Partition_Free_buffer 36 41 * 42 * DESCRIPTION: 43 * 44 * This routine frees the_buffer to the_partition. 37 45 */ 38 46 … … 49 57 * _Partition_Is_buffer_on_boundary 50 58 * 59 * DESCRIPTION: 60 * 61 * This function returns TRUE if the_buffer is on a valid buffer 62 * boundary for the_partition, and FALSE otherwise. 51 63 */ 52 64 … … 70 82 * _Partition_Is_buffer_valid 71 83 * 84 * DESCRIPTION: 85 * 86 * This function returns TRUE if the_buffer is a valid buffer from 87 * the_partition, otherwise FALSE is returned. 72 88 */ 73 89 … … 93 109 * _Partition_Is_buffer_size_aligned 94 110 * 111 * DESCRIPTION: 112 * 113 * This function returns TRUE if the use of the specified buffer_size 114 * will result in the allocation of buffers whose first byte is 115 * properly aligned, and FALSE otherwise. 95 116 */ 96 117 … … 106 127 * _Partition_Allocate 107 128 * 129 * DESCRIPTION: 130 * 131 * This function allocates a partition control block from 132 * the inactive chain of free partition control blocks. 108 133 */ 109 134 … … 117 142 * _Partition_Free 118 143 * 144 * DESCRIPTION: 145 * 146 * This routine frees a partition control block to the 147 * inactive chain of free partition control blocks. 119 148 */ 120 149 … … 130 159 * _Partition_Get 131 160 * 161 * DESCRIPTION: 162 * 163 * This function maps partition IDs to partition control blocks. 164 * If ID corresponds to a local partition, then it returns 165 * the_partition control pointer which maps to ID and location 166 * is set to OBJECTS_LOCAL. If the partition ID is global and 167 * resides on a remote node, then location is set to OBJECTS_REMOTE, 168 * and the_partition is undefined. Otherwise, location is set 169 * to OBJECTS_ERROR and the_partition is undefined. 132 170 */ 133 171 … … 145 183 * _Partition_Is_null 146 184 * 185 * DESCRIPTION: 186 * 187 * This function returns TRUE if the_partition is NULL 188 * and FALSE otherwise. 147 189 */ 148 190 -
c/src/exec/rtems/inline/rtems/rtems/ratemon.inl
r8e76546 r1a8fde6c 22 22 * _Rate_monotonic_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a period control block from 27 * the inactive chain of free period control blocks. 24 28 */ 25 29 … … 34 38 * _Rate_monotonic_Free 35 39 * 40 * DESCRIPTION: 41 * 42 * This routine allocates a period control block from 43 * the inactive chain of free period control blocks. 36 44 */ 37 45 … … 47 55 * _Rate_monotonic_Get 48 56 * 57 * DESCRIPTION: 58 * 59 * This function maps period IDs to period control blocks. 60 * If ID corresponds to a local period, then it returns 61 * the_period control pointer which maps to ID and location 62 * is set to OBJECTS_LOCAL. Otherwise, location is set 63 * to OBJECTS_ERROR and the_period is undefined. 49 64 */ 50 65 … … 62 77 * _Rate_monotonic_Is_active 63 78 * 79 * DESCRIPTION: 80 * 81 * This function returns TRUE if the_period is in the ACTIVE state, 82 * and FALSE otherwise. 64 83 */ 65 84 … … 75 94 * _Rate_monotonic_Is_inactive 76 95 * 96 * DESCRIPTION: 97 * 98 * This function returns TRUE if the_period is in the ACTIVE state, 99 * and FALSE otherwise. 77 100 */ 78 101 … … 88 111 * _Rate_monotonic_Is_expired 89 112 * 113 * DESCRIPTION: 114 * 115 * This function returns TRUE if the_period is in the EXPIRED state, 116 * and FALSE otherwise. 90 117 */ 91 118 … … 101 128 * _Rate_monotonic_Is_null 102 129 * 130 * DESCRIPTION: 131 * 132 * This function returns TRUE if the_period is NULL and FALSE otherwise. 103 133 */ 104 134 -
c/src/exec/rtems/inline/rtems/rtems/region.inl
r8e76546 r1a8fde6c 22 22 * _Region_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a region control block from 27 * the inactive chain of free region control blocks. 24 28 */ 25 29 … … 33 37 * _Region_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a region control block to the 42 * inactive chain of free region control blocks. 35 43 */ 36 44 … … 46 54 * _Region_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps region IDs to region control blocks. 59 * If ID corresponds to a local region, then it returns 60 * the_region control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the_region is undefined. 48 63 */ 49 64 … … 61 76 * _Region_Allocate_segment 62 77 * 78 * DESCRIPTION: 79 * 80 * This function attempts to allocate a segment from the_region. 81 * If successful, it returns the address of the allocated segment. 82 * Otherwise, it returns NULL. 63 83 */ 64 84 … … 75 95 * _Region_Free_segment 76 96 * 97 * DESCRIPTION: 98 * 99 * This function frees the_segment to the_region. 77 100 */ 78 101 … … 89 112 * _Region_Is_null 90 113 * 114 * DESCRIPTION: 115 * 116 * This function returns TRUE if the_region is NULL and FALSE otherwise. 91 117 */ 92 118 -
c/src/exec/rtems/inline/rtems/rtems/sem.inl
r8e76546 r1a8fde6c 22 22 * _Semaphore_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a semaphore control block from 27 * the inactive chain of free semaphore control blocks. 24 28 */ 25 29 … … 33 37 * _Semaphore_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a semaphore control block to the 42 * inactive chain of free semaphore control blocks. 35 43 */ 36 44 … … 46 54 * _Semaphore_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps semaphore IDs to semaphore control blocks. 59 * If ID corresponds to a local semaphore, then it returns 60 * the_semaphore control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. if the semaphore ID is global and 62 * resides on a remote node, then location is set to OBJECTS_REMOTE, 63 * and the_semaphore is undefined. Otherwise, location is set 64 * to OBJECTS_ERROR and the_semaphore is undefined. 48 65 */ 49 66 … … 61 78 * _Semaphore_Is_null 62 79 * 80 * DESCRIPTION: 81 * 82 * This function returns TRUE if the_semaphore is NULL and FALSE otherwise. 63 83 */ 64 84 -
c/src/exec/rtems/inline/rtems/rtems/status.inl
r8e76546 r1a8fde6c 22 22 * rtems_is_status_successful 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, 27 * and FALSE otherwise. 24 28 */ 25 29 … … 35 39 * rtems_are_statuses_equal 36 40 * 41 * DESCRIPTION: 42 * 43 * This function returns TRUE if the status code1 is equal to code2, 44 * and FALSE otherwise. 37 45 */ 38 46 -
c/src/exec/rtems/inline/rtems/rtems/support.inl
r8e76546 r1a8fde6c 22 22 * rtems_is_name_valid 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the name is valid, and FALSE otherwise. 24 27 */ 25 28 … … 35 38 * rtems_name_to_characters 36 39 * 40 * DESCRIPTION: 41 * 42 * This function breaks the object name into the four component 43 * characters C1, C2, C3, and C4. 37 44 */ 38 45 -
c/src/exec/rtems/inline/rtems/rtems/tasks.inl
r8e76546 r1a8fde6c 22 22 * _RTEMS_tasks_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a task control block from 27 * the inactive chain of free task control blocks. 24 28 */ 25 29 … … 33 37 * _RTEMS_tasks_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a task control block to the 42 * inactive chain of free task control blocks. 35 43 */ 36 44 … … 48 56 * 49 57 * _RTEMS_tasks_Priority_to_Core 58 * 59 * DESCRIPTION: 60 * 61 * This function converts an RTEMS API priority into a core priority. 50 62 */ 51 63 … … 61 73 * _RTEMS_tasks_Priority_is_valid 62 74 * 75 * DESCRIPTION: 76 * 77 * This function returns TRUE if the_priority is a valid user task priority 78 * and FALSE otherwise. 63 79 */ 64 80 -
c/src/exec/rtems/inline/rtems/rtems/timer.inl
r8e76546 r1a8fde6c 22 22 * _Timer_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a timer control block from 27 * the inactive chain of free timer control blocks. 24 28 */ 25 29 … … 33 37 * _Timer_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a timer control block to the 42 * inactive chain of free timer control blocks. 35 43 */ 36 44 … … 46 54 * _Timer_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps timer IDs to timer control blocks. 59 * If ID corresponds to a local timer, then it returns 60 * the timer control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the returned value is undefined. 48 63 */ 49 64 … … 61 76 * _Timer_Is_interval_class 62 77 * 78 * DESCRIPTION: 79 * 80 * This function returns TRUE if the class is that of an INTERVAL 81 * timer, and FALSE otherwise. 63 82 */ 64 83 … … 74 93 * _Timer_Is_time_of_day_class 75 94 * 95 * DESCRIPTION: 96 * 97 * This function returns TRUE if the class is that of an INTERVAL 98 * timer, and FALSE otherwise. 76 99 */ 77 100 … … 87 110 * _Timer_Is_dormant_class 88 111 * 112 * DESCRIPTION: 113 * 114 * This function returns TRUE if the class is that of a DORMANT 115 * timer, and FALSE otherwise. 89 116 */ 90 117 … … 100 127 * _Timer_Is_null 101 128 * 129 * DESCRIPTION: 130 * 131 * This function returns TRUE if the_timer is NULL and FALSE otherwise. 102 132 */ 103 133 -
c/src/exec/rtems/inline/sem.inl
r8e76546 r1a8fde6c 22 22 * _Semaphore_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a semaphore control block from 27 * the inactive chain of free semaphore control blocks. 24 28 */ 25 29 … … 33 37 * _Semaphore_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a semaphore control block to the 42 * inactive chain of free semaphore control blocks. 35 43 */ 36 44 … … 46 54 * _Semaphore_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps semaphore IDs to semaphore control blocks. 59 * If ID corresponds to a local semaphore, then it returns 60 * the_semaphore control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. if the semaphore ID is global and 62 * resides on a remote node, then location is set to OBJECTS_REMOTE, 63 * and the_semaphore is undefined. Otherwise, location is set 64 * to OBJECTS_ERROR and the_semaphore is undefined. 48 65 */ 49 66 … … 61 78 * _Semaphore_Is_null 62 79 * 80 * DESCRIPTION: 81 * 82 * This function returns TRUE if the_semaphore is NULL and FALSE otherwise. 63 83 */ 64 84 -
c/src/exec/rtems/inline/status.inl
r8e76546 r1a8fde6c 22 22 * rtems_is_status_successful 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL, 27 * and FALSE otherwise. 24 28 */ 25 29 … … 35 39 * rtems_are_statuses_equal 36 40 * 41 * DESCRIPTION: 42 * 43 * This function returns TRUE if the status code1 is equal to code2, 44 * and FALSE otherwise. 37 45 */ 38 46 -
c/src/exec/rtems/inline/support.inl
r8e76546 r1a8fde6c 22 22 * rtems_is_name_valid 23 23 * 24 * DESCRIPTION: 25 * 26 * This function returns TRUE if the name is valid, and FALSE otherwise. 24 27 */ 25 28 … … 35 38 * rtems_name_to_characters 36 39 * 40 * DESCRIPTION: 41 * 42 * This function breaks the object name into the four component 43 * characters C1, C2, C3, and C4. 37 44 */ 38 45 -
c/src/exec/rtems/inline/tasks.inl
r8e76546 r1a8fde6c 22 22 * _RTEMS_tasks_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a task control block from 27 * the inactive chain of free task control blocks. 24 28 */ 25 29 … … 33 37 * _RTEMS_tasks_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a task control block to the 42 * inactive chain of free task control blocks. 35 43 */ 36 44 … … 48 56 * 49 57 * _RTEMS_tasks_Priority_to_Core 58 * 59 * DESCRIPTION: 60 * 61 * This function converts an RTEMS API priority into a core priority. 50 62 */ 51 63 … … 61 73 * _RTEMS_tasks_Priority_is_valid 62 74 * 75 * DESCRIPTION: 76 * 77 * This function returns TRUE if the_priority is a valid user task priority 78 * and FALSE otherwise. 63 79 */ 64 80 -
c/src/exec/rtems/inline/timer.inl
r8e76546 r1a8fde6c 22 22 * _Timer_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a timer control block from 27 * the inactive chain of free timer control blocks. 24 28 */ 25 29 … … 33 37 * _Timer_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a timer control block to the 42 * inactive chain of free timer control blocks. 35 43 */ 36 44 … … 46 54 * _Timer_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps timer IDs to timer control blocks. 59 * If ID corresponds to a local timer, then it returns 60 * the timer control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the returned value is undefined. 48 63 */ 49 64 … … 61 76 * _Timer_Is_interval_class 62 77 * 78 * DESCRIPTION: 79 * 80 * This function returns TRUE if the class is that of an INTERVAL 81 * timer, and FALSE otherwise. 63 82 */ 64 83 … … 74 93 * _Timer_Is_time_of_day_class 75 94 * 95 * DESCRIPTION: 96 * 97 * This function returns TRUE if the class is that of an INTERVAL 98 * timer, and FALSE otherwise. 76 99 */ 77 100 … … 87 110 * _Timer_Is_dormant_class 88 111 * 112 * DESCRIPTION: 113 * 114 * This function returns TRUE if the class is that of a DORMANT 115 * timer, and FALSE otherwise. 89 116 */ 90 117 … … 100 127 * _Timer_Is_null 101 128 * 129 * DESCRIPTION: 130 * 131 * This function returns TRUE if the_timer is NULL and FALSE otherwise. 102 132 */ 103 133 -
c/src/exec/rtems/macros/modes.inl
r8e76546 r1a8fde6c 17 17 #ifndef __MODES_inl 18 18 #define __MODES_inl 19 20 /*PAGE21 *22 * RTEMS_INTERRUPT_LEVEL23 */24 25 #define RTEMS_INTERRUPT_LEVEL( _mode_set ) \26 ( (_mode_set) & RTEMS_INTERRUPT_MASK )27 19 28 20 /*PAGE -
c/src/exec/rtems/macros/rtems/rtems/modes.inl
r8e76546 r1a8fde6c 17 17 #ifndef __MODES_inl 18 18 #define __MODES_inl 19 20 /*PAGE21 *22 * RTEMS_INTERRUPT_LEVEL23 */24 25 #define RTEMS_INTERRUPT_LEVEL( _mode_set ) \26 ( (_mode_set) & RTEMS_INTERRUPT_MASK )27 19 28 20 /*PAGE -
c/src/exec/sapi/headers/extension.h
r8e76546 r1a8fde6c 125 125 ); 126 126 127 /* 128 * _Extension_Allocate 129 * 130 * DESCRIPTION: 131 * 132 * This function allocates a extension control block from 133 * the inactive chain of free extension control blocks. 134 */ 135 136 STATIC INLINE Extension_Control *_Extension_Allocate( void ); 137 138 /* 139 * _Extension_Free 140 * 141 * DESCRIPTION: 142 * 143 * This routine frees a extension control block to the 144 * inactive chain of free extension control blocks. 145 */ 146 147 STATIC INLINE void _Extension_Free ( 148 Extension_Control *the_extension 149 ); 150 151 /* 152 * _Extension_Get 153 * 154 * DESCRIPTION: 155 * 156 * This function maps extension IDs to extension control blocks. 157 * If ID corresponds to a local extension, then it returns 158 * the extension control pointer which maps to ID and location 159 * is set to OBJECTS_LOCAL. Otherwise, location is set 160 * to OBJECTS_ERROR and the returned value is undefined. 161 */ 162 163 STATIC INLINE Extension_Control *_Extension_Get ( 164 Objects_Id id, 165 Objects_Locations *location 166 ); 167 168 /* 169 * _Extension_Is_null 170 * 171 * DESCRIPTION: 172 * 173 * This function returns TRUE if the_extension is NULL and FALSE otherwise. 174 */ 175 176 STATIC INLINE boolean _Extension_Is_null( 177 Extension_Control *the_extension 178 ); 179 127 #ifndef __RTEMS_APPLICATION__ 180 128 #include <rtems/extension.inl> 129 #endif 181 130 182 131 #ifdef __cplusplus -
c/src/exec/sapi/include/rtems/extension.h
r8e76546 r1a8fde6c 125 125 ); 126 126 127 /* 128 * _Extension_Allocate 129 * 130 * DESCRIPTION: 131 * 132 * This function allocates a extension control block from 133 * the inactive chain of free extension control blocks. 134 */ 135 136 STATIC INLINE Extension_Control *_Extension_Allocate( void ); 137 138 /* 139 * _Extension_Free 140 * 141 * DESCRIPTION: 142 * 143 * This routine frees a extension control block to the 144 * inactive chain of free extension control blocks. 145 */ 146 147 STATIC INLINE void _Extension_Free ( 148 Extension_Control *the_extension 149 ); 150 151 /* 152 * _Extension_Get 153 * 154 * DESCRIPTION: 155 * 156 * This function maps extension IDs to extension control blocks. 157 * If ID corresponds to a local extension, then it returns 158 * the extension control pointer which maps to ID and location 159 * is set to OBJECTS_LOCAL. Otherwise, location is set 160 * to OBJECTS_ERROR and the returned value is undefined. 161 */ 162 163 STATIC INLINE Extension_Control *_Extension_Get ( 164 Objects_Id id, 165 Objects_Locations *location 166 ); 167 168 /* 169 * _Extension_Is_null 170 * 171 * DESCRIPTION: 172 * 173 * This function returns TRUE if the_extension is NULL and FALSE otherwise. 174 */ 175 176 STATIC INLINE boolean _Extension_Is_null( 177 Extension_Control *the_extension 178 ); 179 127 #ifndef __RTEMS_APPLICATION__ 180 128 #include <rtems/extension.inl> 129 #endif 181 130 182 131 #ifdef __cplusplus -
c/src/exec/sapi/inline/extension.inl
r8e76546 r1a8fde6c 22 22 * _Extension_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a extension control block from 27 * the inactive chain of free extension control blocks. 24 28 */ 25 29 … … 33 37 * _Extension_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a extension control block to the 42 * inactive chain of free extension control blocks. 35 43 */ 36 44 … … 46 54 * _Extension_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps extension IDs to extension control blocks. 59 * If ID corresponds to a local extension, then it returns 60 * the extension control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the returned value is undefined. 48 63 */ 49 64 … … 61 76 * _Extension_Is_null 62 77 * 78 * DESCRIPTION: 79 * 80 * This function returns TRUE if the_extension is NULL and FALSE otherwise. 63 81 */ 64 82 -
c/src/exec/sapi/inline/rtems/extension.inl
r8e76546 r1a8fde6c 22 22 * _Extension_Allocate 23 23 * 24 * DESCRIPTION: 25 * 26 * This function allocates a extension control block from 27 * the inactive chain of free extension control blocks. 24 28 */ 25 29 … … 33 37 * _Extension_Free 34 38 * 39 * DESCRIPTION: 40 * 41 * This routine frees a extension control block to the 42 * inactive chain of free extension control blocks. 35 43 */ 36 44 … … 46 54 * _Extension_Get 47 55 * 56 * DESCRIPTION: 57 * 58 * This function maps extension IDs to extension control blocks. 59 * If ID corresponds to a local extension, then it returns 60 * the extension control pointer which maps to ID and location 61 * is set to OBJECTS_LOCAL. Otherwise, location is set 62 * to OBJECTS_ERROR and the returned value is undefined. 48 63 */ 49 64 … … 61 76 * _Extension_Is_null 62 77 * 78 * DESCRIPTION: 79 * 80 * This function returns TRUE if the_extension is NULL and FALSE otherwise. 63 81 */ 64 82 -
c/src/exec/score/headers/address.h
r8e76546 r1a8fde6c 22 22 #endif 23 23 24 /* 25 * _Addresses_Add_offset 26 * 27 * DESCRIPTION: 28 * 29 * This function is used to add an offset to a base address. 30 * It returns the resulting address. This address is typically 31 * converted to an access type before being used further. 32 */ 33 34 STATIC INLINE void *_Addresses_Add_offset ( 35 void *base, 36 unsigned32 offset 37 ); 38 39 /* 40 * _Addresses_Subtract_offset 41 * 42 * DESCRIPTION: 43 * 44 * This function is used to subtract an offset from a base 45 * address. It returns the resulting address. This address is 46 * typically converted to an access type before being used further. 47 */ 48 49 STATIC INLINE void *_Addresses_Subtract_offset( 50 void *base, 51 unsigned32 offset 52 ); 53 54 /* 55 * _Addresses_Subtract 56 * 57 * DESCRIPTION: 58 * 59 * This function is used to subtract two addresses. It returns the 60 * resulting offset. 61 */ 62 63 STATIC INLINE unsigned32 _Addresses_Subtract ( 64 void *left, 65 void *right 66 ); 67 68 /* 69 * _Addresses_Is_aligned 70 * 71 * DESCRIPTION: 72 * 73 * This function returns TRUE if the given address is correctly 74 * aligned for this processor and FALSE otherwise. Proper alignment 75 * is based on correctness and efficiency. 76 */ 77 78 STATIC INLINE boolean _Addresses_Is_aligned ( 79 void *address 80 ); 81 82 /* 83 * _Addresses_Is_in_range 84 * 85 * DESCRIPTION: 86 * 87 * This function returns TRUE if the given address is within the 88 * memory range specified and FALSE otherwise. base is the address 89 * of the first byte in the memory range and limit is the address 90 * of the last byte in the memory range. The base address is 91 * assumed to be lower than the limit address. 92 */ 93 94 STATIC INLINE boolean _Addresses_Is_in_range ( 95 void *address, 96 void *base, 97 void *limit 98 ); 99 24 #ifndef __RTEMS_APPLICATION__ 100 25 #include <rtems/score/address.inl> 26 #endif 101 27 102 28 #ifdef __cplusplus -
c/src/exec/score/headers/chain.h
r8e76546 r1a8fde6c 85 85 86 86 /* 87 * _Chain_Initialize_empty88 *89 * DESCRIPTION:90 *91 * This routine initializes the specified chain to contain zero nodes.92 *93 */94 95 STATIC INLINE void _Chain_Initialize_empty(96 Chain_Control *the_chain97 );98 99 /*100 * _Chain_Are_nodes_equal101 *102 * DESCRIPTION:103 *104 * This function returns TRUE if LEFT and RIGHT are equal,105 * and FALSE otherwise.106 *107 */108 109 STATIC INLINE boolean _Chain_Are_nodes_equal(110 Chain_Node *left,111 Chain_Node *right112 );113 114 /*115 * _Chain_Extract_unprotected116 *117 * DESCRIPTION:118 *119 * This routine extracts the_node from the chain on which it resides.120 * It does NOT disable interrupts to insure the atomicity of the121 * extract operation.122 *123 */124 125 STATIC INLINE void _Chain_Extract_unprotected(126 Chain_Node *the_node127 );128 129 /*130 87 * _Chain_Extract 131 88 * … … 140 97 void _Chain_Extract( 141 98 Chain_Node *the_node 142 );143 144 /*145 * _Chain_Get_unprotected146 *147 * DESCRIPTION:148 *149 * This function removes the first node from the_chain and returns150 * a pointer to that node. If the_chain is empty, then NULL is returned.151 * It does NOT disable interrupts to insure the atomicity of the152 * get operation.153 *154 */155 156 STATIC INLINE Chain_Node *_Chain_Get_unprotected(157 Chain_Control *the_chain158 99 ); 159 100 … … 175 116 176 117 /* 177 * _Chain_Get_first_unprotected178 *179 * DESCRIPTION:180 *181 * This function removes the first node from the_chain and returns182 * a pointer to that node. It does NOT disable interrupts to insure183 * the atomicity of the get operation.184 *185 */186 187 STATIC INLINE Chain_Node *_Chain_Get_first_unprotected(188 Chain_Control *the_chain189 );190 191 /*192 * _Chain_Insert_unprotected193 *194 * DESCRIPTION:195 *196 * This routine inserts the_node on a chain immediately following197 * after_node. It does NOT disable interrupts to insure the atomicity198 * of the extract operation.199 *200 */201 202 STATIC INLINE void _Chain_Insert_unprotected(203 Chain_Node *after_node,204 Chain_Node *the_node205 );206 207 /*208 118 * _Chain_Insert 209 119 * … … 219 129 Chain_Node *after_node, 220 130 Chain_Node *the_node 221 );222 223 /*224 * _Chain_Append_unprotected225 *226 * DESCRIPTION:227 *228 * This routine appends the_node onto the end of the_chain.229 * It does NOT disable interrupts to insure the atomicity of the230 * append operation.231 *232 */233 234 STATIC INLINE void _Chain_Append_unprotected(235 Chain_Control *the_chain,236 Chain_Node *the_node237 131 ); 238 132 … … 253 147 ); 254 148 255 /* 256 * _Chain_Prepend_unprotected 257 * 258 * DESCRIPTION: 259 * 260 * This routine prepends the_node onto the front of the_chain. 261 * It does NOT disable interrupts to insure the atomicity of the 262 * prepend operation. 263 * 264 */ 265 266 STATIC INLINE void _Chain_Prepend_unprotected( 267 Chain_Control *the_chain, 268 Chain_Node *the_node 269 ); 270 271 /* 272 * _Chain_Prepend 273 * 274 * DESCRIPTION: 275 * 276 * This routine prepends the_node onto the front of the_chain. 277 * It disables interrupts to insure the atomicity of the 278 * prepend operation. 279 * 280 */ 281 282 STATIC INLINE void _Chain_Prepend( 283 Chain_Control *the_chain, 284 Chain_Node *the_node 285 ); 286 287 /* 288 * _Chain_Head 289 * 290 * DESCRIPTION: 291 * 292 * This function returns a pointer to the first node on the chain. 293 * 294 */ 295 296 STATIC INLINE Chain_Node *_Chain_Head( 297 Chain_Control *the_chain 298 ); 299 300 /* 301 * _Chain_Tail 302 * 303 * DESCRIPTION: 304 * 305 * This function returns a pointer to the last node on the chain. 306 * 307 */ 308 309 STATIC INLINE Chain_Node *_Chain_Tail( 310 Chain_Control *the_chain 311 ); 312 313 /* 314 * _Chain_Is_head 315 * 316 * DESCRIPTION: 317 * 318 * This function returns TRUE if the_node is the head of the_chain and 319 * FALSE otherwise. 320 * 321 */ 322 323 STATIC INLINE boolean _Chain_Is_head( 324 Chain_Control *the_chain, 325 Chain_Node *the_node 326 ); 327 328 /* 329 * _Chain_Is_tail 330 * 331 * DESCRIPTION: 332 * 333 * This function returns TRUE if the_node is the tail of the_chain and 334 * FALSE otherwise. 335 * 336 */ 337 338 STATIC INLINE boolean _Chain_Is_tail( 339 Chain_Control *the_chain, 340 Chain_Node *the_node 341 ); 342 343 /* 344 * _Chain_Is_first 345 * 346 * DESCRIPTION: 347 * 348 * This function returns TRUE if the_node is the first node on a chain and 349 * FALSE otherwise. 350 * 351 */ 352 353 STATIC INLINE boolean _Chain_Is_first( 354 Chain_Node *the_node 355 ); 356 357 /* 358 * _Chain_Is_last 359 * 360 * DESCRIPTION: 361 * 362 * This function returns TRUE if the_node is the last node on a chain and 363 * FALSE otherwise. 364 * 365 */ 366 367 STATIC INLINE boolean _Chain_Is_last( 368 Chain_Node *the_node 369 ); 370 371 /* 372 * _Chain_Is_empty 373 * 374 * DESCRIPTION: 375 * 376 * This function returns TRUE if there a no nodes on the_chain and 377 * FALSE otherwise. 378 * 379 */ 380 381 STATIC INLINE boolean _Chain_Is_empty( 382 Chain_Control *the_chain 383 ); 384 385 /* 386 * _Chain_Has_only_one_node 387 * 388 * DESCRIPTION: 389 * 390 * This function returns TRUE if there is only one node on the_chain and 391 * FALSE otherwise. 392 * 393 */ 394 395 STATIC INLINE boolean _Chain_Has_only_one_node( 396 Chain_Control *the_chain 397 ); 398 399 /* 400 * _Chain_Is_null 401 * 402 * DESCRIPTION: 403 * 404 * This function returns TRUE if the_chain is NULL and FALSE otherwise. 405 * 406 */ 407 408 STATIC INLINE boolean _Chain_Is_null( 409 Chain_Control *the_chain 410 ); 411 412 /* 413 * _Chain_Is_null_node 414 * 415 * DESCRIPTION: 416 * 417 * This function returns TRUE if the_node is NULL and FALSE otherwise. 418 * 419 */ 420 421 STATIC INLINE boolean _Chain_Is_null_node( 422 Chain_Node *the_node 423 ); 424 149 #ifndef __RTEMS_APPLICATION__ 425 150 #include <rtems/score/chain.inl> 151 #endif 426 152 427 153 #ifdef __cplusplus -
c/src/exec/score/headers/coremsg.h
r8e76546 r1a8fde6c 197 197 198 198 /* 199 * _CORE_message_queue_send200 *201 * DESCRIPTION:202 *203 * This routine sends a message to the end of the specified message queue.204 *205 */206 207 STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Send(208 CORE_message_queue_Control *the_message_queue,209 void *buffer,210 unsigned32 size,211 Objects_Id id,212 CORE_message_queue_API_mp_support_callout api_message_queue_mp_support213 );214 215 /*216 *217 * _CORE_message_queue_Urgent218 *219 * DESCRIPTION:220 *221 * This routine sends a message to the front of the specified message queue.222 *223 */224 225 STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Urgent(226 CORE_message_queue_Control *the_message_queue,227 void *buffer,228 unsigned32 size,229 Objects_Id id,230 CORE_message_queue_API_mp_support_callout api_message_queue_mp_support231 );232 233 /*234 199 * 235 200 * _CORE_message_queue_Broadcast … … 297 262 ); 298 263 299 /* 300 * _CORE_message_queue_Allocate_message_buffer 301 * 302 * DESCRIPTION: 303 * 304 * This function allocates a message buffer from the inactive 305 * message buffer chain. 306 */ 307 308 STATIC INLINE CORE_message_queue_Buffer_control * 309 _CORE_message_queue_Allocate_message_buffer ( 310 CORE_message_queue_Control *the_message_queue 311 ); 312 313 /* 314 * _CORE_message_queue_Free_message_buffer 315 * 316 * DESCRIPTION: 317 * 318 * This routine frees a message buffer to the inactive 319 * message buffer chain. 320 */ 321 322 STATIC INLINE void _CORE_message_queue_Free_message_buffer ( 323 CORE_message_queue_Control *the_message_queue, 324 CORE_message_queue_Buffer_control *the_message 325 ); 326 327 /* 328 * _CORE_message_queue_Copy_buffer 329 * 330 * DESCRIPTION: 331 * 332 * This routine copies the contents of the source message buffer 333 * to the destination message buffer. 334 */ 335 336 STATIC INLINE void _CORE_message_queue_Copy_buffer ( 337 void *source, 338 void *destination, 339 unsigned32 size 340 ); 341 342 /* 343 * _CORE_message_queue_Get_pending_message 344 * 345 * DESCRIPTION: 346 * 347 * This function removes the first message from the_message_queue 348 * and returns a pointer to it. 349 */ 350 351 STATIC INLINE 352 CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message ( 353 CORE_message_queue_Control *the_message_queue 354 ); 355 356 /* 357 * _CORE_message_queue_Is_priority 358 * 359 * DESCRIPTION: 360 * 361 * This function returns TRUE if the priority attribute is 362 * enabled in the attribute_set and FALSE otherwise. 363 */ 364 365 STATIC INLINE boolean _CORE_message_queue_Is_priority( 366 CORE_message_queue_Attributes *the_attribute 367 ); 368 369 /* 370 * _CORE_message_queue_Append 371 * 372 * DESCRIPTION: 373 * 374 * This routine places the_message at the rear of the outstanding 375 * messages on the_message_queue. 376 */ 377 378 STATIC INLINE void _CORE_message_queue_Append ( 379 CORE_message_queue_Control *the_message_queue, 380 CORE_message_queue_Buffer_control *the_message 381 ); 382 383 /* 384 * _CORE_message_queue_Prepend 385 * 386 * DESCRIPTION: 387 * 388 * This routine places the_message at the rear of the outstanding 389 * messages on the_message_queue. 390 */ 391 392 STATIC INLINE void _CORE_message_queue_Prepend ( 393 CORE_message_queue_Control *the_message_queue, 394 CORE_message_queue_Buffer_control *the_message 395 ); 396 397 /* 398 * _CORE_message_queue_Is_null 399 * 400 * DESCRIPTION: 401 * 402 * This function returns TRUE if the_message_queue is TRUE and FALSE otherwise. 403 */ 404 405 STATIC INLINE boolean _CORE_message_queue_Is_null ( 406 CORE_message_queue_Control *the_message_queue 407 ); 408 409 /* 410 * _CORE_message_queue_Is_notify_enabled 411 * 412 * DESCRIPTION: 413 * 414 * This function returns TRUE if notification is enabled on this message 415 * queue and FALSE otherwise. 416 */ 417 418 STATIC INLINE boolean _CORE_message_queue_Is_notify_enabled ( 419 CORE_message_queue_Control *the_message_queue 420 ); 421 422 /* 423 * _CORE_message_queue_Set_notify 424 * 425 * DESCRIPTION: 426 * 427 * This routine initializes the notification information for the_message_queue. 428 */ 429 430 STATIC INLINE void _CORE_message_queue_Set_notify ( 431 CORE_message_queue_Control *the_message_queue, 432 CORE_message_queue_Notify_Handler the_handler, 433 void *the_argument 434 ); 435 264 #ifndef __RTEMS_APPLICATION__ 436 265 #include <rtems/score/coremsg.inl> 266 #endif 437 267 438 268 #ifdef __cplusplus -
c/src/exec/score/headers/coremutex.h
r8e76546 r1a8fde6c 159 159 ); 160 160 161 /* 162 * _CORE_mutex_Is_locked 163 * 164 * DESCRIPTION: 165 * 166 * This routine returns TRUE if the mutex specified is locked and FALSE 167 * otherwise. 168 */ 169 170 STATIC INLINE boolean _CORE_mutex_Is_locked( 171 CORE_mutex_Control *the_mutex 172 ); 173 174 /* 175 * _CORE_mutex_Is_fifo 176 * 177 * DESCRIPTION: 178 * 179 * This routine returns TRUE if the mutex's wait discipline is FIFO and FALSE 180 * otherwise. 181 */ 182 183 STATIC INLINE boolean _CORE_mutex_Is_fifo( 184 CORE_mutex_Attributes *the_attribute 185 ); 186 187 /* 188 * _CORE_mutex_Is_priority 189 * 190 * DESCRIPTION: 191 * 192 * This routine returns TRUE if the mutex's wait discipline is PRIORITY and 193 * FALSE otherwise. 194 */ 195 196 STATIC INLINE boolean _CORE_mutex_Is_priority( 197 CORE_mutex_Attributes *the_attribute 198 ); 199 200 /* 201 * _CORE_mutex_Is_inherit_priority 202 * 203 * DESCRIPTION: 204 * 205 * This routine returns TRUE if the mutex's wait discipline is 206 * INHERIT_PRIORITY and FALSE otherwise. 207 */ 208 209 STATIC INLINE boolean _CORE_mutex_Is_inherit_priority( 210 CORE_mutex_Attributes *the_attribute 211 ); 212 213 /* 214 * _CORE_mutex_Is_priority_ceiling 215 * 216 * DESCRIPTION: 217 * 218 * This routine returns TRUE if the mutex's wait discipline is 219 * PRIORITY_CEILING and FALSE otherwise. 220 */ 221 222 STATIC INLINE boolean _CORE_mutex_Is_priority_ceiling( 223 CORE_mutex_Attributes *the_attribute 224 ); 225 226 /* 227 * _CORE_mutex_Is_nesting_allowed 228 * 229 * DESCRIPTION: 230 * 231 * This routine returns TRUE if the mutex allows a task to obtain a 232 * semaphore more than once and nest. 233 */ 234 235 STATIC INLINE boolean _CORE_mutex_Is_nesting_allowed( 236 CORE_mutex_Attributes *the_attribute 237 ); 238 161 #ifndef __RTEMS_APPLICATION__ 239 162 #include <rtems/score/coremutex.inl> 163 #endif 240 164 241 165 #ifdef __cplusplus -
c/src/exec/score/headers/coresem.h
r8e76546 r1a8fde6c 144 144 ); 145 145 146 /* 147 * _CORE_semaphore_Get_count 148 * 149 * DESCRIPTION: 150 * 151 * This routine returns the current count associated with the semaphore. 152 */ 153 154 STATIC INLINE unsigned32 _CORE_semaphore_Get_count( 155 CORE_semaphore_Control *the_semaphore 156 ); 157 158 /* 159 * _CORE_semaphore_Is_priority 160 * 161 * DESCRIPTION: 162 * 163 * This function returns TRUE if the priority attribute is 164 * enabled in the attribute_set and FALSE otherwise. 165 */ 166 167 STATIC INLINE boolean _CORE_semaphore_Is_priority( 168 CORE_semaphore_Attributes *the_attribute 169 ); 170 146 #ifndef __RTEMS_APPLICATION__ 171 147 #include <rtems/score/coresem.inl> 148 #endif 172 149 173 150 #ifdef __cplusplus -
c/src/exec/score/headers/heap.h
r8e76546 r1a8fde6c 215 215 ); 216 216 217 /* 218 * _Heap_Head 219 * 220 * DESCRIPTION: 221 * 222 * This function returns the head of the specified heap. 223 */ 224 225 STATIC INLINE Heap_Block *_Heap_Head ( 226 Heap_Control *the_heap 227 ); 228 229 /* 230 * _Heap_Tail 231 * 232 * DESCRIPTION: 233 * 234 * This function returns the tail of the specified heap. 235 */ 236 237 STATIC INLINE Heap_Block *_Heap_Tail ( 238 Heap_Control *the_heap 239 ); 240 241 /* 242 * _Heap_Previous_block 243 * 244 * DESCRIPTION: 245 * 246 * This function returns the address of the block which physically 247 * precedes the_block in memory. 248 */ 249 250 STATIC INLINE Heap_Block *_Heap_Previous_block ( 251 Heap_Block *the_block 252 ); 253 254 /* 255 * _Heap_Next_block 256 * 257 * DESCRIPTION: 258 * 259 * This function returns the address of the block which physically 260 * follows the_block in memory. 261 */ 262 263 STATIC INLINE Heap_Block *_Heap_Next_block ( 264 Heap_Block *the_block 265 ); 266 267 /* 268 * _Heap_Block_at 269 * 270 * DESCRIPTION: 271 * 272 * This function calculates and returns a block's location (address) 273 * in the heap based upad a base address and an offset. 274 */ 275 276 STATIC INLINE Heap_Block *_Heap_Block_at( 277 void *base, 278 unsigned32 offset 279 ); 280 281 /*PAGE 282 * 283 * _Heap_User_block_at 284 * 285 */ 286 287 STATIC INLINE Heap_Block *_Heap_User_block_at( 288 void *base 289 ); 290 291 /* 292 * _Heap_Is_previous_block_free 293 * 294 * DESCRIPTION: 295 * 296 * This function returns TRUE if the previous block of the_block 297 * is free, and FALSE otherwise. 298 */ 299 300 STATIC INLINE boolean _Heap_Is_previous_block_free ( 301 Heap_Block *the_block 302 ); 303 304 /* 305 * _Heap_Is_block_free 306 * 307 * DESCRIPTION: 308 * 309 * This function returns TRUE if the block is free, and FALSE otherwise. 310 */ 311 312 STATIC INLINE boolean _Heap_Is_block_free ( 313 Heap_Block *the_block 314 ); 315 316 /* 317 * _Heap_Is_block_used 318 * 319 * DESCRIPTION: 320 * 321 * This function returns TRUE if the block is currently allocated, 322 * and FALSE otherwise. 323 */ 324 325 STATIC INLINE boolean _Heap_Is_block_used ( 326 Heap_Block *the_block 327 ); 328 329 /* 330 * _Heap_Block_size 331 * 332 * DESCRIPTION: 333 * 334 * This function returns the size of the_block in bytes. 335 */ 336 337 STATIC INLINE unsigned32 _Heap_Block_size ( 338 Heap_Block *the_block 339 ); 340 341 /* 342 * _Heap_Start_of_user_area 343 * 344 * DESCRIPTION: 345 * 346 * This function returns the starting address of the portion of the block 347 * which the user may access. 348 */ 349 350 STATIC INLINE void *_Heap_Start_of_user_area ( 351 Heap_Block *the_block 352 ); 353 354 /* 355 * _Heap_Is_block_in 356 * 357 * DESCRIPTION: 358 * 359 * This function returns TRUE if the_block is within the memory area 360 * managed by the_heap, and FALSE otherwise. 361 */ 362 363 STATIC INLINE boolean _Heap_Is_block_in ( 364 Heap_Control *the_heap, 365 Heap_Block *the_block 366 ); 367 368 369 /* 370 * _Heap_Is_page_size_valid 371 * 372 * DESCRIPTION: 373 * 374 * This function validates a specified heap page size. If the page size 375 * is 0 or if lies outside a page size alignment boundary it is invalid 376 * and FALSE is returned. Otherwise, the page size is valid and TRUE is 377 * returned. 378 */ 379 380 STATIC INLINE boolean _Heap_Is_page_size_valid( 381 unsigned32 page_size 382 ); 383 384 /* 385 * _Heap_Build_flag 386 * 387 * DESCRIPTION: 388 * 389 * This function returns the block flag composed of size and in_use_flag. 390 * The flag returned is suitable for use as a back or front flag in a 391 * heap block. 392 */ 393 394 STATIC INLINE unsigned32 _Heap_Build_flag ( 395 unsigned32 size, 396 unsigned32 in_use_flag 397 ); 398 217 #ifndef __RTEMS_APPLICATION__ 399 218 #include <rtems/score/heap.inl> 219 #endif 400 220 401 221 #ifdef __cplusplus -
c/src/exec/score/headers/isr.h
r8e76546 r1a8fde6c 142 142 143 143 /* 144 * _ISR_Is_in_progress145 *146 * DESCRIPTION:147 *148 * This function returns TRUE if the processor is currently servicing149 * and interrupt and FALSE otherwise. A return value of TRUE indicates150 * that the caller is an interrupt service routine, NOT a thread. The151 * directives available to an interrupt service routine are restricted.152 */153 154 STATIC INLINE boolean _ISR_Is_in_progress( void );155 156 /*157 144 * _ISR_Install_vector 158 145 * … … 190 177 #define _ISR_Set_level( _new_level ) \ 191 178 _CPU_ISR_Set_level( _new_level ) 192 193 /*194 * _ISR_Is_vector_number_valid195 *196 * DESCRIPTION:197 *198 * This function returns TRUE if the vector is a valid vector number199 * for this processor and FALSE otherwise.200 */201 202 STATIC INLINE boolean _ISR_Is_vector_number_valid (203 ISR_Vector_number vector204 );205 206 /*207 * _ISR_Is_valid_user_handler208 *209 * DESCRIPTION:210 *211 * This function returns TRUE if handler is the entry point of a valid212 * use interrupt service routine and FALSE otherwise.213 */214 215 STATIC INLINE boolean _ISR_Is_valid_user_handler (216 void *handler217 );218 179 219 180 /* … … 254 215 void _ISR_Dispatch( void ); 255 216 217 #ifndef __RTEMS_APPLICATION__ 256 218 #include <rtems/score/isr.inl> 219 #endif 257 220 258 221 #ifdef __cplusplus -
c/src/exec/score/headers/mppkt.h
r8e76546 r1a8fde6c 89 89 #define MP_PACKET_MINIMUN_HETERO_CONVERSION ( sizeof( MP_packet_Prefix ) / 4 ) 90 90 91 /* 92 * _Mp_packet_Is_valid_packet_class 93 * 94 * DESCRIPTION: 95 * 96 * This function returns TRUE if the the_packet_class is valid, 97 * and FALSE otherwise. 98 */ 99 100 STATIC INLINE boolean _Mp_packet_Is_valid_packet_class ( 101 MP_packet_Classes the_packet_class 102 ); 103 104 /* 105 * _Mp_packet_Is_null 106 * 107 * DESCRIPTION: 108 * 109 * This function returns TRUE if the the_packet_class is null, 110 * and FALSE otherwise. 111 */ 112 113 STATIC INLINE boolean _Mp_packet_Is_null ( 114 MP_packet_Prefix *the_packet 115 ); 116 91 #ifndef __RTEMS_APPLICATION__ 117 92 #include <rtems/score/mppkt.inl> 93 #endif 118 94 119 95 #ifdef __cplusplus -
c/src/exec/score/headers/object.h
r8e76546 r1a8fde6c 384 384 385 385 /* 386 * _Objects_Build_id 387 * 388 * DESCRIPTION: 389 * 390 * This function builds an object's id from the processor node and index 391 * values specified. 392 * 393 */ 394 395 STATIC INLINE Objects_Id _Objects_Build_id( 396 Objects_Classes the_class, 397 unsigned32 node, 398 unsigned32 index 399 ); 400 401 /* 402 * _Objects_Get_class 403 * 404 * DESCRIPTION: 405 * 406 * This function returns the class portion of the ID. 407 * 408 */ 409 410 STATIC INLINE Objects_Classes _Objects_Get_class( 411 Objects_Id id 412 ); 413 414 /* 415 * _Objects_Get_node 416 * 417 * DESCRIPTION: 418 * 419 * This function returns the node portion of the ID. 420 * 421 */ 422 423 STATIC INLINE unsigned32 _Objects_Get_node( 424 Objects_Id id 425 ); 426 427 /* 428 * _Objects_Get_index 429 * 430 * DESCRIPTION: 431 * 432 * This function returns the index portion of the ID. 433 * 434 */ 435 436 STATIC INLINE unsigned32 _Objects_Get_index( 437 Objects_Id id 438 ); 439 440 /* 441 * _Objects_Is_class_valid 442 * 443 * DESCRIPTION: 444 * 445 * This function returns TRUE if the class is valid. 446 * 447 */ 448 449 STATIC INLINE boolean _Objects_Is_class_valid( 450 Objects_Classes the_class 451 ); 452 453 /* 454 * _Objects_Is_local_node 455 * 456 * DESCRIPTION: 457 * 458 * This function returns TRUE if the node is of the local object, and 459 * FALSE otherwise. 460 * 461 */ 462 463 STATIC INLINE boolean _Objects_Is_local_node( 464 unsigned32 node 465 ); 466 467 /* 468 * _Objects_Is_local_id 469 * 470 * DESCRIPTION: 471 * 472 * This function returns TRUE if the id is of a local object, and 473 * FALSE otherwise. 474 * 475 */ 476 477 STATIC INLINE boolean _Objects_Is_local_id( 478 Objects_Id id 479 ); 480 481 /* 482 * _Objects_Are_ids_equal 483 * 484 * DESCRIPTION: 485 * 486 * This function returns TRUE if left and right are equal, 487 * and FALSE otherwise. 488 * 489 */ 490 491 STATIC INLINE boolean _Objects_Are_ids_equal( 492 Objects_Id left, 493 Objects_Id right 494 ); 495 496 /* 497 * _Objects_Allocate 498 * 499 * DESCRIPTION: 500 * 501 * This function allocates a object control block from 502 * the inactive chain of free object control blocks. 503 * 504 */ 505 506 STATIC INLINE Objects_Control *_Objects_Allocate( 507 Objects_Information *information 508 ); 509 510 /* 511 * _Objects_Free 512 * 513 * DESCRIPTION: 514 * 515 * This function frees a object control block to the 516 * inactive chain of free object control blocks. 517 * 518 */ 519 520 STATIC INLINE void _Objects_Free( 521 Objects_Information *information, 522 Objects_Control *the_object 523 ); 524 525 /* 526 * _Objects_Open 527 * 528 * DESCRIPTION: 529 * 530 * This function places the_object control pointer and object name 531 * in the Local Pointer and Local Name Tables, respectively. 532 * 533 */ 534 535 STATIC INLINE void _Objects_Open( 536 Objects_Information *information, 537 Objects_Control *the_object, 538 Objects_Name name 539 ); 540 541 /* 542 * _Objects_Close 543 * 544 * DESCRIPTION: 545 * 546 * This function removes the_object control pointer and object name 547 * in the Local Pointer and Local Name Tables. 548 * 549 */ 550 551 STATIC INLINE void _Objects_Close( 552 Objects_Information *information, 553 Objects_Control *the_object 554 ); 386 * Pieces of object.inl are promoted out to the user 387 */ 555 388 556 389 #include <rtems/score/object.inl> -
c/src/exec/score/headers/objectmp.h
r8e76546 r1a8fde6c 46 46 unsigned32 maximum_nodes, 47 47 unsigned32 maximum_global_objects 48 );49 50 /*51 * _Objects_MP_Allocate_global_object52 *53 * DESCRIPTION:54 *55 * This function allocates a Global Object control block.56 */57 58 STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object (59 void60 );61 62 /*63 * _Objects_MP_Free_global_object64 *65 * DESCRIPTION:66 *67 * This routine deallocates a Global Object control block.68 */69 70 STATIC INLINE void _Objects_MP_Free_global_object (71 Objects_MP_Control *the_object72 );73 74 /*75 * _Objects_MP_Is_null_global_object76 *77 * DESCRIPTION:78 *79 * This function returns whether the global object is NULL or not.80 */81 82 STATIC INLINE boolean _Objects_MP_Is_null_global_object (83 Objects_MP_Control *the_object84 48 ); 85 49 … … 177 141 EXTERN Chain_Control _Objects_MP_Inactive_global_objects; 178 142 143 #ifndef __RTEMS_APPLICATION__ 179 144 #include <rtems/score/objectmp.inl> 145 #endif 180 146 181 147 #ifdef __cplusplus -
c/src/exec/score/headers/priority.h
r8e76546 r1a8fde6c 68 68 69 69 /* 70 * _Priority_Handler_initialization70 * Priority Bitfield Manipulation Routines 71 71 * 72 * DESCRIPTION:72 * NOTE: 73 73 * 74 * This routine performs the initialization necessary for this handler. 75 */ 76 77 STATIC INLINE void _Priority_Handler_initialization( void ); 78 79 /* 80 * _Priority_Is_valid 81 * 82 * DESCRIPTION: 83 * 84 * This function returns TRUE if the_priority if valid for a 85 * user task, and FALSE otherwise. 86 */ 87 88 STATIC INLINE boolean _Priority_Is_valid ( 89 Priority_Control the_priority 90 ); 91 92 /* 93 * _Priority_Major 94 * 95 * DESCRIPTION: 96 * 97 * This function returns the major portion of the_priority. 98 */ 99 100 STATIC INLINE unsigned32 _Priority_Major ( 101 Priority_Control the_priority 102 ); 103 104 /* 105 * _Priority_Minor 106 * 107 * DESCRIPTION: 108 * 109 * This function returns the minor portion of the_priority. 110 */ 111 112 STATIC INLINE unsigned32 _Priority_Minor ( 113 Priority_Control the_priority 114 ); 115 116 /* 117 * _Priority_Mask 118 * 119 * DESCRIPTION: 120 * 121 * This function returns the mask associated with the major or minor 122 * number passed to it. 74 * These may simply be pass throughs to CPU dependent routines. 123 75 */ 124 76 125 #if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE ) 126 127 STATIC INLINE unsigned32 _Priority_Mask ( 128 unsigned32 bit_number 129 ); 130 131 #else 77 #if ( CPU_USE_GENERIC_BITFIELD_CODE == FALSE ) 132 78 133 79 #define _Priority_Mask( _bit_number ) \ 134 80 _CPU_Priority_Mask( _bit_number ) 135 81 136 #endif137 138 /*139 * _Priority_Bits_index140 *141 * DESCRIPTION:142 *143 * This function translates the bit numbers returned by the bit scan144 * of a priority bit field into something suitable for use as145 * a major or minor component of a priority.146 */147 148 #if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE )149 150 STATIC INLINE unsigned32 _Priority_Bits_index (151 unsigned32 bit_number152 );153 154 #else155 156 82 #define _Priority_Bits_index( _priority ) \ 157 83 _CPU_Priority_bits_index( _priority ) … … 159 85 #endif 160 86 161 /* 162 * _Priority_Add_to_bit_map 163 * 164 * DESCRIPTION: 165 * 166 * This routine uses the_priority_map to update the priority 167 * bit maps to indicate that a thread has been readied. 168 */ 169 170 STATIC INLINE void _Priority_Add_to_bit_map ( 171 Priority_Information *the_priority_map 172 ); 173 174 /* 175 * _Priority_Remove_from_bit_map 176 * 177 * DESCRIPTION: 178 * 179 * This routine uses the_priority_map to update the priority 180 * bit maps to indicate that a thread has been removed from the 181 * ready state. 182 */ 183 184 STATIC INLINE void _Priority_Remove_from_bit_map ( 185 Priority_Information *the_priority_map 186 ); 187 188 /* 189 * _Priority_Get_highest 190 * 191 * DESCRIPTION: 192 * 193 * This function returns the priority of the highest priority 194 * ready thread. 195 */ 196 197 STATIC INLINE Priority_Control _Priority_Get_highest( void ); 198 199 /* 200 * _Priority_Initialize_information 201 * 202 * DESCRIPTION: 203 * 204 * This routine initializes the_priority_map so that it 205 * contains the information necessary to manage a thread 206 * at new_priority. 207 */ 208 209 STATIC INLINE void _Priority_Initialize_information( 210 Priority_Information *the_priority_map, 211 Priority_Control new_priority 212 ); 213 214 /* 215 * _Priority_Is_group_empty 216 * 217 * DESCRIPTION: 218 * 219 * This function returns TRUE if the priority GROUP is empty, and 220 * FALSE otherwise. 221 */ 222 223 STATIC INLINE boolean _Priority_Is_group_empty ( 224 Priority_Control the_priority 225 ); 226 87 #ifndef __RTEMS_APPLICATION__ 227 88 #include <rtems/score/priority.inl> 89 #endif 228 90