diff options
Diffstat (limited to 'cpukit/include/rtems/rtems')
22 files changed, 248 insertions, 147 deletions
diff --git a/cpukit/include/rtems/rtems/barrierdata.h b/cpukit/include/rtems/rtems/barrierdata.h index 12b2eab2d8..1598bbf6db 100644 --- a/cpukit/include/rtems/rtems/barrierdata.h +++ b/cpukit/include/rtems/rtems/barrierdata.h @@ -44,6 +44,31 @@ typedef struct { rtems_attribute attribute_set; } Barrier_Control; +/** + * @brief The Classic Barrier objects information. + */ +extern Objects_Information _Barrier_Information; + +/** + * @brief Macro to define the objects information for the Classic Barrier + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define BARRIER_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Barrier, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_BARRIERS, \ + Barrier_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + NULL \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/barrierimpl.h b/cpukit/include/rtems/rtems/barrierimpl.h index 0acef05af3..5494191610 100644 --- a/cpukit/include/rtems/rtems/barrierimpl.h +++ b/cpukit/include/rtems/rtems/barrierimpl.h @@ -35,12 +35,6 @@ extern "C" { */ /** - * The following defines the information control block used to manage - * this class of objects. - */ -extern Objects_Information _Barrier_Information; - -/** * @brief _Barrier_Allocate * * This function allocates a barrier control block from diff --git a/cpukit/include/rtems/rtems/config.h b/cpukit/include/rtems/rtems/config.h index 51b3dbe30f..a3e3988cd6 100644 --- a/cpukit/include/rtems/rtems/config.h +++ b/cpukit/include/rtems/rtems/config.h @@ -47,61 +47,6 @@ extern "C" { * + required number of each object type */ typedef struct { - /** - * This field contains the maximum number of Classic API - * Tasks which are configured for this application. - */ - uint32_t maximum_tasks; - - /** - * This field contains the maximum number of Classic API - * Timers which are configured for this application. - */ - uint32_t maximum_timers; - - /** - * This field contains the maximum number of Classic API - * Semaphores which are configured for this application. - */ - uint32_t maximum_semaphores; - - /** - * This field contains the maximum number of Classic API - * Message Queues which are configured for this application. - */ - uint32_t maximum_message_queues; - - /** - * This field contains the maximum number of Classic API - * Partitions which are configured for this application. - */ - uint32_t maximum_partitions; - - /** - * This field contains the maximum number of Classic API - * Regions which are configured for this application. - */ - uint32_t maximum_regions; - - /** - * This field contains the maximum number of Classic API - * Dual Ported Memory Areas which are configured for this - * application. - */ - uint32_t maximum_ports; - - /** - * This field contains the maximum number of Classic API - * Rate Monotonic Periods which are configured for this - * application. - */ - uint32_t maximum_periods; - - /** - * This field contains the maximum number of Classic API - * Barriers which are configured for this application. - */ - uint32_t maximum_barriers; /** * This field contains the number of Classic API Initialization diff --git a/cpukit/include/rtems/rtems/dpmemdata.h b/cpukit/include/rtems/rtems/dpmemdata.h index 86302f9089..3727297482 100644 --- a/cpukit/include/rtems/rtems/dpmemdata.h +++ b/cpukit/include/rtems/rtems/dpmemdata.h @@ -46,6 +46,31 @@ typedef struct { uint32_t length; } Dual_ported_memory_Control; +/** + * @brief The Classic Dual Ported Memory objects information. + */ +extern Objects_Information _Dual_ported_memory_Information; + +/** + * @brief Macro to define the objects information for the Classic Dual Ported + * Memory objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define DUAL_PORTED_MEMORY_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Dual_ported_memory, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_PORTS, \ + Dual_ported_memory_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + NULL \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/dpmemimpl.h b/cpukit/include/rtems/rtems/dpmemimpl.h index 2b3fefd199..3da0d5237b 100644 --- a/cpukit/include/rtems/rtems/dpmemimpl.h +++ b/cpukit/include/rtems/rtems/dpmemimpl.h @@ -33,12 +33,6 @@ extern "C" { */ /** - * @brief Define the internal Dual Ported Memory information - * The following define the internal Dual Ported Memory information. - */ -extern Objects_Information _Dual_ported_memory_Information; - -/** * @brief Allocates a port control block from the inactive chain * of free port control blocks. * diff --git a/cpukit/include/rtems/rtems/messagedata.h b/cpukit/include/rtems/rtems/messagedata.h index b035dff97b..fa1f681473 100644 --- a/cpukit/include/rtems/rtems/messagedata.h +++ b/cpukit/include/rtems/rtems/messagedata.h @@ -44,6 +44,45 @@ typedef struct { rtems_attribute attribute_set; } Message_queue_Control; +/** + * @brief The Classic Message Queue objects information. + */ +extern Objects_Information _Message_queue_Information; + +#if defined(RTEMS_MULTIPROCESSING) +/** + * @brief _Message_queue_MP_Send_extract_proxy + * + * This routine is invoked when a task is deleted and it + * has a proxy which must be removed from a thread queue and + * the remote node must be informed of this. + */ +void _Message_queue_MP_Send_extract_proxy ( + Thread_Control *the_thread, + Objects_Id id +); +#endif + +/** + * @brief Macro to define the objects information for the Classic Message Queue + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define MESSAGE_QUEUE_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Message_queue, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_MESSAGE_QUEUES, \ + Message_queue_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + _Message_queue_MP_Send_extract_proxy \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/messageimpl.h b/cpukit/include/rtems/rtems/messageimpl.h index 098e310804..5872b67e04 100644 --- a/cpukit/include/rtems/rtems/messageimpl.h +++ b/cpukit/include/rtems/rtems/messageimpl.h @@ -52,12 +52,6 @@ typedef enum { } Message_queue_Submit_types; /** - * The following defines the information control block used to - * manage this class of objects. - */ -extern Objects_Information _Message_queue_Information; - -/** * @brief Message_queue_Submit * * This routine implements the directives rtems_message_queue_send diff --git a/cpukit/include/rtems/rtems/msgmp.h b/cpukit/include/rtems/rtems/msgmp.h index 3dabd8d46b..1c5818b44e 100644 --- a/cpukit/include/rtems/rtems/msgmp.h +++ b/cpukit/include/rtems/rtems/msgmp.h @@ -189,18 +189,6 @@ void _Message_queue_MP_Send_object_was_deleted ( Objects_Id mp_id ); -/** - * @brief _Message_queue_MP_Send_extract_proxy - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ -void _Message_queue_MP_Send_extract_proxy ( - Thread_Control *the_thread, - Objects_Id id -); - /**@}*/ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/partdata.h b/cpukit/include/rtems/rtems/partdata.h index 3b030c8f34..3be94b6cd1 100644 --- a/cpukit/include/rtems/rtems/partdata.h +++ b/cpukit/include/rtems/rtems/partdata.h @@ -53,6 +53,45 @@ typedef struct { Chain_Control Memory; } Partition_Control; +/** + * @brief The Classic Partition objects information. + */ +extern Objects_Information _Partition_Information; + +#if defined(RTEMS_MULTIPROCESSING) +/** + * @brief Partition_MP_Send_extract_proxy + * + * This routine is invoked when a task is deleted and it + * has a proxy which must be removed from a thread queue and + * the remote node must be informed of this. + */ +void _Partition_MP_Send_extract_proxy ( + Thread_Control *the_thread, + Objects_Id id +); +#endif + +/** + * @brief Macro to define the objects information for the Classic Partition + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define PARTITION_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Partition, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_PARTITIONS, \ + Partition_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + _Partition_MP_Send_extract_proxy \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/partimpl.h b/cpukit/include/rtems/rtems/partimpl.h index d795748723..0160d4add6 100644 --- a/cpukit/include/rtems/rtems/partimpl.h +++ b/cpukit/include/rtems/rtems/partimpl.h @@ -34,12 +34,6 @@ extern "C" { */ /** - * The following defines the information control block used to - * manage this class of objects. - */ -extern Objects_Information _Partition_Information; - -/** * @brief Allocate a buffer from the_partition. * * This function attempts to allocate a buffer from the_partition. diff --git a/cpukit/include/rtems/rtems/partmp.h b/cpukit/include/rtems/rtems/partmp.h index b9eaa08b8c..5fffd68480 100644 --- a/cpukit/include/rtems/rtems/partmp.h +++ b/cpukit/include/rtems/rtems/partmp.h @@ -122,18 +122,6 @@ void _Partition_MP_Process_packet ( * cannot be deleted when buffers are in use. */ -/** - * @brief Partition_MP_Send_extract_proxy - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ -void _Partition_MP_Send_extract_proxy ( - Thread_Control *the_thread, - Objects_Id id -); - #ifdef __cplusplus } #endif diff --git a/cpukit/include/rtems/rtems/ratemondata.h b/cpukit/include/rtems/rtems/ratemondata.h index 898fc653c1..0e4415237b 100644 --- a/cpukit/include/rtems/rtems/ratemondata.h +++ b/cpukit/include/rtems/rtems/ratemondata.h @@ -130,6 +130,31 @@ typedef struct { uint64_t latest_deadline; } Rate_monotonic_Control; +/** + * @brief The Classic Rate Monotonic objects information. + */ +extern Objects_Information _Rate_monotonic_Information; + +/** + * @brief Macro to define the objects information for the Classic Rate + * Monotonic objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define RATE_MONOTONIC_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Rate_monotonic, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_PERIODS, \ + Rate_monotonic_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + NULL \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/ratemonimpl.h b/cpukit/include/rtems/rtems/ratemonimpl.h index 2a417f66c6..eb359b17c8 100644 --- a/cpukit/include/rtems/rtems/ratemonimpl.h +++ b/cpukit/include/rtems/rtems/ratemonimpl.h @@ -49,14 +49,6 @@ extern "C" { ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_READY_AGAIN ) /** - * @brief Rate Monotonic Period Class Management Structure - * - * This instance of Objects_Information is used to manage the - * set of rate monotonic period instances. - */ -extern Objects_Information _Rate_monotonic_Information; - -/** * @brief Allocates a period control block from * the inactive chain of free period control blocks. * diff --git a/cpukit/include/rtems/rtems/regiondata.h b/cpukit/include/rtems/rtems/regiondata.h index cfbc07f713..c64f623c1d 100644 --- a/cpukit/include/rtems/rtems/regiondata.h +++ b/cpukit/include/rtems/rtems/regiondata.h @@ -46,6 +46,31 @@ typedef struct { Heap_Control Memory; } Region_Control; +/** + * @brief The Classic Region objects information. + */ +extern Objects_Information _Region_Information; + +/** + * @brief Macro to define the objects information for the Classic Region + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define REGION_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Region, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_REGIONS, \ + Region_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + NULL \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/regionimpl.h b/cpukit/include/rtems/rtems/regionimpl.h index 8a7ee258cc..35775671e6 100644 --- a/cpukit/include/rtems/rtems/regionimpl.h +++ b/cpukit/include/rtems/rtems/regionimpl.h @@ -39,12 +39,6 @@ extern "C" { RTEMS_CONTAINER_OF( queue, Region_Control, Wait_queue.Queue ) /** - * The following defines the information control block used to - * manage this class of objects. - */ -extern Objects_Information _Region_Information; - -/** * @brief Region_Allocate * * This function allocates a region control block from diff --git a/cpukit/include/rtems/rtems/semdata.h b/cpukit/include/rtems/rtems/semdata.h index 04db07d6a0..d2275e5dfe 100644 --- a/cpukit/include/rtems/rtems/semdata.h +++ b/cpukit/include/rtems/rtems/semdata.h @@ -92,6 +92,45 @@ typedef struct { #endif } Semaphore_Control; +/** + * @brief The Classic Semaphore objects information. + */ +extern Objects_Information _Semaphore_Information; + +#if defined(RTEMS_MULTIPROCESSING) +/** + * @brief Semaphore MP Send Extract Proxy + * + * This routine is invoked when a task is deleted and it + * has a proxy which must be removed from a thread queue and + * the remote node must be informed of this. + */ +void _Semaphore_MP_Send_extract_proxy ( + Thread_Control *the_thread, + Objects_Id id +); +#endif + +/** + * @brief Macro to define the objects information for the Classic Semaphore + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define SEMAPHORE_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Semaphore, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_SEMAPHORES, \ + Semaphore_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + _Semaphore_MP_Send_extract_proxy \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/semimpl.h b/cpukit/include/rtems/rtems/semimpl.h index 1028879f39..743a4a9c6b 100644 --- a/cpukit/include/rtems/rtems/semimpl.h +++ b/cpukit/include/rtems/rtems/semimpl.h @@ -56,12 +56,6 @@ typedef enum { SEMAPHORE_DISCIPLINE_FIFO } Semaphore_Discipline; -/** - * The following defines the information control block used to manage - * this class of objects. - */ -extern Objects_Information _Semaphore_Information; - RTEMS_INLINE_ROUTINE const Thread_queue_Operations *_Semaphore_Get_operations( const Semaphore_Control *the_semaphore ) diff --git a/cpukit/include/rtems/rtems/semmp.h b/cpukit/include/rtems/rtems/semmp.h index 9d7669f43e..31774c39ba 100644 --- a/cpukit/include/rtems/rtems/semmp.h +++ b/cpukit/include/rtems/rtems/semmp.h @@ -120,18 +120,6 @@ void _Semaphore_MP_Send_object_was_deleted ( ); /** - * @brief Semaphore MP Send Extract Proxy - * - * This routine is invoked when a task is deleted and it - * has a proxy which must be removed from a thread queue and - * the remote node must be informed of this. - */ -void _Semaphore_MP_Send_extract_proxy ( - Thread_Control *the_thread, - Objects_Id id -); - -/** * @brief Semaphore Core Mutex MP Support * * This function processes the global actions necessary for remote diff --git a/cpukit/include/rtems/rtems/tasksdata.h b/cpukit/include/rtems/rtems/tasksdata.h index 18562bf067..19e6a8a618 100644 --- a/cpukit/include/rtems/rtems/tasksdata.h +++ b/cpukit/include/rtems/rtems/tasksdata.h @@ -67,6 +67,12 @@ typedef struct { extern void _RTEMS_tasks_Initialize_user_tasks_body( void ); +/** + * The following instantiates the information control block used to + * manage this class of objects. + */ +extern Thread_Information _RTEMS_tasks_Information; + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/tasksimpl.h b/cpukit/include/rtems/rtems/tasksimpl.h index b6694cc416..c98f1a3ab0 100644 --- a/cpukit/include/rtems/rtems/tasksimpl.h +++ b/cpukit/include/rtems/rtems/tasksimpl.h @@ -35,12 +35,6 @@ extern "C" { */ /** - * The following instantiates the information control block used to - * manage this class of objects. - */ -extern Thread_Information _RTEMS_tasks_Information; - -/** * @brief RTEMS User Task Initialization * * This routine creates and starts all configured user diff --git a/cpukit/include/rtems/rtems/timerdata.h b/cpukit/include/rtems/rtems/timerdata.h index db32739488..ed00671b10 100644 --- a/cpukit/include/rtems/rtems/timerdata.h +++ b/cpukit/include/rtems/rtems/timerdata.h @@ -57,6 +57,31 @@ typedef struct { Watchdog_Interval stop_time; } Timer_Control; +/** + * @brief The Classic Timer objects information. + */ +extern Objects_Information _Timer_Information; + +/** + * @brief Macro to define the objects information for the Classic Timer + * objects. + * + * This macro should only be used by <rtems/confdefs.h>. + * + * @param max The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag + * may be set). + */ +#define TIMER_INFORMATION_DEFINE( max ) \ + OBJECTS_INFORMATION_DEFINE( \ + _Timer, \ + OBJECTS_CLASSIC_API, \ + OBJECTS_RTEMS_TIMERS, \ + Timer_Control, \ + max, \ + OBJECTS_NO_STRING_NAME, \ + NULL \ + ) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/include/rtems/rtems/timerimpl.h b/cpukit/include/rtems/rtems/timerimpl.h index d62db3b34a..59b2b9f816 100644 --- a/cpukit/include/rtems/rtems/timerimpl.h +++ b/cpukit/include/rtems/rtems/timerimpl.h @@ -53,12 +53,6 @@ typedef struct Timer_server_Control { extern Timer_server_Control *volatile _Timer_server; /** - * The following defines the information control block used to manage - * this class of objects. - */ -extern Objects_Information _Timer_Information; - -/** * @brief Timer_Allocate * * This function allocates a timer control block from |