forked from Imagelibrary/rtems
2007-10-10 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Cleaned up binding and removed bindings for things that are not reasonable to do in Ada.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2007-10-10 Glenn Humphrey <glenn.humphrey@OARcorp.com>
|
||||
|
||||
* rtems.adb, rtems.ads: Cleaned up binding and removed bindings for
|
||||
things that are not reasonable to do in Ada.
|
||||
|
||||
2007-10-01 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
* rtems.adb, rtems.ads: Most of single processor Ada tests now build.
|
||||
|
||||
@@ -449,6 +449,72 @@ package body RTEMS is
|
||||
|
||||
end Task_Set_Note;
|
||||
|
||||
procedure Task_Variable_Add (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : in RTEMS.Address;
|
||||
Dtor : in RTEMS.Task_Variable_Dtor;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Task_Variable_Add_Base (
|
||||
ID : RTEMS.ID;
|
||||
Task_Variable : RTEMS.Address;
|
||||
Dtor : RTEMS.Task_Variable_Dtor
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, Task_Variable_Add_Base, "rtems_task_variable_add");
|
||||
begin
|
||||
|
||||
Result := Task_Variable_Add_Base ( ID, Task_Variable, Dtor );
|
||||
|
||||
end Task_Variable_Add;
|
||||
|
||||
procedure Task_Variable_Get (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : out RTEMS.Address;
|
||||
Task_Variable_Value : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Task_Variable_Get_Base (
|
||||
ID : RTEMS.ID;
|
||||
Task_Variable : access RTEMS.Address;
|
||||
Task_Variable_Value : access RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, Task_Variable_Get_Base, "rtems_task_variable_get");
|
||||
Task_Variable_Base : aliased RTEMS.Address;
|
||||
Task_Variable_Value_Base : aliased RTEMS.Address;
|
||||
begin
|
||||
|
||||
Result := Task_Variable_Get_Base (
|
||||
ID,
|
||||
Task_Variable_Base'Unchecked_Access,
|
||||
Task_Variable_Value_Base'Unchecked_Access
|
||||
);
|
||||
Task_Variable := Task_Variable_Base;
|
||||
Task_Variable_Value := Task_Variable_Value_Base;
|
||||
|
||||
end Task_Variable_Get;
|
||||
|
||||
procedure Task_Variable_Delete (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Task_Variable_Delete_Base (
|
||||
ID : RTEMS.ID;
|
||||
Task_Variable : access RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (
|
||||
C, Task_Variable_Delete_Base, "rtems_task_variable_delete"
|
||||
);
|
||||
Task_Variable_Base : aliased RTEMS.Address;
|
||||
begin
|
||||
|
||||
Result := Task_Variable_Delete_Base (
|
||||
ID, Task_Variable_Base'Unchecked_Access
|
||||
);
|
||||
Task_Variable := Task_Variable_Base;
|
||||
|
||||
end Task_Variable_Delete;
|
||||
|
||||
procedure Task_Wake_When (
|
||||
Time_Buffer : in RTEMS.Time_Of_Day;
|
||||
Result : out RTEMS.Status_Codes
|
||||
@@ -481,30 +547,6 @@ package body RTEMS is
|
||||
-- Interrupt Manager
|
||||
--
|
||||
|
||||
procedure Interrupt_Catch (
|
||||
New_ISR_Handler : in RTEMS.Address;
|
||||
Vector : in RTEMS.Vector_Number;
|
||||
Old_ISR_Handler : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function Interrupt_Catch_Base (
|
||||
New_ISR_Handler : RTEMS.Address;
|
||||
Vector : RTEMS.Vector_Number;
|
||||
Old_ISR_Handler : access RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, Interrupt_Catch_Base, "rtems_interrupt_catch");
|
||||
Old_ISR_Handler_Base : aliased RTEMS.Address;
|
||||
begin
|
||||
|
||||
Result := Interrupt_Catch_Base (
|
||||
New_ISR_Handler,
|
||||
Vector,
|
||||
OLD_ISR_HANDLER_Base'Unchecked_Access
|
||||
);
|
||||
Old_ISR_Handler := OLD_ISR_HANDLER_Base;
|
||||
|
||||
end Interrupt_Catch;
|
||||
|
||||
-- Interrupt_Disable is interfaced in the specification
|
||||
-- Interrupt_Enable is interfaced in the specification
|
||||
-- Interrupt_Flash is interfaced in the specification
|
||||
@@ -1557,139 +1599,6 @@ package body RTEMS is
|
||||
|
||||
end Port_Internal_To_External;
|
||||
|
||||
--
|
||||
-- Input/Output Manager
|
||||
--
|
||||
|
||||
procedure IO_Register_Name (
|
||||
Name : in String;
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Register_Name_Base (
|
||||
Name : Interfaces.C.Char_Array;
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Register_Name_Base, "rtems_io_register_name");
|
||||
begin
|
||||
|
||||
Result :=
|
||||
IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
|
||||
|
||||
end IO_Register_Name;
|
||||
|
||||
procedure IO_Lookup_Name (
|
||||
Name : in String;
|
||||
Device_Info : in RTEMS.Driver_Name_t_Pointer;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Lookup_Name_Base (
|
||||
Name : Interfaces.C.Char_Array;
|
||||
Device_Info : access RTEMS.Driver_Name_t
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
|
||||
Device_Info_Base : aliased RTEMS.Driver_Name_t;
|
||||
begin
|
||||
|
||||
Result := IO_Lookup_Name_Base (
|
||||
Interfaces.C.To_C (Name),
|
||||
Device_Info_Base'Unchecked_Access
|
||||
);
|
||||
Device_Info.All := Device_Info_Base;
|
||||
|
||||
end IO_Lookup_Name;
|
||||
|
||||
procedure IO_Open (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Open_Base (
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
Argument : RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Open_Base, "rtems_io_open");
|
||||
begin
|
||||
|
||||
Result := IO_Open_Base (Major, Minor, Argument);
|
||||
|
||||
end IO_Open;
|
||||
|
||||
procedure IO_Close (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Close_Base (
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
Argument : RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Close_Base, "rtems_io_close");
|
||||
begin
|
||||
|
||||
Result := IO_Close_Base (Major, Minor, Argument);
|
||||
|
||||
end IO_Close;
|
||||
|
||||
procedure IO_Read (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Read_Base (
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
Argument : RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Read_Base, "rtems_io_read");
|
||||
begin
|
||||
|
||||
Result := IO_Read_Base (Major, Minor, Argument);
|
||||
|
||||
end IO_Read;
|
||||
|
||||
procedure IO_Write (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Write_Base (
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
Argument : RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Write_Base, "rtems_io_write");
|
||||
begin
|
||||
|
||||
Result := IO_Write_Base (Major, Minor, Argument);
|
||||
|
||||
end IO_Write;
|
||||
|
||||
procedure IO_Control (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
) is
|
||||
function IO_Control_Base (
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
Argument : RTEMS.Address
|
||||
) return RTEMS.Status_Codes;
|
||||
pragma Import (C, IO_Control_Base, "rtems_io_control");
|
||||
begin
|
||||
|
||||
Result := IO_Control_Base (Major, Minor, Argument);
|
||||
|
||||
end IO_Control;
|
||||
|
||||
--
|
||||
-- Fatal Error Manager
|
||||
|
||||
@@ -77,6 +77,7 @@ pragma Elaborate_Body (RTEMS);
|
||||
True : constant RTEMS.Boolean := 1;
|
||||
False : constant RTEMS.Boolean := 0;
|
||||
|
||||
--
|
||||
-- More Types
|
||||
--
|
||||
|
||||
@@ -94,27 +95,24 @@ pragma Elaborate_Body (RTEMS);
|
||||
subtype Debug_Set is RTEMS.Unsigned32;
|
||||
subtype Device_Major_Number is RTEMS.Unsigned32;
|
||||
subtype Device_Minor_Number is RTEMS.Unsigned32;
|
||||
subtype Vector_Number is RTEMS.Unsigned32;
|
||||
subtype ISR_Level is RTEMS.Unsigned32;
|
||||
|
||||
subtype Node is RTEMS.Unsigned32;
|
||||
|
||||
--
|
||||
-- Task Related Types
|
||||
-- XXXX fix this
|
||||
--
|
||||
|
||||
subtype Task_Argument is RTEMS.Unsigned32;
|
||||
type Task_Argument_PTR is access all Task_Argument;
|
||||
|
||||
-- XXXX fix this
|
||||
subtype TCB is RTEMS.Unsigned32;
|
||||
type TCB_Pointer is access all RTEMS.TCB;
|
||||
|
||||
subtype Task_States is RTEMS.Unsigned32;
|
||||
|
||||
type Task_Entry is access procedure (
|
||||
Argument : RTEMS.Unsigned32
|
||||
);
|
||||
|
||||
subtype TCB is RTEMS.Unsigned32;
|
||||
type TCB_Pointer is access all RTEMS.TCB;
|
||||
|
||||
--
|
||||
-- Clock and Time of Day Types
|
||||
--
|
||||
@@ -144,42 +142,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Clock_Get_Time_Value
|
||||
);
|
||||
|
||||
--
|
||||
-- Device Driver Entry Prototype
|
||||
--
|
||||
|
||||
type Device_Driver_Entry is access function (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Major_Number;
|
||||
Argument : in RTEMS.Unsigned32;
|
||||
ID : in RTEMS.Unsigned32
|
||||
) return RTEMS.Unsigned32;
|
||||
|
||||
type Driver_Address_Table_Entry is
|
||||
record
|
||||
Initialization : RTEMS.Device_Driver_Entry;
|
||||
Open : RTEMS.Device_Driver_Entry;
|
||||
Close : RTEMS.Device_Driver_Entry;
|
||||
Read : RTEMS.Device_Driver_Entry;
|
||||
Write : RTEMS.Device_Driver_Entry;
|
||||
Control : RTEMS.Device_Driver_Entry;
|
||||
end record;
|
||||
|
||||
type Driver_Address_Table is array ( RTEMS.Unsigned32
|
||||
range 1 .. RTEMS.Unsigned32'Last ) of RTEMS.Driver_Address_Table_Entry;
|
||||
|
||||
type Driver_Address_Table_Pointer is access all Driver_Address_Table;
|
||||
|
||||
type Driver_Name_t is
|
||||
record
|
||||
Device_Name : RTEMS.Address;
|
||||
Device_Name_Length : RTEMS.Unsigned32;
|
||||
Major : RTEMS.Device_Major_Number;
|
||||
Minor : RTEMS.Device_Minor_Number;
|
||||
end record;
|
||||
|
||||
type Driver_Name_t_Pointer is access all Driver_Name_t;
|
||||
|
||||
--
|
||||
-- Ident Options
|
||||
--
|
||||
@@ -249,7 +211,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Minimum_Stack_Size : RTEMS.Unsigned32;
|
||||
pragma Import (C, Minimum_Stack_Size, "rtems_minimum_stack_size");
|
||||
|
||||
|
||||
--
|
||||
-- Notepad index constants
|
||||
--
|
||||
@@ -282,15 +243,14 @@ pragma Elaborate_Body (RTEMS);
|
||||
Current_Priority : constant RTEMS.Task_Priority := 0;
|
||||
No_Priority : constant RTEMS.Task_Priority := 0;
|
||||
|
||||
|
||||
--
|
||||
-- Extension Callouts and Table
|
||||
--
|
||||
|
||||
type Thread_Create_Extension is access procedure (
|
||||
type Thread_Create_Extension is access function (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
New_Task : in RTEMS.TCB_Pointer
|
||||
);
|
||||
) return RTEMS.Boolean;
|
||||
|
||||
type Thread_Start_Extension is access procedure (
|
||||
Current_Task : in RTEMS.TCB_Pointer;
|
||||
@@ -538,15 +498,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Signal_30 : constant RTEMS.Signal_Set := 16#40000000#;
|
||||
Signal_31 : constant RTEMS.Signal_Set := 16#80000000#;
|
||||
|
||||
--
|
||||
-- For now, do not provide access to the CPU Table from Ada.
|
||||
-- When this type is provided, a CPU dependent file must
|
||||
-- define it.
|
||||
--
|
||||
|
||||
subtype CPU_Table is RTEMS.Address;
|
||||
type CPU_Table_Pointer is access all CPU_Table;
|
||||
|
||||
--
|
||||
-- Utility Functions
|
||||
--
|
||||
@@ -612,6 +563,8 @@ pragma Elaborate_Body (RTEMS);
|
||||
Left : in RTEMS.Address;
|
||||
Right : in RTEMS.Address
|
||||
) return Standard.Boolean;
|
||||
|
||||
|
||||
--
|
||||
-- RTEMS API
|
||||
--
|
||||
@@ -704,25 +657,25 @@ pragma Elaborate_Body (RTEMS);
|
||||
Argument : in RTEMS.Address
|
||||
);
|
||||
|
||||
-- procedure Task_Variable_Add (
|
||||
-- ID : in RTEMS.ID;
|
||||
-- Task_Variable : in RTEMS.Address;
|
||||
-- Dtor : in RTEMS.Task_Variable_Dtor;
|
||||
-- Result : out RTEMS.Status_Codes
|
||||
-- );
|
||||
procedure Task_Variable_Add (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : in RTEMS.Address;
|
||||
Dtor : in RTEMS.Task_Variable_Dtor;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
-- procedure Task_Variable_Get (
|
||||
-- ID : in RTEMS.ID;
|
||||
-- Task_Variable : out RTEMS.Address;
|
||||
-- Task_Variable_Value : out RTEMS.Address;
|
||||
-- Result : out RTEMS.Status_Codes
|
||||
-- );
|
||||
procedure Task_Variable_Get (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : out RTEMS.Address;
|
||||
Task_Variable_Value : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
-- procedure Task_Variable_Delete (
|
||||
-- ID : in RTEMS.ID;
|
||||
-- Task_Variable : out RTEMS.Address;
|
||||
-- Result : out RTEMS.Status_Codes
|
||||
-- );
|
||||
procedure Task_Variable_Delete (
|
||||
ID : in RTEMS.ID;
|
||||
Task_Variable : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure Task_Wake_When (
|
||||
Time_Buffer : in RTEMS.Time_Of_Day;
|
||||
@@ -738,13 +691,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
-- Interrupt Manager
|
||||
--
|
||||
|
||||
procedure Interrupt_Catch (
|
||||
New_ISR_Handler : in RTEMS.Address;
|
||||
Vector : in RTEMS.Vector_Number;
|
||||
Old_ISR_Handler : out RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
function Interrupt_Disable return RTEMS.ISR_Level;
|
||||
pragma Interface (C, Interrupt_Disable);
|
||||
pragma Interface_Name (Interrupt_Disable, "rtems_interrupt_disable");
|
||||
@@ -807,7 +753,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Timer Manager
|
||||
--
|
||||
@@ -915,7 +860,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Message Queue Manager
|
||||
--
|
||||
@@ -978,7 +922,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Event Manager
|
||||
--
|
||||
@@ -1013,7 +956,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Partition Manager
|
||||
--
|
||||
@@ -1052,7 +994,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Region Manager
|
||||
--
|
||||
@@ -1107,7 +1048,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Dual Ported Memory Manager
|
||||
--
|
||||
@@ -1146,59 +1086,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
--
|
||||
-- Input/Output Manager
|
||||
--
|
||||
|
||||
procedure IO_Register_Name (
|
||||
Name : in String;
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Lookup_Name (
|
||||
Name : in String;
|
||||
Device_Info : In RTEMS.Driver_Name_t_Pointer;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Open (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Close (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Read (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Write (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
procedure IO_Control (
|
||||
Major : in RTEMS.Device_Major_Number;
|
||||
Minor : in RTEMS.Device_Minor_Number;
|
||||
Argument : in RTEMS.Address;
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Fatal Error Manager
|
||||
--
|
||||
@@ -1207,7 +1094,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
The_Error : in RTEMS.Unsigned32
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Rate Monotonic Manager
|
||||
--
|
||||
@@ -1246,7 +1132,6 @@ pragma Elaborate_Body (RTEMS);
|
||||
Result : out RTEMS.Status_Codes
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Debug Manager
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user