diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-09-23 16:47:58 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-09-28 07:16:01 +0200 |
commit | 4a4f41ed642cd5d9f4056b12d86bbf80e8da983a (patch) | |
tree | 40a7ff0913194c8aa9603dd47625816ae332ce01 /testsuites/sptests/sp13 | |
parent | rtems: Remove Message_queue_Control::attribute_set (diff) | |
download | rtems-4a4f41ed642cd5d9f4056b12d86bbf80e8da983a.tar.bz2 |
rtems: Add rtems_message_queue_construct()
In contrast to message queues created by rtems_message_queue_create(), the
message queues constructed by this directive use a user-provided message buffer
storage area.
Add RTEMS_MESSAGE_QUEUE_BUFFER() to define a message buffer type for message
buffer storage areas.
Update #4007.
Diffstat (limited to 'testsuites/sptests/sp13')
-rw-r--r-- | testsuites/sptests/sp13/init.c | 21 | ||||
-rw-r--r-- | testsuites/sptests/sp13/system.h | 2 |
2 files changed, 14 insertions, 9 deletions
diff --git a/testsuites/sptests/sp13/init.c b/testsuites/sptests/sp13/init.c index a23d369001..f8ffd55426 100644 --- a/testsuites/sptests/sp13/init.c +++ b/testsuites/sptests/sp13/init.c @@ -28,6 +28,17 @@ const char rtems_test_name[] = "SP 13"; +static RTEMS_MESSAGE_QUEUE_BUFFER( MESSAGE_SIZE ) Queue_3_buffers[ 100 ]; + +static const rtems_message_queue_config Queue_3_config = { + .name = rtems_build_name( 'Q', '3', ' ', ' ' ), + .maximum_pending_messages = RTEMS_ARRAY_SIZE( Queue_3_buffers ), + .maximum_message_size = MESSAGE_SIZE, + .storage_area = Queue_3_buffers, + .storage_size = sizeof( Queue_3_buffers ), + .attributes = RTEMS_GLOBAL +}; + rtems_task Init( rtems_task_argument argument ) @@ -101,14 +112,8 @@ rtems_task Init( ); directive_failed( status, "rtems_message_queue_create of Q2" ); - status = rtems_message_queue_create( - Queue_name[ 3 ], - 100, - MESSAGE_SIZE, - RTEMS_GLOBAL, - &Queue_id[ 3 ] - ); - directive_failed( status, "rtems_message_queue_create of Q3" ); + status = rtems_message_queue_construct( &Queue_3_config, &Queue_id[ 3 ] ); + directive_failed( status, "rtems_message_queue_construct of Q3" ); rtems_task_exit(); } diff --git a/testsuites/sptests/sp13/system.h b/testsuites/sptests/sp13/system.h index 7a495963f6..1abfc96b1d 100644 --- a/testsuites/sptests/sp13/system.h +++ b/testsuites/sptests/sp13/system.h @@ -91,7 +91,7 @@ TEST_EXTERN rtems_name Queue_name[ 4 ]; /* array of queue names */ #define CONFIGURE_MESSAGE_BUFFER_MEMORY \ /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \ /* Q2 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) + \ - /* Q3 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \ + /* Q3 is statically allocated */ \ /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) + \ /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 2, 1030 ) |