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:
Joel Sherrill
2008-03-11 20:12:09 +00:00
parent bf6d03d192
commit a2f56a44eb
3 changed files with 363 additions and 248 deletions

View File

@@ -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.

View File

@@ -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;

View File

@@ -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