diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-11-22 19:14:51 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-12-14 07:03:29 +0100 |
commit | 21275b58a5a69c3c838082ffc8a7a3641f32ea9a (patch) | |
tree | d331e17c15d71f107d0f14581a93ddf768b05813 /cpukit/include/rtems/rtems/messagedata.h | |
parent | rtems: Use object information to get config max (diff) | |
download | rtems-21275b58a5a69c3c838082ffc8a7a3641f32ea9a.tar.bz2 |
score: Static Objects_Information initialization
Statically allocate the objects information together with the initial
set of objects either via <rtems/confdefs.h>. Provide default object
informations with zero objects via librtemscpu.a. This greatly
simplifies the workspace size estimate. RTEMS applications which do not
use the unlimited objects option are easier to debug since all objects
reside now in statically allocated objects of the right types.
Close #3621.
Diffstat (limited to 'cpukit/include/rtems/rtems/messagedata.h')
-rw-r--r-- | cpukit/include/rtems/rtems/messagedata.h | 39 |
1 files changed, 39 insertions, 0 deletions
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 |