summaryrefslogtreecommitdiffstats
path: root/c/src/ada/rtems.ads
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/ada/rtems.ads')
-rw-r--r--c/src/ada/rtems.ads1430
1 files changed, 0 insertions, 1430 deletions
diff --git a/c/src/ada/rtems.ads b/c/src/ada/rtems.ads
deleted file mode 100644
index 508f24046f..0000000000
--- a/c/src/ada/rtems.ads
+++ /dev/null
@@ -1,1430 +0,0 @@
---
--- RTEMS / Specification
---
--- DESCRIPTION:
---
--- This package provides the interface to the RTEMS API.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1997.
--- On-Line Applications Research Corporation (OAR).
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with System;
-with System.Storage_Elements; use System.Storage_Elements;
-with Interfaces;
-with Interfaces.C;
-
-package RTEMS is
-
- Structure_Alignment : constant := 8;
-
- --
- -- RTEMS Base Types
- --
-
- subtype Unsigned8 is Interfaces.Unsigned_8;
- subtype Unsigned16 is Interfaces.Unsigned_16;
- subtype Unsigned32 is Interfaces.Unsigned_32;
-
- type Unsigned32_Pointer is access all RTEMS.Unsigned32;
- type Unsigned16_Pointer is access all RTEMS.Unsigned16;
- type Unsigned8_Pointer is access all RTEMS.Unsigned8;
-
- subtype Boolean is RTEMS.Unsigned32;
- subtype Address is System.Address;
- subtype Single is Interfaces.C.C_float;
- subtype Double is Interfaces.C.Double;
-
- --
- -- The following define the size of each of the base types in
- -- both bits and system units.
- --
-
- Unsigned8_Bits : constant := 7;
- Unsigned16_Bits : constant := 15;
- Unsigned32_Bits : constant := 31;
- Boolean_Bits : constant := 31;
- Address_Bits : constant := 31;
- Single_Bits : constant := 31;
- Double_Bits : constant := 63;
-
- Unsigned8_Units : constant := 1;
- Unsigned16_Units : constant := 2;
- Unsigned32_Units : constant := 4;
- Boolean_Units : constant := 4;
- Address_Units : constant := 4;
- Single_Units : constant := 4;
- Double_Units : constant := 8;
-
- Null_Address : constant RTEMS.Address :=
- System.Storage_Elements.To_Address(0);
-
- True : constant RTEMS.Boolean := 1;
- False : constant RTEMS.Boolean := 0;
-
- -- More Types
- --
-
- subtype Name is RTEMS.Unsigned32;
- subtype ID is RTEMS.Unsigned32;
- subtype Interval is RTEMS.Unsigned32;
- subtype Attribute is RTEMS.Unsigned32;
- subtype Mode is RTEMS.Unsigned32;
- subtype Option is RTEMS.Unsigned32;
- subtype Task_Priority is RTEMS.Unsigned32;
- subtype Notepad_Index is RTEMS.Unsigned32 range 0 .. 15;
-
- subtype Event_Set is RTEMS.Unsigned32;
- subtype Signal_Set is RTEMS.Unsigned32;
- 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
- );
-
- --
- -- Clock and Time of Day Types
- --
-
- type Time_Of_Day is
- record
- Year : RTEMS.Unsigned32; -- year, A.D.
- Month : RTEMS.Unsigned32; -- month, 1 .. 12
- Day : RTEMS.Unsigned32; -- day, 1 .. 31
- Hour : RTEMS.Unsigned32; -- hour, 0 .. 23
- Minute : RTEMS.Unsigned32; -- minute, 0 .. 59
- Second : RTEMS.Unsigned32; -- second, 0 .. 59
- Ticks : RTEMS.Unsigned32; -- elapsed ticks between seconds
- end record;
-
- type Clock_Time_Value is
- record
- Seconds : RTEMS.Unsigned32;
- Microseconds : RTEMS.Unsigned32;
- end record;
-
- type Clock_Get_Options is (
- Clock_Get_TOD,
- Clock_Get_Seconds_Since_Epoch,
- Clock_Get_Ticks_Since_Boot,
- Clock_Get_Ticks_Per_Seconds,
- 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;
-
- --
- -- Ident Options
- --
-
- Search_All_Nodes : constant RTEMS.Node := 0;
-
- --
- -- Options
- --
-
- Default_Options : constant RTEMS.Option := 16#0000#;
-
- Wait : constant RTEMS.Option := 16#0000#;
- No_Wait : constant RTEMS.Option := 16#0001#;
-
- Event_All : constant RTEMS.Option := 16#0000#;
- Event_Any : constant RTEMS.Option := 16#0002#;
-
- --
- -- Mode constants
- --
-
- Default_Modes : constant RTEMS.Mode := 16#0000#;
-
- All_Mode_Masks : constant RTEMS.Mode := 16#0000_ffff#;
- Current_Mode : constant RTEMS.Mode := 16#0000_0000#;
- Preempt_Mask : constant RTEMS.Mode := 16#0000_0100#;
- Timeslice_Mask : constant RTEMS.Mode := 16#0000_0200#;
- ASR_Mask : constant RTEMS.Mode := 16#0000_0400#;
- Interrupt_Mask : RTEMS.Mode;
- Preempt : constant RTEMS.Mode := 16#0000_0000#;
- No_Preempt : constant RTEMS.Mode := 16#0000_0100#;
- No_Timeslice : constant RTEMS.Mode := 16#0000_0000#;
- Timeslice : constant RTEMS.Mode := 16#0000_0200#;
- ASR : constant RTEMS.Mode := 16#0000_0000#;
- No_ASR : constant RTEMS.Mode := 16#0000_0400#;
-
- pragma Import (C, Interrupt_Mask, "rtems_interrupt_mask");
-
- --
- -- Attribute constants
- --
-
- Default_Attributes : constant RTEMS.Attribute := 16#00000000#;
- No_Floating_Point : constant RTEMS.Attribute := 16#00000000#;
- Floating_Point : constant RTEMS.Attribute := 16#00000001#;
- Local : constant RTEMS.Attribute := 16#00000000#;
- Global : constant RTEMS.Attribute := 16#00000002#;
- FIFO : constant RTEMS.Attribute := 16#00000000#;
- Priority : constant RTEMS.Attribute := 16#00000004#;
- Counting_Semaphore : constant RTEMS.Attribute := 16#00000000#;
- Binary_Semaphore : constant RTEMS.Attribute := 16#00000010#;
- No_Inherit_Priority : constant RTEMS.Attribute := 16#00000000#;
- Inherit_Priority : constant RTEMS.Attribute := 16#00000020#;
- No_Priority_Ceiling : constant RTEMS.Attribute := 16#00000000#;
- Priority_Ceiling : constant RTEMS.Attribute := 16#00000040#;
-
- function Interrupt_Level (
- Level : in RTEMS.Unsigned32
- ) return RTEMS.Attribute;
- pragma Import (C, Interrupt_Level, "rtems_interrupt_level_attribute");
-
-
- Minimum_Stack_Size : RTEMS.Unsigned32;
- pragma Import (C, Minimum_Stack_Size, "rtems_minimum_stack_size");
-
-
- --
- -- Notepad index constants
- --
-
- Notepad_0 : constant RTEMS.Unsigned32 := 0;
- Notepad_1 : constant RTEMS.Unsigned32 := 1;
- Notepad_2 : constant RTEMS.Unsigned32 := 2;
- Notepad_3 : constant RTEMS.Unsigned32 := 3;
- Notepad_4 : constant RTEMS.Unsigned32 := 4;
- Notepad_5 : constant RTEMS.Unsigned32 := 5;
- Notepad_6 : constant RTEMS.Unsigned32 := 6;
- Notepad_7 : constant RTEMS.Unsigned32 := 7;
- Notepad_8 : constant RTEMS.Unsigned32 := 8;
- Notepad_9 : constant RTEMS.Unsigned32 := 9;
- Notepad_10 : constant RTEMS.Unsigned32 := 10;
- Notepad_11 : constant RTEMS.Unsigned32 := 11;
- Notepad_12 : constant RTEMS.Unsigned32 := 12;
- Notepad_13 : constant RTEMS.Unsigned32 := 13;
- Notepad_14 : constant RTEMS.Unsigned32 := 14;
- Notepad_15 : constant RTEMS.Unsigned32 := 15;
-
- --
- -- Miscellaneous
- --
-
- No_Timeout : constant RTEMS.Interval := 0;
- Self : constant RTEMS.ID := 0;
- Period_Status : constant RTEMS.Interval := 0;
- Yield_Processor : constant RTEMS.Interval := 0;
- 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 (
- Current_Task : in RTEMS.TCB_Pointer;
- New_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Start_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer;
- Started_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Restart_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer;
- Restarted_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Delete_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer;
- Deleted_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Switch_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer;
- Heir_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Post_Switch_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Begin_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer
- );
-
- type Thread_Exitted_Extension is access procedure (
- Current_Task : in RTEMS.TCB_Pointer
- );
-
- type Fatal_Error_Extension is access procedure (
- Error : in RTEMS.Unsigned32
- );
-
- type Extensions_Table is
- record
- Thread_Create : RTEMS.Thread_Create_Extension;
- Thread_Start : RTEMS.Thread_Start_Extension;
- Thread_Restart : RTEMS.Thread_Restart_Extension;
- Thread_Delete : RTEMS.Thread_Delete_Extension;
- Thread_Switch : RTEMS.Thread_Switch_Extension;
- Thread_Post_Switch : RTEMS.Thread_Post_Switch_Extension;
- Thread_Begin : RTEMS.Thread_Begin_Extension;
- Thread_Exitted : RTEMS.Thread_Exitted_Extension;
- Fatal : RTEMS.Fatal_Error_Extension;
- end record;
-
- type Extensions_Table_Pointer is access all Extensions_Table;
-
- --
- -- The following type define a pointer to a watchdog/timer service routine.
- --
-
- type Timer_Service_Routine is access procedure (
- ID : in RTEMS.ID;
- User_Data : in RTEMS.Address
- );
-
- --
- -- The following type define a pointer to a signal service routine.
- --
-
- type ASR_Handler is access procedure (
- Signals : in RTEMS.Signal_Set
- );
-
- --
- -- The following type defines the status information returned
- -- about a period.
- --
-
- type Rate_Monotonic_Period_States is (
- Inactive, -- off chain, never initialized
- Owner_Is_Blocking, -- on chain, owner is blocking on it
- Active, -- on chain, running continuously
- Expired_While_Blocking, -- on chain, expired while owner was was blocking
- Expired -- off chain, will be reset by next
- -- rtems_rate_monotonic_period
- );
-
- for Rate_Monotonic_Period_States'Size use 32;
-
- for Rate_Monotonic_Period_States use (
- Inactive => 0,
- Owner_Is_Blocking => 1,
- Active => 2,
- Expired_While_Blocking => 3,
- Expired => 4
- );
-
- type Rate_Monotonic_Period_Status is
- record
- State : RTEMS.Rate_Monotonic_Period_States;
- Ticks_Since_Last_Period : RTEMS.Unsigned32;
- Ticks_Executed_Since_Last_Period : RTEMS.Unsigned32;
- end record;
-
- --
- -- Method Completions Status Codes
- --
-
- type Status_Codes is (
- Successful, -- successful completion
- Task_Exitted, -- returned from a task
- MP_Not_Configured, -- multiprocessing not configured
- Invalid_Name, -- invalid object name
- Invalid_ID, -- invalid object id
- Too_Many, -- too many
- Timeout, -- timed out waiting
- Object_Was_Deleted, -- object deleted while waiting
- Invalid_Size, -- specified size was invalid
- Invalid_Address, -- address specified is invalid
- Invalid_Number, -- number was invalid
- Not_Defined, -- item has not been initialized
- Resource_In_Use, -- resources still outstanding
- Unsatisfied, -- request not satisfied
- Incorrect_State, -- task is in wrong state
- Already_Suspended, -- task already in state
- Illegal_On_Self, -- illegal on calling task
- Illegal_On_Remote_Object, -- illegal for remote object
- Called_From_ISR, -- called from wrong environment
- Invalid_Priority, -- invalid task priority
- Invalid_Clock, -- invalid date/time
- Invalid_Node, -- invalid node id
- Not_Configured, -- directive not configured
- Not_Owner_Of_Resource, -- not owner of resource
- Not_Implemented, -- directive not implemented
- Internal_Error, -- RTEMS inconsistency detected
- No_Memory, -- no memory left in heap
- IO_Error, -- driver IO error
- Proxy_Blocking -- internal multiprocessing only
- );
-
- for Status_Codes'Size use 32;
-
- for Status_Codes use (
- Successful => 0,
- Task_Exitted => 1,
- MP_Not_Configured => 2,
- Invalid_Name => 3,
- Invalid_ID => 4,
- Too_Many => 5,
- Timeout => 6,
- Object_Was_Deleted => 7,
- Invalid_Size => 8,
- Invalid_Address => 9,
- Invalid_NumbeR => 10,
- Not_Defined => 11,
- Resource_In_Use => 12,
- Unsatisfied => 13,
- Incorrect_State => 14,
- Already_Suspended => 15,
- Illegal_On_Self => 16,
- Illegal_On_Remote_Object => 17,
- Called_From_ISR => 18,
- Invalid_Priority => 19,
- Invalid_Clock => 20,
- Invalid_Node => 21,
- Not_Configured => 22,
- Not_Owner_Of_Resource => 23,
- Not_ImplementeD => 24,
- Internal_Error => 25,
- No_Memory => 26,
- IO_Error => 27,
- Proxy_Blocking => 28
- );
-
- --
- -- RTEMS Events
- --
-
- Pending_Events : constant RTEMS.Event_Set := 16#0000_0000#;
- All_Events : constant RTEMS.Event_Set := 16#FFFF_FFFF#;
- Event_0 : constant RTEMS.Event_Set := 16#0000_0001#;
- Event_1 : constant RTEMS.Event_Set := 16#0000_0002#;
- Event_2 : constant RTEMS.Event_Set := 16#0000_0004#;
- Event_3 : constant RTEMS.Event_Set := 16#0000_0008#;
- Event_4 : constant RTEMS.Event_Set := 16#0000_0010#;
- Event_5 : constant RTEMS.Event_Set := 16#0000_0020#;
- Event_6 : constant RTEMS.Event_Set := 16#0000_0040#;
- Event_7 : constant RTEMS.Event_Set := 16#0000_0080#;
- Event_8 : constant RTEMS.Event_Set := 16#0000_0100#;
- Event_9 : constant RTEMS.Event_Set := 16#0000_0200#;
- Event_10 : constant RTEMS.Event_Set := 16#0000_0400#;
- Event_11 : constant RTEMS.Event_Set := 16#0000_0800#;
- Event_12 : constant RTEMS.Event_Set := 16#0000_1000#;
- Event_13 : constant RTEMS.Event_Set := 16#0000_2000#;
- Event_14 : constant RTEMS.Event_Set := 16#0000_4000#;
- Event_15 : constant RTEMS.Event_Set := 16#0000_8000#;
- Event_16 : constant RTEMS.Event_Set := 16#0001_0000#;
- Event_17 : constant RTEMS.Event_Set := 16#0002_0000#;
- Event_18 : constant RTEMS.Event_Set := 16#0004_0000#;
- Event_19 : constant RTEMS.Event_Set := 16#0008_0000#;
- Event_20 : constant RTEMS.Event_Set := 16#0010_0000#;
- Event_21 : constant RTEMS.Event_Set := 16#0020_0000#;
- Event_22 : constant RTEMS.Event_Set := 16#0040_0000#;
- Event_23 : constant RTEMS.Event_Set := 16#0080_0000#;
- Event_24 : constant RTEMS.Event_Set := 16#0100_0000#;
- Event_25 : constant RTEMS.Event_Set := 16#0200_0000#;
- Event_26 : constant RTEMS.Event_Set := 16#0400_0000#;
- Event_27 : constant RTEMS.Event_Set := 16#0800_0000#;
- Event_28 : constant RTEMS.Event_Set := 16#1000_0000#;
- Event_29 : constant RTEMS.Event_Set := 16#2000_0000#;
- Event_30 : constant RTEMS.Event_Set := 16#4000_0000#;
- Event_31 : constant RTEMS.Event_Set := 16#8000_0000#;
-
- --
- -- RTEMS Signals
- --
-
- All_Signals : constant RTEMS.Signal_Set := 16#7FFFFFFF#;
- Signal_0 : constant RTEMS.Signal_Set := 16#00000001#;
- Signal_1 : constant RTEMS.Signal_Set := 16#00000002#;
- Signal_2 : constant RTEMS.Signal_Set := 16#00000004#;
- Signal_3 : constant RTEMS.Signal_Set := 16#00000008#;
- Signal_4 : constant RTEMS.Signal_Set := 16#00000010#;
- Signal_5 : constant RTEMS.Signal_Set := 16#00000020#;
- Signal_6 : constant RTEMS.Signal_Set := 16#00000040#;
- Signal_7 : constant RTEMS.Signal_Set := 16#00000080#;
- Signal_8 : constant RTEMS.Signal_Set := 16#00000100#;
- Signal_9 : constant RTEMS.Signal_Set := 16#00000200#;
- Signal_10 : constant RTEMS.Signal_Set := 16#00000400#;
- Signal_11 : constant RTEMS.Signal_Set := 16#00000800#;
- Signal_12 : constant RTEMS.Signal_Set := 16#00001000#;
- Signal_13 : constant RTEMS.Signal_Set := 16#00002000#;
- Signal_14 : constant RTEMS.Signal_Set := 16#00004000#;
- Signal_15 : constant RTEMS.Signal_Set := 16#00008000#;
- Signal_16 : constant RTEMS.Signal_Set := 16#00010000#;
- Signal_17 : constant RTEMS.Signal_Set := 16#00020000#;
- Signal_18 : constant RTEMS.Signal_Set := 16#00040000#;
- Signal_19 : constant RTEMS.Signal_Set := 16#00080000#;
- Signal_20 : constant RTEMS.Signal_Set := 16#00100000#;
- Signal_21 : constant RTEMS.Signal_Set := 16#00200000#;
- Signal_22 : constant RTEMS.Signal_Set := 16#00400000#;
- Signal_23 : constant RTEMS.Signal_Set := 16#00800000#;
- Signal_24 : constant RTEMS.Signal_Set := 16#01000000#;
- Signal_25 : constant RTEMS.Signal_Set := 16#02000000#;
- Signal_26 : constant RTEMS.Signal_Set := 16#04000000#;
- Signal_27 : constant RTEMS.Signal_Set := 16#08000000#;
- Signal_28 : constant RTEMS.Signal_Set := 16#10000000#;
- Signal_29 : constant RTEMS.Signal_Set := 16#20000000#;
- Signal_30 : constant RTEMS.Signal_Set := 16#40000000#;
- Signal_31 : constant RTEMS.Signal_Set := 16#80000000#;
-
- --
- -- RTEMS API Configuration Information
- --
-
- type Initialization_Tasks_Table_Entry is
- record
- Name : RTEMS.Name; -- task name
- Stack_Size : RTEMS.Unsigned32; -- task stack size
- Initial_Priority : RTEMS.Task_priority; -- task priority
- Attribute_Set : RTEMS.Attribute; -- task attributes
- Entry_Point : RTEMS.Task_Entry; -- task entry point
- Mode_Set : RTEMS.Mode; -- task initial mode
- Argument : RTEMS.Unsigned32; -- task argument
- end record;
-
- type Initialization_Tasks_Table is array ( RTEMS.Unsigned32 range <> ) of
- RTEMS.Initialization_Tasks_Table_Entry;
-
- type Initialization_Tasks_Table_Pointer is access all
- Initialization_Tasks_Table;
-
- type API_Configuration_Table is
- record
- Maximum_Tasks : RTEMS.Unsigned32;
- Maximum_Timers : RTEMS.Unsigned32;
- Maximum_Semaphores : RTEMS.Unsigned32;
- Maximum_Message_queues : RTEMS.Unsigned32;
- Maximum_Partitions : RTEMS.Unsigned32;
- Maximum_Regions : RTEMS.Unsigned32;
- Maximum_Ports : RTEMS.Unsigned32;
- Maximum_Periods : RTEMS.Unsigned32;
- Number_Of_Initialization_Tasks : RTEMS.Unsigned32;
- User_Initialization_Tasks_Table :
- RTEMS.Initialization_Tasks_Table_Pointer;
- end record;
-
- type API_Configuration_Table_Pointer is access all API_Configuration_Table;
-
- --
- -- RTEMS POSIX API Configuration Information
- --
-
- type POSIX_Thread_Entry is access procedure (
- Argument : in RTEMS.Address
- );
-
- type POSIX_Initialization_Threads_Table_Entry is
- record
- Thread_Entry : RTEMS.POSIX_Thread_Entry;
- end record;
-
- type POSIX_Initialization_Threads_Table is array
- ( RTEMS.Unsigned32 range <> ) of
- RTEMS.POSIX_Initialization_Threads_Table_Entry;
-
- type POSIX_Initialization_Threads_Table_Pointer is access all
- POSIX_Initialization_Threads_Table;
-
- type POSIX_API_Configuration_Table_Entry is
- record
- Maximum_Threads : Interfaces.C.Int;
- Maximum_Mutexes : Interfaces.C.Int;
- Maximum_Condition_Variables : Interfaces.C.Int;
- Maximum_Keys : Interfaces.C.Int;
- Maximum_Queued_Signals : Interfaces.C.Int;
- Number_Of_Initialization_Tasks : Interfaces.C.Int;
- User_Initialization_Tasks_Table :
- RTEMS.POSIX_Initialization_Threads_Table_Pointer;
- end record;
-
- type POSIX_API_Configuration_Table is array ( RTEMS.Unsigned32 range <> ) of
- RTEMS.POSIX_API_Configuration_Table_Entry;
-
- type POSIX_API_Configuration_Table_Pointer is access all
- RTEMS.POSIX_API_Configuration_Table;
-
- --
- -- MPCI Information include MPCI Configuration
- --
-
- type Configuration_Table_Pointer;
-
- type MP_Packet_Classes is (
- MP_PACKET_MPCI_INTERNAL,
- MP_PACKET_TASKS,
- MP_PACKET_MESSAGE_QUEUE,
- MP_PACKET_SEMAPHORE,
- MP_PACKET_PARTITION,
- MP_PACKET_REGION,
- MP_PACKET_EVENT,
- MP_PACKET_SIGNAL
- );
-
- for MP_Packet_Classes use (
- MP_PACKET_MPCI_INTERNAL => 0,
- MP_PACKET_TASKS => 1,
- MP_PACKET_MESSAGE_QUEUE => 2,
- MP_PACKET_SEMAPHORE => 3,
- MP_PACKET_PARTITION => 4,
- MP_PACKET_REGION => 5,
- MP_PACKET_EVENT => 6,
- MP_PACKET_SIGNAL => 7
- );
-
- type Packet_Prefix is
- record
- The_Class : RTEMS.MP_Packet_Classes;
- ID : RTEMS.ID;
- Source_TID : RTEMS.ID;
- Source_Priority : RTEMS.Task_Priority;
- Return_Code : RTEMS.Unsigned32;
- Length : RTEMS.Unsigned32;
- To_Convert : RTEMS.Unsigned32;
- Timeout : RTEMS.Interval;
- end record;
-
- type Packet_Prefix_Pointer is access all Packet_Prefix;
-
- type MPCI_Initialization_Entry is access procedure (
- Configuration : in RTEMS.Configuration_Table_Pointer
- );
-
- type MPCI_Get_Packet_Entry is access procedure (
- Packet : access RTEMS.Packet_Prefix_Pointer
- );
-
- type MPCI_Return_Packet_Entry is access procedure (
- Packet : in RTEMS.Packet_Prefix_Pointer
- );
-
- type MPCI_Send_Entry is access procedure (
- Packet : in RTEMS.Packet_Prefix_Pointer
- );
-
- type MPCI_Receive_Entry is access procedure (
- Packet : access RTEMS.Packet_Prefix_Pointer
- );
-
- type MPCI_Table is
- record
- Default_Timeout : RTEMS.Unsigned32; -- in ticks
- Maximum_Packet_Size : RTEMS.Unsigned32;
- Initialization : RTEMS.MPCI_Initialization_Entry;
- Get_Packet : RTEMS.MPCI_Get_Packet_Entry;
- Return_Packet : RTEMS.MPCI_Return_Packet_Entry;
- Send : RTEMS.MPCI_Send_Entry;
- Receive : RTEMS.MPCI_Receive_Entry;
- end record;
-
- type MPCI_Table_Pointer is access all MPCI_Table;
-
- --
- -- Configuration Information
- --
-
- type Multiprocessing_Table is
- record
- Node : RTEMS.Unsigned32;
- Maximum_Nodes : RTEMS.Unsigned32;
- Maximum_Global_Objects : RTEMS.Unsigned32;
- Maximum_Proxies : RTEMS.Unsigned32;
- User_MPCI_Table : RTEMS.MPCI_Table_Pointer;
- end record;
-
- type Multiprocessing_Table_Pointer is access all Multiprocessing_Table;
-
- type Configuration_Table is
- record
- Work_Space_Start : RTEMS.Address;
- Work_Space_Size : RTEMS.Unsigned32;
- Maximum_Extensions : RTEMS.Unsigned32;
- Microseconds_Per_Tick : RTEMS.Unsigned32;
- Ticks_Per_Timeslice : RTEMS.Unsigned32;
- Maximum_Devices : RTEMS.Unsigned32;
- Number_Of_Device_Drivers : RTEMS.Unsigned32;
- Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
- Number_Of_Initial_Extensions : RTEMS.Unsigned32;
- User_Extension_Table : RTEMS.Extensions_Table_Pointer;
- User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
- RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
- POSIX_API_Configuration : RTEMS.POSIX_API_Configuration_Table_Pointer;
- end record;
-
- type Configuration_Table_Pointer is access all Configuration_Table;
-
- --
- -- 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
- --
-
- function From_Ada_Boolean (
- Ada_Boolean : Standard.Boolean
- ) return RTEMS.Boolean;
-
- function To_Ada_Boolean (
- RTEMS_Boolean : RTEMS.Boolean
- ) return Standard.Boolean;
-
- function Milliseconds_To_Microseconds (
- Milliseconds : RTEMS.Unsigned32
- ) return RTEMS.Unsigned32;
-
- function Microseconds_To_Ticks (
- Microseconds : RTEMS.Unsigned32
- ) return RTEMS.Interval;
-
- function Milliseconds_To_Ticks (
- Milliseconds : RTEMS.Unsigned32
- ) return RTEMS.Interval;
-
- function Build_Name (
- C1 : in Character;
- C2 : in Character;
- C3 : in Character;
- C4 : in Character
- ) return RTEMS.Name;
-
- procedure Name_To_Characters (
- Name : in RTEMS.Name;
- C1 : out Character;
- C2 : out Character;
- C3 : out Character;
- C4 : out Character
- );
-
- function Get_Node (
- ID : in RTEMS.ID
- ) return RTEMS.Unsigned32;
-
- function Get_Index (
- ID : in RTEMS.ID
- ) return RTEMS.Unsigned32;
-
- function Are_Statuses_Equal (
- Status : in RTEMS.Status_Codes;
- Desired : in RTEMS.Status_Codes
- ) return Standard.Boolean;
-
- function Is_Status_Successful (
- Status : in RTEMS.Status_Codes
- ) return Standard.Boolean;
-
- function Subtract (
- Left : in RTEMS.Address;
- Right : in RTEMS.Address
- ) return RTEMS.Unsigned32;
-
- function Are_Equal (
- Left : in RTEMS.Address;
- Right : in RTEMS.Address
- ) return Standard.Boolean;
- --
- -- RTEMS API
- --
-
- --
- -- Initialization Manager
- --
-
- procedure Initialize_Executive (
- Configuration_Table : in RTEMS.Configuration_Table_Pointer;
- CPU_Table : in RTEMS.CPU_Table_Pointer
- );
-
- procedure Initialize_Executive_Early (
- Configuration_Table : in RTEMS.Configuration_Table_Pointer;
- CPU_Table : in RTEMS.CPU_Table_Pointer;
- Level : out RTEMS.ISR_Level
- );
-
- procedure Initialize_Executive_Late (
- BSP_Level : in RTEMS.ISR_Level
- );
-
- procedure Shutdown_Executive (
- Result : in RTEMS.Unsigned32
- );
-
- --
- -- Task Manager
- --
-
- procedure Task_Create (
- Name : in RTEMS.Name;
- Initial_Priority : in RTEMS.Task_Priority;
- Stack_Size : in Unsigned32;
- Initial_Modes : in RTEMS.Mode;
- Attribute_Set : in RTEMS.Attribute;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Ident (
- Name : in RTEMS.Name;
- Node : in RTEMS.Node;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Start (
- ID : in RTEMS.ID;
- Entry_Point : in RTEMS.Task_Entry;
- Argument : in RTEMS.Task_Argument;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Restart (
- ID : in RTEMS.ID;
- Argument : in RTEMS.Task_Argument;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Suspend (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Resume (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Set_Priority (
- ID : in RTEMS.ID;
- New_Priority : in RTEMS.Task_Priority;
- Old_Priority : out RTEMS.Task_Priority;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Mode (
- Mode_Set : in RTEMS.Mode;
- Mask : in RTEMS.Mode;
- Previous_Mode_Set : out RTEMS.Mode;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Get_Note (
- ID : in RTEMS.ID;
- Notepad : in RTEMS.Notepad_Index;
- Note : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Set_Note (
- ID : in RTEMS.ID;
- Notepad : in RTEMS.Notepad_Index;
- Note : in RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Wake_When (
- Time_Buffer : in RTEMS.Time_Of_Day;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Task_Wake_After (
- Ticks : in RTEMS.Interval;
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- 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;
-
- procedure Interrupt_Enable (
- Level : in RTEMS.ISR_Level
- );
-
- procedure Interrupt_Flash (
- Level : in RTEMS.ISR_Level
- );
-
- function Interrupt_Is_In_Progress
- return RTEMS.Boolean;
-
- --
- -- Clock Manager
- --
-
- 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_Tick (
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- Extension Manager
- --
-
- procedure Extension_Create (
- Name : in RTEMS.Name;
- Table : in RTEMS.Extensions_Table_Pointer;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Extension_Ident (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Extension_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Timer Manager
- --
-
- procedure Timer_Create (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Ident (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Fire_After (
- ID : in RTEMS.ID;
- Ticks : in RTEMS.Interval;
- Routine : in RTEMS.Timer_Service_Routine;
- User_Data : in RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Fire_When (
- ID : in RTEMS.ID;
- Wall_Time : in RTEMS.Time_Of_Day;
- Routine : in RTEMS.Timer_Service_Routine;
- User_Data : in RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Reset (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Timer_Cancel (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- Semaphore Manager
- --
-
- procedure Semaphore_Create (
- Name : in RTEMS.Name;
- Count : in RTEMS.Unsigned32;
- Attribute_Set : in RTEMS.Attribute;
- Priority_Ceiling : in RTEMS.Task_Priority;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Semaphore_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Semaphore_Ident (
- Name : in RTEMS.Name;
- Node : in RTEMS.Unsigned32;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Semaphore_Obtain (
- ID : in RTEMS.ID;
- Option_Set : in RTEMS.Option;
- Timeout : in RTEMS.Interval;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Semaphore_Release (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Message Queue Manager
- --
-
- procedure Message_Queue_Create (
- Name : in RTEMS.Name;
- Count : in RTEMS.Unsigned32;
- Max_Message_Size : in RTEMS.Unsigned32;
- Attribute_Set : in RTEMS.Attribute;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Ident (
- Name : in RTEMS.Name;
- Node : in RTEMS.Unsigned32;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Send (
- ID : in RTEMS.ID;
- Buffer : in RTEMS.Address;
- Size : in RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Urgent (
- ID : in RTEMS.ID;
- Buffer : in RTEMS.Address;
- Size : in RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Broadcast (
- ID : in RTEMS.ID;
- Buffer : in RTEMS.Address;
- Size : in RTEMS.Unsigned32;
- Count : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Receive (
- ID : in RTEMS.ID;
- Buffer : in RTEMS.Address;
- Option_Set : in RTEMS.Option;
- Timeout : in RTEMS.Interval;
- Size : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Message_Queue_Flush (
- ID : in RTEMS.ID;
- Count : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Event Manager
- --
-
- procedure Event_Send (
- ID : in RTEMS.ID;
- Event_In : in RTEMS.Event_Set;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Event_Receive (
- Event_In : in RTEMS.Event_Set;
- Option_Set : in RTEMS.Option;
- Ticks : in RTEMS.Interval;
- Event_Out : out RTEMS.Event_Set;
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- Signal Manager
- --
-
- procedure Signal_Catch (
- ASR_Handler : in RTEMS.ASR_Handler;
- Mode_Set : in RTEMS.Mode;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Signal_Send (
- ID : in RTEMS.ID;
- Signal_Set : in RTEMS.Signal_Set;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Partition Manager
- --
-
- procedure Partition_Create (
- Name : in RTEMS.Name;
- Starting_Address : in RTEMS.Address;
- Length : in RTEMS.Unsigned32;
- Buffer_Size : in RTEMS.Unsigned32;
- Attribute_Set : in RTEMS.Attribute;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Partition_Ident (
- Name : in RTEMS.Name;
- Node : in RTEMS.Unsigned32;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Partition_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Partition_Get_Buffer (
- ID : in RTEMS.ID;
- Buffer : out RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Partition_Return_Buffer (
- ID : in RTEMS.ID;
- Buffer : in RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Region Manager
- --
-
- procedure Region_Create (
- Name : in RTEMS.Name;
- Starting_Address : in RTEMS.Address;
- Length : in RTEMS.Unsigned32;
- Page_Size : in RTEMS.Unsigned32;
- Attribute_Set : in RTEMS.Attribute;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Ident (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Extend (
- ID : in RTEMS.ID;
- Starting_Address : in RTEMS.Address;
- Length : in RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Get_Segment (
- ID : in RTEMS.ID;
- Size : in RTEMS.Unsigned32;
- Option_Set : in RTEMS.Option;
- Timeout : in RTEMS.Interval;
- Segment : out RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Get_Segment_Size (
- ID : in RTEMS.ID;
- Segment : in RTEMS.Address;
- Size : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Region_Return_Segment (
- ID : in RTEMS.ID;
- Segment : in RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
-
- --
- -- Dual Ported Memory Manager
- --
-
- procedure Port_Create (
- Name : in RTEMS.Name;
- Internal_Start : in RTEMS.Address;
- External_Start : in RTEMS.Address;
- Length : in RTEMS.Unsigned32;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Port_Ident (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Port_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Port_External_To_Internal (
- ID : in RTEMS.ID;
- External : in RTEMS.Address;
- Internal : out RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Port_Internal_To_External (
- ID : in RTEMS.ID;
- Internal : in RTEMS.Address;
- External : out RTEMS.Address;
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- Input/Output Manager
- --
-
- procedure IO_Initialize (
- Major : in RTEMS.Device_Major_Number;
- Minor : in RTEMS.Device_Minor_Number;
- Argument : in RTEMS.Address;
- Return_Value : out RTEMS.Unsigned32;
- Result : out RTEMS.Status_Codes
- );
-
- 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 : out RTEMS.Driver_Name_t;
- 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
- --
-
- procedure Fatal_Error_Occurred (
- The_Error : in RTEMS.Unsigned32
- );
-
-
- --
- -- Rate Monotonic Manager
- --
-
- procedure Rate_Monotonic_Create (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Rate_Monotonic_Ident (
- Name : in RTEMS.Name;
- ID : out RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Rate_Monotonic_Delete (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Rate_Monotonic_Cancel (
- ID : in RTEMS.ID;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Rate_Monotonic_Period (
- ID : in RTEMS.ID;
- Length : in RTEMS.Interval;
- Result : out RTEMS.Status_Codes
- );
-
- procedure Rate_Monotonic_Get_Status (
- ID : in RTEMS.ID;
- Status : out RTEMS.Rate_Monotonic_Period_Status;
- Result : out RTEMS.Status_Codes
- );
-
- --
- -- Multiprocessing Manager
- --
-
- procedure Multiprocessing_Announce;
-
-
- --
- -- Debug Manager
- --
-
- Debug_All_Mask : constant RTEMS.Debug_Set := 16#ffffffff#;
- Debug_Region : constant RTEMS.Debug_Set := 16#00000001#;
-
- procedure Debug_Enable (
- To_Be_Enabled : in RTEMS.Debug_Set
- );
-
- procedure Debug_Disable (
- To_Be_Disabled : in RTEMS.Debug_Set
- );
-
- function Debug_Is_Enabled (
- Level : in RTEMS.Debug_Set
- ) return RTEMS.Boolean;
-
- --
- -- Some Useful Data Items
- --
-
- Configuration : RTEMS.Configuration_Table_Pointer;
- pragma Import (C, Configuration, "_Configuration_Table");
-
-
-private
-end RTEMS;