2007-10-25 Glenn Humphrey <glenn.humphrey@OARcorp.com>

* rtems.adb, rtems.ads: Added some more missing bindings.
This commit is contained in:
Glenn Humphrey
2007-10-25 20:44:31 +00:00
parent 42f07c5fb7
commit d45b4a9802
3 changed files with 321 additions and 24 deletions

View File

@@ -1,3 +1,7 @@
2007-10-25 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Added some more missing bindings.
2007-10-18 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Added a missing binding.

View File

@@ -363,6 +363,20 @@ package body RTEMS is
end Task_Resume;
procedure Task_Is_Suspended (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Task_Is_Suspended_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
begin
Result := Task_Is_Suspended_Base ( ID );
end Task_Is_Suspended;
procedure Task_Set_Priority (
ID : in RTEMS.ID;
New_Priority : in RTEMS.Task_Priority;
@@ -556,35 +570,53 @@ package body RTEMS is
-- Clock Manager
--
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
) is
function Clock_Set_Base (
Time_Buffer : RTEMS.Time_Of_Day
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Set_Base, "rtems_clock_set");
begin
Result := Clock_Set_Base ( Time_Buffer );
end Clock_Set;
procedure Clock_Get (
Option : in RTEMS.Clock_Get_Options;
Time_Buffer : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function Clock_Get_base (
function Clock_Get_Base (
Option : RTEMS.Clock_Get_Options;
Time_Buffer : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Get_base, "rtems_clock_get");
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_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
procedure Clock_Get_Uptime (
Uptime : out RTEMS.Timespec;
Result : out RTEMS.Status_Codes
) is
function Clock_Set_base (
Time_Buffer : RTEMS.Time_Of_Day
function Clock_Get_Uptime_Base (
Uptime : access RTEMS.Timespec
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Set_base, "rtems_clock_set");
pragma Import (C, Clock_Get_Uptime_Base, "rtems_clock_get_uptime");
Uptime_Base : aliased RTEMS.Timespec;
begin
Result := Clock_Set_base ( Time_Buffer );
end Clock_Set;
Result := Clock_Get_Uptime_Base (
Uptime_Base'Unchecked_Access
);
Uptime := Uptime_Base;
end Clock_Get_Uptime;
procedure Clock_Tick (
Result : out RTEMS.Status_Codes
@@ -947,6 +979,20 @@ package body RTEMS is
end Semaphore_Release;
procedure Semaphore_Flush (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Semaphore_Flush_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
begin
Result := Semaphore_Flush_Base ( ID );
end Semaphore_Flush;
--
-- Message Queue Manager
--
@@ -1507,6 +1553,34 @@ package body RTEMS is
end Region_Return_Segment;
procedure Region_Resize_Segment (
ID : in RTEMS.ID;
Segment : in RTEMS.Address;
Size : in RTEMS.Unsigned32;
Old_Size : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
) is
function Region_Resize_Segment_Base (
ID : RTEMS.ID;
Segment : RTEMS.Address;
Size : RTEMS.Unsigned32;
Old_Size : access RTEMS.Unsigned32
) return RTEMS.Status_Codes;
pragma Import (C, Region_Resize_Segment_Base,
"rtems_region_resize_segment");
Old_Size_Base : aliased RTEMS.Unsigned32;
begin
Result := Region_Resize_Segment_Base (
ID,
Segment,
Size,
Old_Size_Base'Unchecked_Access
);
Old_Size := Old_Size_Base;
end Region_Resize_Segment;
--
-- Dual Ported Memory Manager
--
@@ -1631,7 +1705,7 @@ package body RTEMS is
procedure Fatal_Error_Occurred (
The_Error : in RTEMS.Unsigned32
) is
procedure Fatal_Error_Occurred_base (
procedure Fatal_Error_Occurred_Base (
The_Error : RTEMS.Unsigned32
);
pragma Import (C, Fatal_Error_Occurred_Base, "rtems_fatal_error_occurred");
@@ -1651,15 +1725,15 @@ package body RTEMS is
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Rate_Monotonic_Create_base (
function Rate_Monotonic_Create_Base (
Name : RTEMS.Name;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Rate_Monotonic_Create_base, "rtems_rate_monotonic_create");
pragma Import (C, Rate_Monotonic_Create_Base, "rtems_rate_monotonic_create");
ID_Base : aliased RTEMS.ID;
begin
Result := Rate_Monotonic_Create_base ( Name, ID_Base'Unchecked_Access );
Result := Rate_Monotonic_Create_Base ( Name, ID_Base'Unchecked_Access );
ID := ID_Base;
end Rate_Monotonic_Create;
@@ -1694,7 +1768,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;
@@ -1726,11 +1800,10 @@ 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;
procedure Rate_Monotonic_Get_Status (
ID : in RTEMS.ID;
Status : out RTEMS.Rate_Monotonic_Period_Status;
@@ -1756,6 +1829,117 @@ package body RTEMS is
end Rate_Monotonic_Get_Status;
procedure Rate_Monotonic_Reset_Statistics (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Rate_Monotonic_Reset_Statistics_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Rate_Monotonic_Reset_Statistics_Base,
"rtems_rate_monotonic_reset_statistics");
begin
Result := Rate_Monotonic_Reset_Statistics_Base ( ID );
end Rate_Monotonic_Reset_Statistics;
--
-- Barrier Manager
--
procedure Barrier_Create (
Name : in RTEMS.Name;
Attribute_Set : in RTEMS.Attribute;
Maximum_Waiters : in RTEMS.Unsigned32;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Create_Base (
Name : RTEMS.Name;
Attribute_Set : RTEMS.Attribute;
Maximum_Waiters : RTEMS.Unsigned32;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Create_Base, "rtems_barrier_create");
ID_Base : aliased RTEMS.ID;
begin
Result := Barrier_Create_Base (
Name,
Attribute_Set,
Maximum_Waiters,
ID_Base'Unchecked_Access
);
ID := ID_Base;
end Barrier_Create;
procedure Barrier_Ident (
Name : in RTEMS.Name;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Ident_Base (
Name : RTEMS.Name;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Ident_Base, "rtems_barrier_ident");
ID_Base : aliased RTEMS.ID;
begin
Result := Barrier_Ident_Base ( Name, ID_Base'Unchecked_Access );
ID := ID_Base;
end Barrier_Ident;
procedure Barrier_Delete (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Delete_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Delete_Base, "rtems_barrier_delete");
begin
Result := Barrier_Delete_Base ( ID );
end Barrier_Delete;
procedure Barrier_Wait (
ID : in RTEMS.ID;
Option_Set : in RTEMS.Option;
Timeout : in RTEMS.Interval;
Result : out RTEMS.Status_Codes
) is
function Barrier_Wait_Base (
ID : RTEMS.ID;
Option_Set : RTEMS.Option;
Timeout : RTEMS.Interval
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Wait_Base, "rtems_barrier_wait");
begin
Result := Barrier_Wait_Base ( ID, Option_Set, Timeout );
end Barrier_Wait;
procedure Barrier_Release (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Release_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Release_Base, "rtems_barrier_release");
begin
Result := Barrier_Release_Base ( ID );
end Barrier_Release;
--
-- Debug Manager

View File

@@ -138,10 +138,18 @@ pragma Elaborate_Body (RTEMS);
Clock_Get_TOD,
Clock_Get_Seconds_Since_Epoch,
Clock_Get_Ticks_Since_Boot,
Clock_Get_Ticks_Per_Seconds,
Clock_Get_Ticks_Per_Second,
Clock_Get_Time_Value
);
type Time_T is new Interfaces.C.Long;
type Timespec is record
TV_Sec : Time_T;
TV_Nsec : Interfaces.C.Long;
end record;
pragma Convention (C, Timespec);
--
-- Ident Options
--
@@ -573,7 +581,7 @@ pragma Elaborate_Body (RTEMS);
-- Initialization Manager -- Shutdown Only
--
procedure Shutdown_Executive (
Status : in RTEMS.Unsigned32
Status : in RTEMS.Unsigned32
);
--
@@ -625,6 +633,11 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Task_Is_Suspended (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Task_Set_Priority (
ID : in RTEMS.ID;
New_Priority : in RTEMS.Task_Priority;
@@ -716,15 +729,20 @@ pragma Elaborate_Body (RTEMS);
-- Clock Manager
--
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
);
procedure Clock_Get (
Option : in RTEMS.Clock_Get_Options;
Time_Buffer : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
procedure Clock_Get_Uptime (
Uptime : out RTEMS.Timespec;
Result : out RTEMS.Status_Codes
);
procedure Clock_Tick (
@@ -860,6 +878,11 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Semaphore_Flush (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
--
-- Message Queue Manager
--
@@ -1054,6 +1077,14 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Region_Resize_Segment (
ID : in RTEMS.ID;
Segment : in RTEMS.Address;
Size : in RTEMS.Unsigned32;
Old_Size : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
);
--
-- Dual Ported Memory Manager
--
@@ -1138,6 +1169,84 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Rate_Monotonic_Reset_Statistics (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Rate_Monotonic_Reset_All_Statistics;
pragma Import (
C,
Rate_Monotonic_Reset_All_Statistics,
"rtems_rate_monotonic_reset_all_statistics"
);
procedure Rate_Monotonic_Report_Statistics;
pragma Import (
C,
Rate_Monotonic_Report_Statistics,
"rtems_rate_monotonic_report_statistics"
);
--
-- Barrier Manager
--
procedure Barrier_Create (
Name : in RTEMS.Name;
Attribute_Set : in RTEMS.Attribute;
Maximum_Waiters : in RTEMS.Unsigned32;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Ident (
Name : in RTEMS.Name;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Delete (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Wait (
ID : in RTEMS.ID;
Option_Set : in RTEMS.Option;
Timeout : in RTEMS.Interval;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Release (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
--
-- Stack Bounds Checker
--
function Stack_Checker_Is_Blown return RTEMS.Boolean;
pragma Interface (C, Stack_Checker_Is_Blown);
pragma Interface_Name
(Interrupt_Is_In_Progress, "rtems_stack_checker_is_blown");
procedure Stack_Checker_Report_Usage;
pragma Import (
C, Stack_Checker_Report_Usage, "rtems_stack_checker_report_usage"
);
--
-- CPU Usage Statistics
--
procedure CPU_Usage_Report;
pragma Import (C, CPU_Usage_Report, "rtems_cpu_usage_report");
procedure CPU_Usage_Reset;
pragma Import (C, CPU_Usage_Reset, "rtems_cpu_usage_reset");
--
-- Debug Manager
--