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.

File diff suppressed because it is too large Load Diff

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