summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sp13
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-23 16:47:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-28 07:16:01 +0200
commit4a4f41ed642cd5d9f4056b12d86bbf80e8da983a (patch)
tree40a7ff0913194c8aa9603dd47625816ae332ce01 /testsuites/sptests/sp13
parentrtems: Remove Message_queue_Control::attribute_set (diff)
downloadrtems-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.c21
-rw-r--r--testsuites/sptests/sp13/system.h2
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 )