forked from Imagelibrary/rtems
2008-03-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems.adb, rtems.ads: Refactored rtems_clock_get into 5 methods which are single purpose and more strongly typed. They are: rtems_clock_get_tod - Get TOD in Classic API structure rtems_clock_get_tod_timeval - Get TOD in struct timeval rtems_clock_get_seconds_since_epoch - Get TOD as seconds since 1988 rtems_clock_get_ticks_since_boot - Get ticks since boot rtems_clock_get_ticks_per_second - Get ticks per second Also switch from using 'Unchecked_Access to 'Access. Added pragma Convention C as required by gcc > 4.3. Changed style of parenthese on subprogram calls to match GNAT.
This commit is contained in:
@@ -1,3 +1,16 @@
|
||||
2008-03-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* rtems.adb, rtems.ads: Refactored rtems_clock_get into 5 methods
|
||||
which are single purpose and more strongly typed. They are:
|
||||
rtems_clock_get_tod - Get TOD in Classic API structure
|
||||
rtems_clock_get_tod_timeval - Get TOD in struct timeval
|
||||
rtems_clock_get_seconds_since_epoch - Get TOD as seconds since 1988
|
||||
rtems_clock_get_ticks_since_boot - Get ticks since boot
|
||||
rtems_clock_get_ticks_per_second - Get ticks per second
|
||||
Also switch from using 'Unchecked_Access to 'Access.
|
||||
Added pragma Convention C as required by gcc > 4.3.
|
||||
Changed style of parenthese on subprogram calls to match GNAT.
|
||||
|
||||
2008-02-04 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* rtems.adb, rtems.ads: Correct binding to Object_Get_Name. Now works.
|
||||
|
||||
@@ -237,7 +237,7 @@ package body RTEMS is
|
||||
Stack_Size,
|
||||
Initial_Modes,
|
||||
Attribute_Set,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
end Task_Create;
|
||||
@@ -259,7 +259,7 @@ package body RTEMS is
|
||||
|
||||
begin
|
||||
|
||||
Result := Task_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
|
||||
Result := Task_Ident_Base (Name, Node, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Task_Ident;
|
||||
@@ -278,7 +278,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Start_Base, "rtems_task_start");
|
||||
begin
|
||||
|
||||
Result := Task_Start_Base ( ID, Entry_Point, Argument );
|
||||
Result := Task_Start_Base (ID, Entry_Point, Argument);
|
||||
|
||||
end Task_Start;
|
||||
|
||||
@@ -294,7 +294,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Restart_Base, "rtems_task_restart");
|
||||
begin
|
||||
|
||||
Result := Task_Restart_Base ( ID, Argument );
|
||||
Result := Task_Restart_Base (ID, Argument);
|
||||
|
||||
end Task_Restart;
|
||||
|
||||
@@ -308,7 +308,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Delete_Base, "rtems_task_delete");
|
||||
begin
|
||||
|
||||
Result := Task_Delete_Base ( ID );
|
||||
Result := Task_Delete_Base (ID);
|
||||
|
||||
end Task_Delete;
|
||||
|
||||
@@ -322,7 +322,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Suspend_Base, "rtems_task_suspend");
|
||||
begin
|
||||
|
||||
Result := Task_Suspend_Base ( ID );
|
||||
Result := Task_Suspend_Base (ID);
|
||||
|
||||
end Task_Suspend;
|
||||
|
||||
@@ -336,7 +336,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Resume_Base, "rtems_task_resume");
|
||||
begin
|
||||
|
||||
Result := Task_Resume_Base ( ID );
|
||||
Result := Task_Resume_Base (ID);
|
||||
|
||||
end Task_Resume;
|
||||
|
||||
@@ -350,7 +350,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
|
||||
begin
|
||||
|
||||
Result := Task_Is_Suspended_Base ( ID );
|
||||
Result := Task_Is_Suspended_Base (ID);
|
||||
|
||||
end Task_Is_Suspended;
|
||||
|
||||
@@ -372,7 +372,7 @@ package body RTEMS is
|
||||
Result := Task_Set_Priority_Base (
|
||||
ID,
|
||||
New_Priority,
|
||||
Old_Priority_Base'Unchecked_Access
|
||||
Old_Priority_Base'Access
|
||||
);
|
||||
Old_Priority := Old_Priority_Base;
|
||||
|
||||
@@ -396,7 +396,7 @@ package body RTEMS is
|
||||
Result := Task_Mode_Base (
|
||||
Mode_Set,
|
||||
Mask,
|
||||
Previous_Mode_Set_Base'Unchecked_Access
|
||||
Previous_Mode_Set_Base'Access
|
||||
);
|
||||
Previous_Mode_Set := Previous_Mode_Set_Base;
|
||||
|
||||
@@ -417,7 +417,7 @@ package body RTEMS is
|
||||
Note_Base : aliased RTEMS.Unsigned32;
|
||||
begin
|
||||
|
||||
Result := Task_Get_Note_Base ( ID, Notepad, Note_Base'Unchecked_Access );
|
||||
Result := Task_Get_Note_Base (ID, Notepad, Note_Base'Access);
|
||||
Note := NOTE_Base;
|
||||
|
||||
end Task_Get_Note;
|
||||
@@ -436,7 +436,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Set_Note_Base, "rtems_task_set_note");
|
||||
begin
|
||||
|
||||
Result := Task_Set_Note_Base ( ID, Notepad, Note );
|
||||
Result := Task_Set_Note_Base (ID, Notepad, Note);
|
||||
|
||||
end Task_Set_Note;
|
||||
|
||||
@@ -454,7 +454,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Variable_Add_Base, "rtems_task_variable_add");
|
||||
begin
|
||||
|
||||
Result := Task_Variable_Add_Base ( ID, Task_Variable, Dtor );
|
||||
Result := Task_Variable_Add_Base (ID, Task_Variable, Dtor);
|
||||
|
||||
end Task_Variable_Add;
|
||||
|
||||
@@ -476,8 +476,8 @@ package body RTEMS is
|
||||
|
||||
Result := Task_Variable_Get_Base (
|
||||
ID,
|
||||
Task_Variable_Base'Unchecked_Access,
|
||||
Task_Variable_Value_Base'Unchecked_Access
|
||||
Task_Variable_Base'Access,
|
||||
Task_Variable_Value_Base'Access
|
||||
);
|
||||
Task_Variable := Task_Variable_Base;
|
||||
Task_Variable_Value := Task_Variable_Value_Base;
|
||||
@@ -500,7 +500,7 @@ package body RTEMS is
|
||||
begin
|
||||
|
||||
Result := Task_Variable_Delete_Base (
|
||||
ID, Task_Variable_Base'Unchecked_Access
|
||||
ID, Task_Variable_Base'Access
|
||||
);
|
||||
Task_Variable := Task_Variable_Base;
|
||||
|
||||
@@ -516,7 +516,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Wake_When_Base, "rtems_task_wake_when");
|
||||
begin
|
||||
|
||||
Result := Task_Wake_When_Base ( Time_Buffer );
|
||||
Result := Task_Wake_When_Base (Time_Buffer);
|
||||
|
||||
end Task_Wake_When;
|
||||
|
||||
@@ -530,7 +530,7 @@ package body RTEMS is
|
||||
pragma Import (C, Task_Wake_After_Base, "rtems_task_wake_after");
|
||||
begin
|
||||
|
||||
Result := Task_Wake_After_Base ( Ticks );
|
||||
Result := Task_Wake_After_Base (Ticks);
|
||||
|
||||
end Task_Wake_After;
|
||||
|
||||
@@ -552,12 +552,15 @@ package body RTEMS is
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Clock_Set_Base (
|
||||
Time_Buffer : RTEMS.Time_Of_Day
|
||||
Time_Buffer : access RTEMS.Time_Of_Day
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, Clock_Set_Base, "rtems_clock_set");
|
||||
|
||||
Tmp_Time : aliased RTEMS.Time_Of_Day;
|
||||
begin
|
||||
|
||||
Result := Clock_Set_Base ( Time_Buffer );
|
||||
Tmp_Time := Time_Buffer;
|
||||
Result := Clock_Set_Base (Tmp_Time'Access);
|
||||
|
||||
end Clock_Set;
|
||||
|
||||
@@ -573,10 +576,67 @@ package body RTEMS is
|
||||
pragma Import (C, Clock_Get_Base, "rtems_clock_get");
|
||||
begin
|
||||
|
||||
Result := Clock_Get_Base ( Option, Time_Buffer );
|
||||
Result := Clock_Get_Base (Option, Time_Buffer);
|
||||
|
||||
end Clock_Get;
|
||||
|
||||
procedure Clock_Get_TOD (
|
||||
Time : out RTEMS.Time_Of_Day;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Clock_Get_TOD_Base (
|
||||
Time : access RTEMS.Time_Of_Day
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, Clock_Get_TOD_Base, "rtems_clock_get_tod");
|
||||
|
||||
Tmp_Time : aliased RTEMS.Time_Of_Day;
|
||||
begin
|
||||
Result := Clock_Get_TOD_Base (Tmp_Time'Access);
|
||||
Time := Tmp_Time;
|
||||
end Clock_Get_TOD;
|
||||
|
||||
procedure Clock_Get_TOD_Time_Value (
|
||||
Time : out RTEMS.Clock_Time_Value;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Clock_Get_TOD_Time_Value_Base (
|
||||
Time : access RTEMS.Clock_Time_Value
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (
|
||||
C,
|
||||
Clock_Get_TOD_Time_Value_Base,
|
||||
"rtems_clock_get_tod_timeval"
|
||||
);
|
||||
|
||||
Tmp_Time : aliased RTEMS.Clock_Time_Value;
|
||||
begin
|
||||
Result := Clock_Get_TOD_Time_Value_Base (Tmp_Time'Access);
|
||||
Time := Tmp_Time;
|
||||
end Clock_Get_TOD_Time_Value;
|
||||
|
||||
procedure Clock_Get_Seconds_Since_Epoch(
|
||||
The_Interval : out RTEMS.Interval;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Clock_Get_Seconds_Since_Epoch_Base (
|
||||
The_Interval : access RTEMS.Interval
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (
|
||||
C,
|
||||
Clock_Get_Seconds_Since_Epoch_Base,
|
||||
"rtems_clock_get_seconds_since_epoch"
|
||||
);
|
||||
|
||||
Tmp_Interval : aliased RTEMS.Interval;
|
||||
begin
|
||||
Result := Clock_Get_Seconds_Since_Epoch_Base (Tmp_Interval'Access);
|
||||
The_Interval := Tmp_Interval;
|
||||
end Clock_Get_Seconds_Since_Epoch;
|
||||
|
||||
-- Clock_Get_Ticks_Per_Second is in rtems.ads
|
||||
|
||||
-- Clock_Get_Ticks_Since_Boot is in rtems.ads
|
||||
|
||||
procedure Clock_Get_Uptime (
|
||||
Uptime : out RTEMS.Timespec;
|
||||
Result : out RTEMS.Status_Codes
|
||||
@@ -588,9 +648,7 @@ package body RTEMS is
|
||||
Uptime_Base : aliased RTEMS.Timespec;
|
||||
begin
|
||||
|
||||
Result := Clock_Get_Uptime_Base (
|
||||
Uptime_Base'Unchecked_Access
|
||||
);
|
||||
Result := Clock_Get_Uptime_Base (Uptime_Base'Access);
|
||||
Uptime := Uptime_Base;
|
||||
|
||||
end Clock_Get_Uptime;
|
||||
@@ -625,7 +683,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Extension_Create_Base ( Name, Table, ID_Base'Unchecked_Access );
|
||||
Result := Extension_Create_Base (Name, Table, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Extension_Create;
|
||||
@@ -643,7 +701,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Extension_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Extension_Ident_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Extension_Ident;
|
||||
@@ -658,7 +716,7 @@ package body RTEMS is
|
||||
pragma Import (C, Extension_Delete_Base, "rtems_extension_delete");
|
||||
begin
|
||||
|
||||
Result := Extension_Delete_Base ( ID );
|
||||
Result := Extension_Delete_Base (ID);
|
||||
|
||||
end Extension_Delete;
|
||||
|
||||
@@ -679,7 +737,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Timer_Create_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Timer_Create_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Timer_Create;
|
||||
@@ -697,7 +755,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Timer_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Timer_Ident_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Timer_Ident;
|
||||
@@ -712,7 +770,7 @@ package body RTEMS is
|
||||
pragma Import (C, Timer_Delete_Base, "rtems_timer_delete");
|
||||
begin
|
||||
|
||||
Result := Timer_Delete_Base ( ID );
|
||||
Result := Timer_Delete_Base (ID);
|
||||
|
||||
end Timer_Delete;
|
||||
|
||||
@@ -732,7 +790,7 @@ package body RTEMS is
|
||||
pragma Import (C, Timer_Fire_After_Base, "rtems_timer_fire_after");
|
||||
begin
|
||||
|
||||
Result := Timer_Fire_After_Base ( ID, Ticks, Routine, User_Data );
|
||||
Result := Timer_Fire_After_Base (ID, Ticks, Routine, User_Data);
|
||||
|
||||
end Timer_Fire_After;
|
||||
|
||||
@@ -756,7 +814,7 @@ package body RTEMS is
|
||||
);
|
||||
begin
|
||||
|
||||
Result := Timer_Server_Fire_After_Base ( ID, Ticks, Routine, User_Data );
|
||||
Result := Timer_Server_Fire_After_Base (ID, Ticks, Routine, User_Data);
|
||||
|
||||
end Timer_Server_Fire_After;
|
||||
|
||||
@@ -776,7 +834,7 @@ package body RTEMS is
|
||||
pragma Import (C, Timer_Fire_When_Base, "rtems_timer_fire_when");
|
||||
begin
|
||||
|
||||
Result := Timer_Fire_When_Base ( ID, Wall_Time, Routine, User_Data );
|
||||
Result := Timer_Fire_When_Base (ID, Wall_Time, Routine, User_Data);
|
||||
|
||||
end Timer_Fire_When;
|
||||
|
||||
@@ -801,7 +859,7 @@ package body RTEMS is
|
||||
begin
|
||||
|
||||
Result :=
|
||||
Timer_Server_Fire_When_Base ( ID, Wall_Time, Routine, User_Data );
|
||||
Timer_Server_Fire_When_Base (ID, Wall_Time, Routine, User_Data);
|
||||
end Timer_Server_Fire_When;
|
||||
|
||||
procedure Timer_Reset (
|
||||
@@ -814,7 +872,7 @@ package body RTEMS is
|
||||
pragma Import (C, Timer_Reset_Base, "rtems_timer_reset");
|
||||
begin
|
||||
|
||||
Result := Timer_Reset_Base ( ID );
|
||||
Result := Timer_Reset_Base (ID);
|
||||
|
||||
end Timer_Reset;
|
||||
|
||||
@@ -828,7 +886,7 @@ package body RTEMS is
|
||||
pragma Import (C, Timer_Cancel_Base, "rtems_timer_cancel");
|
||||
begin
|
||||
|
||||
Result := Timer_Cancel_Base ( ID );
|
||||
Result := Timer_Cancel_Base (ID);
|
||||
|
||||
end Timer_Cancel;
|
||||
|
||||
@@ -884,7 +942,7 @@ package body RTEMS is
|
||||
Count,
|
||||
Attribute_Set,
|
||||
Priority_Ceiling,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -900,7 +958,7 @@ package body RTEMS is
|
||||
pragma Import (C, Semaphore_Delete_Base, "rtems_semaphore_delete");
|
||||
begin
|
||||
|
||||
Result := Semaphore_Delete_Base ( ID );
|
||||
Result := Semaphore_Delete_Base (ID);
|
||||
|
||||
end Semaphore_Delete;
|
||||
|
||||
@@ -919,7 +977,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Semaphore_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
|
||||
Result := Semaphore_Ident_Base (Name, Node, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Semaphore_Ident;
|
||||
@@ -938,7 +996,7 @@ package body RTEMS is
|
||||
pragma Import (C, Semaphore_Obtain_Base, "rtems_semaphore_obtain");
|
||||
begin
|
||||
|
||||
Result := Semaphore_Obtain_Base ( ID, Option_Set, Timeout );
|
||||
Result := Semaphore_Obtain_Base (ID, Option_Set, Timeout);
|
||||
|
||||
end Semaphore_Obtain;
|
||||
|
||||
@@ -952,7 +1010,7 @@ package body RTEMS is
|
||||
pragma Import (C, Semaphore_Release_Base, "rtems_semaphore_release");
|
||||
begin
|
||||
|
||||
Result := Semaphore_Release_Base ( ID );
|
||||
Result := Semaphore_Release_Base (ID);
|
||||
|
||||
end Semaphore_Release;
|
||||
|
||||
@@ -966,7 +1024,7 @@ package body RTEMS is
|
||||
pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
|
||||
begin
|
||||
|
||||
Result := Semaphore_Flush_Base ( ID );
|
||||
Result := Semaphore_Flush_Base (ID);
|
||||
|
||||
end Semaphore_Flush;
|
||||
|
||||
@@ -1000,7 +1058,7 @@ package body RTEMS is
|
||||
Count,
|
||||
Max_Message_Size,
|
||||
Attribute_Set,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1022,7 +1080,7 @@ package body RTEMS is
|
||||
begin
|
||||
|
||||
Result :=
|
||||
Message_Queue_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
|
||||
Message_Queue_Ident_Base (Name, Node, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Message_Queue_Ident;
|
||||
@@ -1038,7 +1096,7 @@ package body RTEMS is
|
||||
C, Message_Queue_Delete_Base, "rtems_message_queue_delete");
|
||||
begin
|
||||
|
||||
Result := Message_Queue_Delete_Base ( ID );
|
||||
Result := Message_Queue_Delete_Base (ID);
|
||||
|
||||
end Message_Queue_Delete;
|
||||
|
||||
@@ -1056,7 +1114,7 @@ package body RTEMS is
|
||||
pragma Import (C, Message_Queue_Send_Base, "rtems_message_queue_send");
|
||||
begin
|
||||
|
||||
Result := Message_Queue_Send_Base ( ID, Buffer, Size );
|
||||
Result := Message_Queue_Send_Base (ID, Buffer, Size);
|
||||
|
||||
end Message_Queue_Send;
|
||||
|
||||
@@ -1075,7 +1133,7 @@ package body RTEMS is
|
||||
"rtems_message_queue_urgent");
|
||||
begin
|
||||
|
||||
Result := Message_Queue_Urgent_Base ( ID, Buffer, Size );
|
||||
Result := Message_Queue_Urgent_Base (ID, Buffer, Size);
|
||||
|
||||
end Message_Queue_Urgent;
|
||||
|
||||
@@ -1101,8 +1159,8 @@ package body RTEMS is
|
||||
ID,
|
||||
Buffer,
|
||||
Size,
|
||||
Count_Base'Unchecked_Access
|
||||
);
|
||||
Count_Base'Access
|
||||
);
|
||||
Count := Count_Base;
|
||||
|
||||
end Message_Queue_Broadcast;
|
||||
@@ -1130,7 +1188,7 @@ package body RTEMS is
|
||||
Result := Message_Queue_Receive_Base (
|
||||
ID,
|
||||
Buffer,
|
||||
Size_Base'Unchecked_Access,
|
||||
Size_Base'Access,
|
||||
Option_Set,
|
||||
Timeout
|
||||
);
|
||||
@@ -1156,7 +1214,7 @@ package body RTEMS is
|
||||
begin
|
||||
|
||||
Result := Message_Queue_Get_Number_Pending_Base (
|
||||
ID, COUNT_Base'Unchecked_Access
|
||||
ID, COUNT_Base'Access
|
||||
);
|
||||
Count := COUNT_Base;
|
||||
|
||||
@@ -1175,7 +1233,7 @@ package body RTEMS is
|
||||
COUNT_Base : aliased RTEMS.Unsigned32;
|
||||
begin
|
||||
|
||||
Result := Message_Queue_Flush_Base ( ID, COUNT_Base'Unchecked_Access );
|
||||
Result := Message_Queue_Flush_Base (ID, COUNT_Base'Access);
|
||||
Count := COUNT_Base;
|
||||
|
||||
end Message_Queue_Flush;
|
||||
@@ -1196,7 +1254,7 @@ package body RTEMS is
|
||||
pragma Import (C, Event_Send_Base, "rtems_event_send");
|
||||
begin
|
||||
|
||||
Result := Event_Send_Base ( ID, Event_In );
|
||||
Result := Event_Send_Base (ID, Event_In);
|
||||
|
||||
end Event_Send;
|
||||
|
||||
@@ -1243,7 +1301,7 @@ package body RTEMS is
|
||||
pragma Import (C, Signal_Catch_Base, "rtems_signal_catch");
|
||||
begin
|
||||
|
||||
Result := Signal_Catch_Base ( ASR_Handler, Mode_Set );
|
||||
Result := Signal_Catch_Base (ASR_Handler, Mode_Set);
|
||||
|
||||
end Signal_Catch;
|
||||
|
||||
@@ -1259,7 +1317,7 @@ package body RTEMS is
|
||||
pragma Import (C, Signal_Send_Base, "rtems_signal_send");
|
||||
begin
|
||||
|
||||
Result := Signal_Send_Base ( ID, Signal_Set );
|
||||
Result := Signal_Send_Base (ID, Signal_Set);
|
||||
|
||||
end Signal_Send;
|
||||
|
||||
@@ -1295,7 +1353,7 @@ package body RTEMS is
|
||||
Length,
|
||||
Buffer_Size,
|
||||
Attribute_Set,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1316,7 +1374,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Partition_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
|
||||
Result := Partition_Ident_Base (Name, Node, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Partition_Ident;
|
||||
@@ -1331,7 +1389,7 @@ package body RTEMS is
|
||||
pragma Import (C, Partition_Delete_Base, "rtems_partition_delete");
|
||||
begin
|
||||
|
||||
Result := Partition_Delete_Base ( ID );
|
||||
Result := Partition_Delete_Base (ID);
|
||||
|
||||
end Partition_Delete;
|
||||
|
||||
@@ -1349,7 +1407,7 @@ package body RTEMS is
|
||||
Buffer_Base : aliased RTEMS.Address;
|
||||
begin
|
||||
|
||||
Result := Partition_Get_Buffer_Base ( ID, Buffer_Base'Unchecked_Access );
|
||||
Result := Partition_Get_Buffer_Base (ID, Buffer_Base'Access);
|
||||
Buffer := Buffer_Base;
|
||||
|
||||
end Partition_Get_Buffer;
|
||||
@@ -1367,7 +1425,7 @@ package body RTEMS is
|
||||
"rtems_partition_return_buffer");
|
||||
begin
|
||||
|
||||
Result := Partition_Return_Buffer_Base ( ID, Buffer );
|
||||
Result := Partition_Return_Buffer_Base (ID, Buffer);
|
||||
|
||||
end Partition_Return_Buffer;
|
||||
|
||||
@@ -1402,7 +1460,7 @@ package body RTEMS is
|
||||
Length,
|
||||
Page_Size,
|
||||
Attribute_Set,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1421,7 +1479,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Region_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Region_Ident_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Region_Ident;
|
||||
@@ -1436,7 +1494,7 @@ package body RTEMS is
|
||||
pragma Import (C, Region_Delete_Base, "rtems_region_delete");
|
||||
begin
|
||||
|
||||
Result := Region_Delete_Base ( ID );
|
||||
Result := Region_Delete_Base (ID);
|
||||
|
||||
end Region_Delete;
|
||||
|
||||
@@ -1454,7 +1512,7 @@ package body RTEMS is
|
||||
pragma Import (C, Region_Extend_Base, "rtems_region_extend");
|
||||
begin
|
||||
|
||||
Result := Region_Extend_Base ( ID, Starting_Address, Length );
|
||||
Result := Region_Extend_Base (ID, Starting_Address, Length);
|
||||
|
||||
end Region_Extend;
|
||||
|
||||
@@ -1482,7 +1540,7 @@ package body RTEMS is
|
||||
Size,
|
||||
Option_Set,
|
||||
Timeout,
|
||||
Segment_Base'Unchecked_Access
|
||||
Segment_Base'Access
|
||||
);
|
||||
Segment := SEGMENT_Base;
|
||||
|
||||
@@ -1507,7 +1565,7 @@ package body RTEMS is
|
||||
Result := Region_Get_Segment_Size_Base (
|
||||
ID,
|
||||
Segment,
|
||||
Size_Base'Unchecked_Access
|
||||
Size_Base'Access
|
||||
);
|
||||
Size := SIZE_Base;
|
||||
|
||||
@@ -1526,7 +1584,7 @@ package body RTEMS is
|
||||
"rtems_region_return_segment");
|
||||
begin
|
||||
|
||||
Result := Region_Return_Segment_Base ( ID, Segment );
|
||||
Result := Region_Return_Segment_Base (ID, Segment);
|
||||
|
||||
end Region_Return_Segment;
|
||||
|
||||
@@ -1552,7 +1610,7 @@ package body RTEMS is
|
||||
ID,
|
||||
Segment,
|
||||
Size,
|
||||
Old_Size_Base'Unchecked_Access
|
||||
Old_Size_Base'Access
|
||||
);
|
||||
Old_Size := Old_Size_Base;
|
||||
|
||||
@@ -1586,7 +1644,7 @@ package body RTEMS is
|
||||
Internal_Start,
|
||||
External_Start,
|
||||
Length,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1605,7 +1663,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Port_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Port_Ident_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Port_Ident;
|
||||
@@ -1620,7 +1678,7 @@ package body RTEMS is
|
||||
pragma Import (C, Port_Delete_Base, "rtems_port_delete");
|
||||
begin
|
||||
|
||||
Result := Port_Delete_Base ( ID );
|
||||
Result := Port_Delete_Base (ID);
|
||||
|
||||
end Port_Delete;
|
||||
|
||||
@@ -1643,7 +1701,7 @@ package body RTEMS is
|
||||
Result := Port_External_To_Internal_Base (
|
||||
ID,
|
||||
External,
|
||||
Internal_Base'Unchecked_Access
|
||||
Internal_Base'Access
|
||||
);
|
||||
Internal := INTERNAL_Base;
|
||||
|
||||
@@ -1668,7 +1726,7 @@ package body RTEMS is
|
||||
Result := Port_Internal_To_External_Base (
|
||||
ID,
|
||||
Internal,
|
||||
External_Base'Unchecked_Access
|
||||
External_Base'Access
|
||||
);
|
||||
External := EXTERNAL_Base;
|
||||
|
||||
@@ -1688,7 +1746,7 @@ package body RTEMS is
|
||||
pragma Import (C, Fatal_Error_Occurred_Base, "rtems_fatal_error_occurred");
|
||||
begin
|
||||
|
||||
Fatal_Error_Occurred_Base ( The_Error );
|
||||
Fatal_Error_Occurred_Base (The_Error);
|
||||
|
||||
end Fatal_Error_Occurred;
|
||||
|
||||
@@ -1710,7 +1768,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Create_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Rate_Monotonic_Create_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Rate_Monotonic_Create;
|
||||
@@ -1728,7 +1786,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Rate_Monotonic_Ident_Base (Name, ID_Base'Access);
|
||||
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1745,7 +1803,7 @@ package body RTEMS is
|
||||
"rtems_rate_monotonic_delete");
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Delete_Base ( ID );
|
||||
Result := Rate_Monotonic_Delete_Base (ID);
|
||||
|
||||
end Rate_Monotonic_Delete;
|
||||
|
||||
@@ -1760,7 +1818,7 @@ package body RTEMS is
|
||||
"rtems_rate_monotonic_cancel");
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Cancel_Base ( ID );
|
||||
Result := Rate_Monotonic_Cancel_Base (ID);
|
||||
|
||||
end Rate_Monotonic_Cancel;
|
||||
|
||||
@@ -1777,7 +1835,7 @@ package body RTEMS is
|
||||
"rtems_rate_monotonic_period");
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Period_Base ( ID, Length );
|
||||
Result := Rate_Monotonic_Period_Base (ID, Length);
|
||||
|
||||
end Rate_Monotonic_Period;
|
||||
|
||||
@@ -1798,7 +1856,7 @@ package body RTEMS is
|
||||
|
||||
Result := Rate_Monotonic_Get_Status_Base (
|
||||
ID,
|
||||
Status_Base'Unchecked_Access
|
||||
Status_Base'Access
|
||||
);
|
||||
|
||||
Status := Status_Base;
|
||||
@@ -1817,7 +1875,7 @@ package body RTEMS is
|
||||
"rtems_rate_monotonic_reset_statistics");
|
||||
begin
|
||||
|
||||
Result := Rate_Monotonic_Reset_Statistics_Base ( ID );
|
||||
Result := Rate_Monotonic_Reset_Statistics_Base (ID);
|
||||
|
||||
end Rate_Monotonic_Reset_Statistics;
|
||||
|
||||
@@ -1847,7 +1905,7 @@ package body RTEMS is
|
||||
Name,
|
||||
Attribute_Set,
|
||||
Maximum_Waiters,
|
||||
ID_Base'Unchecked_Access
|
||||
ID_Base'Access
|
||||
);
|
||||
ID := ID_Base;
|
||||
|
||||
@@ -1866,7 +1924,7 @@ package body RTEMS is
|
||||
ID_Base : aliased RTEMS.ID;
|
||||
begin
|
||||
|
||||
Result := Barrier_Ident_Base ( Name, ID_Base'Unchecked_Access );
|
||||
Result := Barrier_Ident_Base (Name, ID_Base'Access);
|
||||
ID := ID_Base;
|
||||
|
||||
end Barrier_Ident;
|
||||
@@ -1881,7 +1939,7 @@ package body RTEMS is
|
||||
pragma Import (C, Barrier_Delete_Base, "rtems_barrier_delete");
|
||||
begin
|
||||
|
||||
Result := Barrier_Delete_Base ( ID );
|
||||
Result := Barrier_Delete_Base (ID);
|
||||
|
||||
end Barrier_Delete;
|
||||
|
||||
@@ -1897,7 +1955,7 @@ package body RTEMS is
|
||||
pragma Import (C, Barrier_Wait_Base, "rtems_barrier_wait");
|
||||
begin
|
||||
|
||||
Result := Barrier_Wait_Base ( ID, Timeout );
|
||||
Result := Barrier_Wait_Base (ID, Timeout);
|
||||
|
||||
end Barrier_Wait;
|
||||
|
||||
@@ -1914,7 +1972,7 @@ package body RTEMS is
|
||||
Released_Base : aliased RTEMS.Unsigned32;
|
||||
begin
|
||||
|
||||
Result := Barrier_Release_Base ( ID, Released_Base'Unchecked_Access );
|
||||
Result := Barrier_Release_Base (ID, Released_Base'Access);
|
||||
Released := Released_Base;
|
||||
|
||||
end Barrier_Release;
|
||||
@@ -1933,7 +1991,7 @@ package body RTEMS is
|
||||
pragma Import (C, Debug_Enable_Base, "rtems_debug_enable");
|
||||
begin
|
||||
|
||||
Debug_Enable_Base ( To_Be_Enabled );
|
||||
Debug_Enable_Base (To_Be_Enabled);
|
||||
|
||||
end Debug_Enable;
|
||||
|
||||
@@ -1946,7 +2004,7 @@ package body RTEMS is
|
||||
pragma Import (C, Debug_Disable_Base, "rtems_debug_disable");
|
||||
begin
|
||||
|
||||
Debug_Disable_Base ( To_Be_Disabled );
|
||||
Debug_Disable_Base (To_Be_Disabled);
|
||||
|
||||
end Debug_Disable;
|
||||
|
||||
@@ -1959,7 +2017,7 @@ package body RTEMS is
|
||||
pragma Import (C, Debug_Is_Enabled_Base, "_Debug_Is_enabled");
|
||||
begin
|
||||
|
||||
return Debug_Is_Enabled_Base ( Level );
|
||||
return Debug_Is_Enabled_Base (Level);
|
||||
|
||||
end Debug_Is_Enabled;
|
||||
|
||||
|
||||
@@ -109,6 +109,7 @@ pragma Elaborate_Body (RTEMS);
|
||||
type Task_Entry is access procedure (
|
||||
Argument : RTEMS.Unsigned32
|
||||
);
|
||||
pragma Convention (C, Task_Entry);
|
||||
|
||||
subtype TCB is RTEMS.Unsigned32;
|
||||
type TCB_Pointer is access all RTEMS.TCB;
|
||||
@@ -259,42 +260,51 @@ pragma Elaborate_Body (RTEMS);
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
New_Task : in RTEMS.TCB_Pointer
|
||||
) return RTEMS.Boolean;
|
||||
pragma Convention (C, Thread_Create_Extension);
|
||||
|
||||
type Thread_Start_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
Started_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Start_Extension);
|
||||
|
||||
type Thread_Restart_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
Restarted_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Restart_Extension);
|
||||
|
||||
type Thread_Delete_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
Deleted_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Delete_Extension);
|
||||
|
||||
type Thread_Switch_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
Heir_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Switch_Extension);
|
||||
|
||||
type Thread_Post_Switch_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Post_Switch_Extension);
|
||||
|
||||
type Thread_Begin_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Begin_Extension);
|
||||
|
||||
type Thread_Exitted_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
pragma Convention (C, Thread_Exitted_Extension);
|
||||
|
||||
type Fatal_Error_Extension is access procedure (
|
||||
Error : in RTEMS.Unsigned32
|
||||
);
|
||||
pragma Convention (C, Fatal_Error_Extension);
|
||||
|
||||
type Extensions_Table is
|
||||
record
|
||||
@@ -319,6 +329,7 @@ pragma Elaborate_Body (RTEMS);
|
||||
ID : in RTEMS.ID;
|
||||
User_Data : in RTEMS.Address
|
||||
);
|
||||
pragma Convention (C, Timer_Service_Routine);
|
||||
|
||||
--
|
||||
-- The following type define a pointer to a signal service routine.
|
||||
@@ -327,6 +338,7 @@ pragma Elaborate_Body (RTEMS);
|
||||
type ASR_Handler is access procedure (
|
||||
Signals : in RTEMS.Signal_Set
|
||||
);
|
||||
pragma Convention (C, ASR_Handler);
|
||||
|
||||
--
|
||||
-- The following type defines the status information returned
|
||||
@@ -663,6 +675,7 @@ pragma Elaborate_Body (RTEMS);
|
||||
type Task_Variable_Dtor is access procedure (
|
||||
Argument : in RTEMS.Address
|
||||
);
|
||||
pragma Convention (C, Task_Variable_Dtor);
|
||||
|
||||
procedure Task_Variable_Add (
|
||||
ID : in RTEMS.ID;
|
||||
@@ -734,6 +747,37 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure Clock_Get_TOD (
|
||||
Time : out RTEMS.Time_Of_Day;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure Clock_Get_TOD_Time_Value (
|
||||
Time : out RTEMS.Clock_Time_Value;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure Clock_Get_Seconds_Since_Epoch(
|
||||
The_Interval : out RTEMS.Interval;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
function Clock_Get_Ticks_Per_Second
|
||||
return RTEMS.Interval;
|
||||
pragma Import (
|
||||
C,
|
||||
Clock_Get_Ticks_Per_Second,
|
||||
"rtems_clock_get_ticks_per_second"
|
||||
);
|
||||
|
||||
function Clock_Get_Ticks_Since_Boot
|
||||
return RTEMS.Interval;
|
||||
pragma Import (
|
||||
C,
|
||||
Clock_Get_Ticks_Since_Boot,
|
||||
"rtems_clock_get_ticks_since_boot"
|
||||
);
|
||||
|
||||
procedure Clock_Get_Uptime (
|
||||
Uptime : out RTEMS.Timespec;
|
||||
Result : out RTEMS.Status_Codes
|
||||
|
||||
Reference in New Issue
Block a user