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(
1,
TIME_TEST_SUPPORT.OPERATION_COUNT,
16,
RTEMS.DEFAULT_OPTIONS,
TMTEST.QUEUE_ID,
STATUS
@@ -133,8 +134,9 @@ package body TMTEST is
INDEX : RTEMS.UNSIGNED32;
ITERATIONS : RTEMS.UNSIGNED32;
LOOP_COUNT : RTEMS.UNSIGNED32;
BUFFER : RTEMS.BUFFER;
BUFFER_POINTER : RTEMS.BUFFER_POINTER;
BUFFER : TMTEST.BUFFER;
BUFFER_POINTER : RTEMS.ADDRESS;
MESSAGE_SIZE : RTEMS.UNSIGNED32;
STATUS : RTEMS.STATUS_CODES;
begin
@@ -149,7 +151,7 @@ package body TMTEST is
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
loop
@@ -181,6 +183,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID,
BUFFER_POINTER,
16,
STATUS
);
end loop;
@@ -194,6 +197,7 @@ package body TMTEST is
BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS
);
end loop;
@@ -205,6 +209,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_URGENT(
TMTEST.QUEUE_ID,
BUFFER_POINTER,
16,
STATUS
);
end loop;
@@ -218,6 +223,7 @@ package body TMTEST is
BUFFER_POINTER,
RTEMS.DEFAULT_OPTIONS,
RTEMS.NO_TIMEOUT,
MESSAGE_SIZE,
STATUS
);
end loop;
@@ -235,6 +241,7 @@ package body TMTEST is
RTEMS.MESSAGE_QUEUE_SEND(
TMTEST.QUEUE_ID,
BUFFER_POINTER,
16,
STATUS
);
TIMER_DRIVER.INITIALIZE;

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

@@ -26,6 +26,19 @@ with RTEMS;
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.
--

View File

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

View File

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

View File

@@ -28,6 +28,19 @@ with System.Storage_Elements;
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
-- by this test.