forked from Imagelibrary/rtems
Changed to variable length messages.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
@@ -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.
|
||||
--
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user