Changed to variable length messages.

This commit is contained in:
Joel Sherrill
1997-06-03 22:06:49 +00:00
parent bc35a6ef27
commit e17ffea657
17 changed files with 219 additions and 66 deletions

View File

@@ -80,6 +80,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_CREATE( RTEMS.MESSAGE_QUEUE_CREATE(
1, 1,
TIME_TEST_SUPPORT.OPERATION_COUNT, TIME_TEST_SUPPORT.OPERATION_COUNT,
16,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
STATUS STATUS
@@ -133,8 +134,9 @@ package body TMTEST is
INDEX : RTEMS.UNSIGNED32; INDEX : RTEMS.UNSIGNED32;
ITERATIONS : RTEMS.UNSIGNED32; ITERATIONS : RTEMS.UNSIGNED32;
LOOP_COUNT : RTEMS.UNSIGNED32; LOOP_COUNT : RTEMS.UNSIGNED32;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
@@ -149,7 +151,7 @@ package body TMTEST is
FLUSH_COUNT := 0; FLUSH_COUNT := 0;
EMPTY_FLUSH_COUNT := 0; EMPTY_FLUSH_COUNT := 0;
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
for ITERATIONS in 1 .. TIME_TEST_SUPPORT.ITERATION_COUNT for ITERATIONS in 1 .. TIME_TEST_SUPPORT.ITERATION_COUNT
loop loop
@@ -181,6 +183,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND( RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
end loop; end loop;
@@ -194,6 +197,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
end loop; end loop;
@@ -205,6 +209,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_URGENT( RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
end loop; end loop;
@@ -218,6 +223,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
end loop; end loop;
@@ -235,6 +241,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND( RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -64,12 +64,13 @@ package body TMTEST is
PRIORITY : RTEMS.TASK_PRIORITY; PRIORITY : RTEMS.TASK_PRIORITY;
OVERHEAD : RTEMS.UNSIGNED32; OVERHEAD : RTEMS.UNSIGNED32;
TASK_ID : RTEMS.ID; TASK_ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
PRIORITY := 5; PRIORITY := 5;
@@ -125,6 +126,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.NO_WAIT, RTEMS.NO_WAIT,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
end loop; end loop;
@@ -147,12 +149,13 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
@@ -161,6 +164,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -174,18 +178,20 @@ package body TMTEST is
procedure MIDDLE_TASKS ( procedure MIDDLE_TASKS (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -82,12 +82,13 @@ package body TMTEST is
TASK_ENTRY : RTEMS.TASK_ENTRY; TASK_ENTRY : RTEMS.TASK_ENTRY;
PRIORITY : RTEMS.TASK_PRIORITY; PRIORITY : RTEMS.TASK_PRIORITY;
TASK_ID : RTEMS.ID; TASK_ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
-- As each task is started, it preempts this task and performs a blocking -- As each task is started, it preempts this task and performs a blocking
-- MESSAGE_QUEUE_RECEIVE. Upon completion of this loop all created tasks -- MESSAGE_QUEUE_RECEIVE. Upon completion of this loop all created tasks
@@ -98,6 +99,7 @@ package body TMTEST is
TIME_TEST_SUPPORT.OPERATION_COUNT, TIME_TEST_SUPPORT.OPERATION_COUNT,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
MESSAGE_SIZE,
STATUS STATUS
); );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE" );
@@ -135,6 +137,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND( RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
@@ -148,18 +151,20 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -185,24 +190,27 @@ package body TMTEST is
procedure MIDDLE_TASKS ( procedure MIDDLE_TASKS (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
RTEMS.MESSAGE_QUEUE_SEND( RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -82,12 +82,12 @@ package body TMTEST is
TASK_ENTRY : RTEMS.TASK_ENTRY; TASK_ENTRY : RTEMS.TASK_ENTRY;
PRIORITY : RTEMS.TASK_PRIORITY; PRIORITY : RTEMS.TASK_PRIORITY;
TASK_ID : RTEMS.ID; TASK_ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_CREATE( RTEMS.MESSAGE_QUEUE_CREATE(
RTEMS.BUILD_NAME( 'M', 'Q', '1', ' ' ), RTEMS.BUILD_NAME( 'M', 'Q', '1', ' ' ),
@@ -137,14 +137,14 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
INDEX : RTEMS.UNSIGNED32; INDEX : RTEMS.UNSIGNED32;
OVERHEAD : RTEMS.UNSIGNED32; OVERHEAD : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
@@ -159,6 +159,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND( RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); --XXX TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); --XXX
@@ -187,18 +188,20 @@ package body TMTEST is
procedure LOW_TASKS ( procedure LOW_TASKS (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" ); --XXX TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" ); --XXX

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -82,12 +82,13 @@ package body TMTEST is
TASK_ENTRY : RTEMS.TASK_ENTRY; TASK_ENTRY : RTEMS.TASK_ENTRY;
PRIORITY : RTEMS.TASK_PRIORITY; PRIORITY : RTEMS.TASK_PRIORITY;
TASK_ID : RTEMS.ID; TASK_ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
-- As each task is started, it preempts this task and performs a blocking -- As each task is started, it preempts this task and performs a blocking
-- MESSAGE_QUEUE_RECEIVE. Upon completion of this loop all created tasks -- MESSAGE_QUEUE_RECEIVE. Upon completion of this loop all created tasks
@@ -98,6 +99,7 @@ package body TMTEST is
TIME_TEST_SUPPORT.OPERATION_COUNT, TIME_TEST_SUPPORT.OPERATION_COUNT,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -134,6 +136,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_URGENT( RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
@@ -147,18 +150,20 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -183,24 +188,27 @@ package body TMTEST is
procedure MIDDLE_TASKS ( procedure MIDDLE_TASKS (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
RTEMS.MESSAGE_QUEUE_URGENT( RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -82,12 +82,12 @@ package body TMTEST is
TASK_ENTRY : RTEMS.TASK_ENTRY; TASK_ENTRY : RTEMS.TASK_ENTRY;
PRIORITY : RTEMS.TASK_PRIORITY; PRIORITY : RTEMS.TASK_PRIORITY;
TASK_ID : RTEMS.ID; TASK_ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_CREATE( RTEMS.MESSAGE_QUEUE_CREATE(
RTEMS.BUILD_NAME( 'M', 'Q', '1', ' ' ), RTEMS.BUILD_NAME( 'M', 'Q', '1', ' ' ),
@@ -130,6 +130,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_URGENT( RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
@@ -143,13 +144,13 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
OVERHEAD : RTEMS.UNSIGNED32; OVERHEAD : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
@@ -164,6 +165,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_URGENT( RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
STATUS STATUS
); );
@@ -191,18 +193,20 @@ package body TMTEST is
procedure LOW_TASKS ( procedure LOW_TASKS (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.MESSAGE_QUEUE_RECEIVE( RTEMS.MESSAGE_QUEUE_RECEIVE(
TMTEST.QUEUE_ID, TMTEST.QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -96,18 +96,19 @@ package body TMTEST is
procedure HIGH_TASK ( procedure HIGH_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
COUNT : RTEMS.UNSIGNED32; COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
RTEMS.MESSAGE_QUEUE_BROADCAST( RTEMS.MESSAGE_QUEUE_BROADCAST(
TMTEST.MESSAGE_QUEUE_ID, TMTEST.MESSAGE_QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
COUNT, COUNT,
STATUS STATUS
); );
@@ -135,15 +136,16 @@ package body TMTEST is
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
ID : RTEMS.ID; ID : RTEMS.ID;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
INDEX : RTEMS.UNSIGNED32; INDEX : RTEMS.UNSIGNED32;
OVERHEAD : RTEMS.UNSIGNED32; OVERHEAD : RTEMS.UNSIGNED32;
COUNT : RTEMS.UNSIGNED32; COUNT : RTEMS.UNSIGNED32;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
RTEMS.TASK_CREATE( RTEMS.TASK_CREATE(
RTEMS.BUILD_NAME( 'H', 'I', 'G', 'H' ), RTEMS.BUILD_NAME( 'H', 'I', 'G', 'H' ),
@@ -164,6 +166,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_MODES,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -180,6 +183,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_BROADCAST( RTEMS.MESSAGE_QUEUE_BROADCAST(
TMTEST.MESSAGE_QUEUE_ID, TMTEST.MESSAGE_QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
COUNT, COUNT,
STATUS STATUS
); );
@@ -199,6 +203,7 @@ package body TMTEST is
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_MODES, RTEMS.DEFAULT_MODES,
RTEMS.NO_TIMEOUT, RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
@@ -226,18 +231,19 @@ package body TMTEST is
procedure PREEMPT_TASK ( procedure PREEMPT_TASK (
ARGUMENT : in RTEMS.TASK_ARGUMENT ARGUMENT : in RTEMS.TASK_ARGUMENT
) is ) is
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
COUNT : RTEMS.UNSIGNED32; COUNT : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES; STATUS : RTEMS.STATUS_CODES;
begin begin
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
RTEMS.MESSAGE_QUEUE_BROADCAST( RTEMS.MESSAGE_QUEUE_BROADCAST(
TMTEST.MESSAGE_QUEUE_ID, TMTEST.MESSAGE_QUEUE_ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
COUNT, COUNT,
STATUS STATUS
); );

View File

@@ -26,6 +26,19 @@ with RTEMS;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- The following is the ID of the message queue used for timing operations. -- The following is the ID of the message queue used for timing operations.
-- --

View File

@@ -427,7 +427,8 @@ package body DUMMY_RTEMS is
procedure MESSAGE_QUEUE_SEND ( procedure MESSAGE_QUEUE_SEND (
ID : in RTEMS.ID; ID : in RTEMS.ID;
BUFFER : in RTEMS.BUFFER_POINTER; BUFFER : in RTEMS.ADDRESS;
Size : in RTEMS.Unsigned32;
RESULT : out RTEMS.STATUS_CODES RESULT : out RTEMS.STATUS_CODES
) is ) is
begin begin
@@ -438,7 +439,8 @@ package body DUMMY_RTEMS is
procedure MESSAGE_QUEUE_URGENT ( procedure MESSAGE_QUEUE_URGENT (
ID : in RTEMS.ID; ID : in RTEMS.ID;
BUFFER : in RTEMS.BUFFER_POINTER; BUFFER : in RTEMS.ADDRESS;
Size : in RTEMS.Unsigned32;
RESULT : out RTEMS.STATUS_CODES RESULT : out RTEMS.STATUS_CODES
) is ) is
begin begin
@@ -449,7 +451,8 @@ package body DUMMY_RTEMS is
procedure MESSAGE_QUEUE_BROADCAST ( procedure MESSAGE_QUEUE_BROADCAST (
ID : in RTEMS.ID; ID : in RTEMS.ID;
BUFFER : in RTEMS.BUFFER_POINTER; BUFFER : in RTEMS.ADDRESS;
Size : in RTEMS.Unsigned32;
COUNT : out RTEMS.UNSIGNED32; COUNT : out RTEMS.UNSIGNED32;
RESULT : out RTEMS.STATUS_CODES RESULT : out RTEMS.STATUS_CODES
) is ) is
@@ -461,9 +464,10 @@ package body DUMMY_RTEMS is
procedure MESSAGE_QUEUE_RECEIVE ( procedure MESSAGE_QUEUE_RECEIVE (
ID : in RTEMS.ID; ID : in RTEMS.ID;
BUFFER : in RTEMS.BUFFER_POINTER; BUFFER : in RTEMS.ADDRESS;
OPTION_SET : in RTEMS.OPTION; OPTION_SET : in RTEMS.OPTION;
TIMEOUT : in RTEMS.INTERVAL; TIMEOUT : in RTEMS.INTERVAL;
Size : out RTEMS.Unsigned32;
RESULT : out RTEMS.STATUS_CODES RESULT : out RTEMS.STATUS_CODES
) is ) is
begin begin

View File

@@ -142,8 +142,9 @@ package body TMTEST is
SIGNALS : RTEMS.SIGNAL_SET; SIGNALS : RTEMS.SIGNAL_SET;
ADDRESS_1 : RTEMS.ADDRESS; ADDRESS_1 : RTEMS.ADDRESS;
EVENTS : RTEMS.SIGNAL_SET; EVENTS : RTEMS.SIGNAL_SET;
BUFFER : RTEMS.BUFFER; BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER; BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
COUNT : RTEMS.UNSIGNED32; COUNT : RTEMS.UNSIGNED32;
MAJOR : RTEMS.DEVICE_MAJOR_NUMBER; MAJOR : RTEMS.DEVICE_MAJOR_NUMBER;
MINOR : RTEMS.DEVICE_MINOR_NUMBER; MINOR : RTEMS.DEVICE_MINOR_NUMBER;
@@ -154,7 +155,7 @@ package body TMTEST is
NAME := RTEMS.BUILD_NAME( 'N', 'A', 'M', 'E' ); NAME := RTEMS.BUILD_NAME( 'N', 'A', 'M', 'E' );
BUFFER_POINTER := RTEMS.TO_BUFFER_POINTER( BUFFER'ADDRESS ); BUFFER_POINTER := BUFFER'ADDRESS;
-- INITIALIZE_EXECUTIVE -- INITIALIZE_EXECUTIVE
@@ -821,7 +822,7 @@ TEST_SUPPORT.PAUSE;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
loop loop
DUMMY_RTEMS.MESSAGE_QUEUE_SEND( ID, BUFFER_POINTER, STATUS ); DUMMY_RTEMS.MESSAGE_QUEUE_SEND( ID, BUFFER_POINTER, 16, STATUS );
end loop; end loop;
TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
@@ -838,7 +839,7 @@ TEST_SUPPORT.PAUSE;
TIMER_DRIVER.INITIALIZE; TIMER_DRIVER.INITIALIZE;
for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
loop loop
DUMMY_RTEMS.MESSAGE_QUEUE_URGENT( ID, BUFFER_POINTER, STATUS ); DUMMY_RTEMS.MESSAGE_QUEUE_URGENT( ID, BUFFER_POINTER, 16, STATUS );
end loop; end loop;
TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
@@ -858,6 +859,7 @@ TEST_SUPPORT.PAUSE;
DUMMY_RTEMS.MESSAGE_QUEUE_BROADCAST( DUMMY_RTEMS.MESSAGE_QUEUE_BROADCAST(
ID, ID,
BUFFER_POINTER, BUFFER_POINTER,
16,
COUNT, COUNT,
STATUS STATUS
); );
@@ -882,6 +884,7 @@ TEST_SUPPORT.PAUSE;
BUFFER_POINTER, BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS, RTEMS.DEFAULT_OPTIONS,
TIMEOUT, TIMEOUT,
MESSAGE_SIZE,
STATUS STATUS
); );
end loop; end loop;

View File

@@ -28,6 +28,19 @@ with System.Storage_Elements;
package TMTEST is package TMTEST is
--
-- Buffer Record similar to that used by RTEMS 3.2.1. Using this
-- avoids changes to the test.
--
type BUFFER is
record
FIELD1 : RTEMS.UNSIGNED32; -- TEMPORARY UNTIL VARIABLE LENGTH
FIELD2 : RTEMS.UNSIGNED32;
FIELD3 : RTEMS.UNSIGNED32;
FIELD4 : RTEMS.UNSIGNED32;
end record;
-- --
-- These arrays contain the IDs and NAMEs of all RTEMS tasks created -- These arrays contain the IDs and NAMEs of all RTEMS tasks created
-- by this test. -- by this test.