Changeset 8294a5d9 in rtems


Ignore:
Timestamp:
Oct 26, 2007, 9:37:07 PM (13 years ago)
Author:
Glenn Humphrey <glenn.humphrey@…>
Branches:
4.8
Children:
21b3f3b1
Parents:
1b03eed
Message:

2007-10-26 Glenn Humphrey <glenn.humphrey@…>

  • rtems.adb, rtems.ads: Merge binding updates from CVS head. Bindings should now be reasonably in sync with C Classic API.
Location:
c/src/ada
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • c/src/ada/ChangeLog

    r1b03eed r8294a5d9  
     12007-10-26      Glenn Humphrey <glenn.humphrey@OARcorp.com>
     2
     3        * rtems.adb, rtems.ads: Merge binding updates from CVS head. Bindings
     4        should now be reasonably in sync with C Classic API.
     5
    162007-09-05      Joel Sherrill <joel.sherrill@oarcorp.com>
    27
  • c/src/ada/rtems.adb

    r1b03eed r8294a5d9  
    1818--  http://www.rtems.com/license/LICENSE.
    1919--
    20 --  rtems.adb,v 1.13.2.2 2003/09/04 18:46:47 joel Exp
     20--  $Id$
    2121--
    2222
     
    217217
    218218   --
     219   --  Initialization Manager -- Shutdown Only
     220   --
     221   procedure Shutdown_Executive (
     222      Status           : in     RTEMS.Unsigned32
     223   ) is
     224      procedure Shutdown_Executive_Base (
     225         Status : RTEMS.Unsigned32
     226      );
     227      pragma Import (C, Shutdown_Executive_Base, "rtems_shutdown_executive");
     228   begin
     229      Shutdown_Executive_Base (Status);
     230   end Shutdown_Executive;
     231 
     232
     233   --
    219234   --  Task Manager
    220235   --
     
    349364   end Task_Resume;
    350365 
     366   procedure Task_Is_Suspended (
     367      ID     : in     RTEMS.ID;
     368      Result :    out RTEMS.Status_Codes
     369   ) is
     370      function Task_Is_Suspended_Base (
     371         ID : RTEMS.ID
     372      )  return RTEMS.Status_Codes;
     373      pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
     374   begin
     375
     376      Result := Task_Is_Suspended_Base ( ID );
     377
     378   end Task_Is_Suspended;
     379 
    351380   procedure Task_Set_Priority (
    352381      ID           : in     RTEMS.ID;
     
    435464   end Task_Set_Note;
    436465 
     466   procedure Task_Variable_Add (
     467      ID            : in     RTEMS.ID;
     468      Task_Variable : in     RTEMS.Address;
     469      Dtor          : in     RTEMS.Task_Variable_Dtor;
     470      Result        :    out RTEMS.Status_Codes
     471   ) is
     472      function Task_Variable_Add_Base (
     473         ID            : RTEMS.ID;
     474         Task_Variable : RTEMS.Address;
     475         Dtor          : RTEMS.Task_Variable_Dtor
     476      )  return RTEMS.Status_Codes;
     477      pragma Import (C, Task_Variable_Add_Base, "rtems_task_variable_add");
     478   begin
     479
     480      Result := Task_Variable_Add_Base ( ID, Task_Variable, Dtor );
     481
     482   end Task_Variable_Add;
     483
     484   procedure Task_Variable_Get (
     485      ID                  : in     RTEMS.ID;
     486      Task_Variable       :    out RTEMS.Address;
     487      Task_Variable_Value :    out RTEMS.Address;
     488      Result              :    out RTEMS.Status_Codes
     489   ) is
     490      function Task_Variable_Get_Base (
     491         ID                  : RTEMS.ID;
     492         Task_Variable       : access RTEMS.Address;
     493         Task_Variable_Value : access RTEMS.Address
     494      )  return RTEMS.Status_Codes;
     495      pragma Import (C, Task_Variable_Get_Base, "rtems_task_variable_get");
     496      Task_Variable_Base       : aliased RTEMS.Address;
     497      Task_Variable_Value_Base : aliased RTEMS.Address;
     498   begin
     499
     500      Result := Task_Variable_Get_Base (
     501         ID,
     502         Task_Variable_Base'Unchecked_Access,
     503         Task_Variable_Value_Base'Unchecked_Access
     504      );
     505      Task_Variable := Task_Variable_Base;
     506      Task_Variable_Value := Task_Variable_Value_Base;
     507
     508   end Task_Variable_Get;
     509
     510   procedure Task_Variable_Delete (
     511      ID                  : in     RTEMS.ID;
     512      Task_Variable       :    out RTEMS.Address;
     513      Result              :    out RTEMS.Status_Codes
     514   ) is
     515      function Task_Variable_Delete_Base (
     516         ID                  : RTEMS.ID;
     517         Task_Variable       : access RTEMS.Address
     518      )  return RTEMS.Status_Codes;
     519      pragma Import (
     520         C, Task_Variable_Delete_Base, "rtems_task_variable_delete"
     521      );
     522      Task_Variable_Base : aliased RTEMS.Address;
     523   begin
     524
     525      Result := Task_Variable_Delete_Base (
     526         ID, Task_Variable_Base'Unchecked_Access
     527      );
     528      Task_Variable := Task_Variable_Base;
     529
     530   end Task_Variable_Delete;
     531
    437532   procedure Task_Wake_When (
    438533      Time_Buffer : in     RTEMS.Time_Of_Day;
     
    466561   -- Interrupt Manager
    467562   --
    468 
    469    procedure Interrupt_Catch (
    470       New_ISR_Handler : in     RTEMS.Address;
    471       Vector          : in     RTEMS.Vector_Number;
    472       Old_ISR_Handler :    out RTEMS.Address;
    473       Result          :    out RTEMS.Status_Codes
    474    ) is
    475       function Interrupt_Catch_Base (
    476          New_ISR_Handler : RTEMS.Address;
    477          Vector          : RTEMS.Vector_Number;
    478          Old_ISR_Handler : access RTEMS.Address
    479       )  return RTEMS.Status_Codes;
    480       pragma Import (C, Interrupt_Catch_Base, "rtems_interrupt_catch");
    481       Old_ISR_Handler_Base : aliased RTEMS.Address;
    482    begin
    483  
    484       Result := Interrupt_Catch_Base (
    485          New_ISR_Handler,
    486          Vector,
    487          OLD_ISR_HANDLER_Base'Unchecked_Access
    488       );
    489       Old_ISR_Handler := OLD_ISR_HANDLER_Base;
    490  
    491    end Interrupt_Catch;
    492563
    493564   -- Interrupt_Disable is interfaced in the specification
     
    500571   --
    501572 
     573   procedure Clock_Set (
     574      Time_Buffer : in     RTEMS.Time_Of_Day;
     575      Result      :    out RTEMS.Status_Codes
     576   ) is
     577      function Clock_Set_Base (
     578         Time_Buffer : RTEMS.Time_Of_Day
     579      )  return RTEMS.Status_Codes;
     580      pragma Import (C, Clock_Set_Base, "rtems_clock_set");
     581   begin
     582 
     583      Result := Clock_Set_Base ( Time_Buffer );
     584
     585   end Clock_Set;
     586 
    502587   procedure Clock_Get (
    503588      Option      : in     RTEMS.Clock_Get_Options;
     
    505590      Result      :    out RTEMS.Status_Codes
    506591   ) is
    507       function Clock_Get_base (
     592      function Clock_Get_Base (
    508593         Option      : RTEMS.Clock_Get_Options;
    509594         Time_Buffer : RTEMS.Address
    510595      )  return RTEMS.Status_Codes;
    511       pragma Import (C, Clock_Get_base, "rtems_clock_get");
    512    begin
    513 
    514       Result := Clock_Get_base ( Option, Time_Buffer );
     596      pragma Import (C, Clock_Get_Base, "rtems_clock_get");
     597   begin
     598
     599      Result := Clock_Get_Base ( Option, Time_Buffer );
    515600
    516601   end Clock_Get;
    517602 
    518    procedure Clock_Set (
    519       Time_Buffer : in     RTEMS.Time_Of_Day;
    520       Result      :    out RTEMS.Status_Codes
    521    ) is
    522       function Clock_Set_base (
    523          Time_Buffer : RTEMS.Time_Of_Day
    524       )  return RTEMS.Status_Codes;
    525       pragma Import (C, Clock_Set_base, "rtems_clock_set");
    526    begin
    527  
    528       Result := Clock_Set_base ( Time_Buffer );
    529 
    530    end Clock_Set;
     603   procedure Clock_Get_Uptime (
     604      Uptime :    out RTEMS.Timespec;
     605      Result :    out RTEMS.Status_Codes
     606   ) is
     607      function Clock_Get_Uptime_Base (
     608         Uptime : access RTEMS.Timespec
     609      )  return RTEMS.Status_Codes;
     610      pragma Import (C, Clock_Get_Uptime_Base, "rtems_clock_get_uptime");
     611      Uptime_Base : aliased RTEMS.Timespec;
     612   begin
     613
     614      Result := Clock_Get_Uptime_Base (
     615         Uptime_Base'Unchecked_Access
     616      );
     617      Uptime := Uptime_Base;
     618
     619   end Clock_Get_Uptime;
    531620 
    532621   procedure Clock_Tick (
     
    540629
    541630   end Clock_Tick;
    542  
     631
    543632   --
    544633   -- Extension Manager
     
    891980   end Semaphore_Release;
    892981 
     982   procedure Semaphore_Flush (
     983      ID     : in     RTEMS.ID;
     984      Result :    out RTEMS.Status_Codes
     985   ) is
     986      function Semaphore_Flush_Base (
     987         ID : RTEMS.ID
     988      )  return RTEMS.Status_Codes;
     989      pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
     990   begin
     991 
     992      Result := Semaphore_Flush_Base ( ID );
     993
     994   end Semaphore_Flush;
     995 
    893996   --
    894997   -- Message Queue Manager
     
    10581161
    10591162   end Message_Queue_Receive;
     1163 
     1164   procedure Message_Queue_Get_Number_Pending (
     1165      ID     : in     RTEMS.ID;
     1166      Count  :    out RTEMS.Unsigned32;
     1167      Result :    out RTEMS.Status_Codes
     1168   ) is
     1169      function Message_Queue_Get_Number_Pending_Base (
     1170         ID    : RTEMS.ID;
     1171         Count : access RTEMS.Unsigned32
     1172      )  return RTEMS.Status_Codes;
     1173      pragma Import (
     1174         C,
     1175         Message_Queue_Get_Number_Pending_Base,
     1176         "rtems_message_queue_get_number_pending"
     1177      );
     1178      COUNT_Base : aliased RTEMS.Unsigned32;
     1179   begin
     1180 
     1181      Result := Message_Queue_Get_Number_Pending_Base (
     1182         ID, COUNT_Base'Unchecked_Access
     1183      );
     1184      Count := COUNT_Base;
     1185
     1186   end Message_Queue_Get_Number_Pending;
    10601187 
    10611188   procedure Message_Queue_Flush (
     
    14271554   end Region_Return_Segment;
    14281555 
     1556   procedure Region_Resize_Segment (
     1557      ID         : in     RTEMS.ID;
     1558      Segment    : in     RTEMS.Address;
     1559      Size       : in     RTEMS.Unsigned32;
     1560      Old_Size   :    out RTEMS.Unsigned32;
     1561      Result     :    out RTEMS.Status_Codes
     1562   ) is
     1563      function Region_Resize_Segment_Base (
     1564         ID       : RTEMS.ID;
     1565         Segment  : RTEMS.Address;
     1566         Size     : RTEMS.Unsigned32;
     1567         Old_Size : access RTEMS.Unsigned32
     1568      )  return RTEMS.Status_Codes;
     1569      pragma Import (C, Region_Resize_Segment_Base,
     1570         "rtems_region_resize_segment");
     1571      Old_Size_Base : aliased RTEMS.Unsigned32;
     1572   begin
     1573 
     1574      Result := Region_Resize_Segment_Base (
     1575         ID,
     1576         Segment,
     1577         Size,
     1578         Old_Size_Base'Unchecked_Access
     1579      );
     1580      Old_Size := Old_Size_Base;
     1581
     1582   end Region_Resize_Segment;
     1583
    14291584   --
    14301585   -- Dual Ported Memory Manager
     
    15431698   end Port_Internal_To_External;
    15441699 
    1545    --
    1546    -- Input/Output Manager
    1547    --
    1548  
    1549    procedure IO_Register_Name (
    1550       Name   : in     String;
    1551       Major  : in     RTEMS.Device_Major_Number;
    1552       Minor  : in     RTEMS.Device_Minor_Number;
    1553       Result :    out RTEMS.Status_Codes
    1554    ) is
    1555       function IO_Register_Name_Base (
    1556          Name   : Interfaces.C.Char_Array;
    1557          Major  : RTEMS.Device_Major_Number;
    1558          Minor  : RTEMS.Device_Minor_Number
    1559       )  return RTEMS.Status_Codes;
    1560       pragma Import (C, IO_Register_Name_Base, "rtems_io_register_name");
    1561    begin
    1562 
    1563       Result :=
    1564          IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
    1565 
    1566    end IO_Register_Name;
    1567 
    1568    procedure IO_Lookup_Name (
    1569       Name         : in     String;
    1570       Device_Info  : in     RTEMS.Driver_Name_t_Pointer;
    1571       Result       :    out RTEMS.Status_Codes
    1572    ) is
    1573       function IO_Lookup_Name_Base (
    1574          Name        : Interfaces.C.Char_Array;
    1575          Device_Info : access RTEMS.Driver_Name_t
    1576       )  return RTEMS.Status_Codes;
    1577       pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
    1578       Device_Info_Base : aliased RTEMS.Driver_Name_t;
    1579    begin
    1580 
    1581       Result := IO_Lookup_Name_Base (
    1582          Interfaces.C.To_C (Name),
    1583          Device_Info_Base'Unchecked_Access
    1584       );
    1585       Device_Info.All := Device_Info_Base;
    1586 
    1587    end IO_Lookup_Name;
    1588 
    1589    procedure IO_Open (
    1590       Major        : in     RTEMS.Device_Major_Number;
    1591       Minor        : in     RTEMS.Device_Minor_Number;
    1592       Argument     : in     RTEMS.Address;
    1593       Result       :    out RTEMS.Status_Codes
    1594    ) is
    1595       function IO_Open_Base (
    1596          Major        : RTEMS.Device_Major_Number;
    1597          Minor        : RTEMS.Device_Minor_Number;
    1598          Argument     : RTEMS.Address
    1599       )  return RTEMS.Status_Codes;
    1600       pragma Import (C, IO_Open_Base, "rtems_io_open");
    1601    begin
    1602  
    1603       Result := IO_Open_Base (Major, Minor, Argument);
    1604  
    1605    end IO_Open;
    1606  
    1607    procedure IO_Close (
    1608       Major        : in     RTEMS.Device_Major_Number;
    1609       Minor        : in     RTEMS.Device_Minor_Number;
    1610       Argument     : in     RTEMS.Address;
    1611       Result       :    out RTEMS.Status_Codes
    1612    ) is
    1613       function IO_Close_Base (
    1614          Major        : RTEMS.Device_Major_Number;
    1615          Minor        : RTEMS.Device_Minor_Number;
    1616          Argument     : RTEMS.Address
    1617       )  return RTEMS.Status_Codes;
    1618       pragma Import (C, IO_Close_Base, "rtems_io_close");
    1619    begin
    1620  
    1621       Result := IO_Close_Base (Major, Minor, Argument);
    1622  
    1623    end IO_Close;
    1624  
    1625    procedure IO_Read (
    1626       Major        : in     RTEMS.Device_Major_Number;
    1627       Minor        : in     RTEMS.Device_Minor_Number;
    1628       Argument     : in     RTEMS.Address;
    1629       Result       :    out RTEMS.Status_Codes
    1630    ) is
    1631       function IO_Read_Base (
    1632          Major        : RTEMS.Device_Major_Number;
    1633          Minor        : RTEMS.Device_Minor_Number;
    1634          Argument     : RTEMS.Address
    1635       )  return RTEMS.Status_Codes;
    1636       pragma Import (C, IO_Read_Base, "rtems_io_read");
    1637    begin
    1638  
    1639       Result := IO_Read_Base (Major, Minor, Argument);
    1640  
    1641    end IO_Read;
    1642  
    1643    procedure IO_Write (
    1644       Major        : in     RTEMS.Device_Major_Number;
    1645       Minor        : in     RTEMS.Device_Minor_Number;
    1646       Argument     : in     RTEMS.Address;
    1647       Result       :    out RTEMS.Status_Codes
    1648    ) is
    1649       function IO_Write_Base (
    1650          Major        : RTEMS.Device_Major_Number;
    1651          Minor        : RTEMS.Device_Minor_Number;
    1652          Argument     : RTEMS.Address
    1653       )  return RTEMS.Status_Codes;
    1654       pragma Import (C, IO_Write_Base, "rtems_io_write");
    1655    begin
    1656  
    1657       Result := IO_Write_Base (Major, Minor, Argument);
    1658  
    1659    end IO_Write;
    1660  
    1661    procedure IO_Control (
    1662       Major        : in     RTEMS.Device_Major_Number;
    1663       Minor        : in     RTEMS.Device_Minor_Number;
    1664       Argument     : in     RTEMS.Address;
    1665       Result       :    out RTEMS.Status_Codes
    1666    ) is
    1667       function IO_Control_Base (
    1668          Major        : RTEMS.Device_Major_Number;
    1669          Minor        : RTEMS.Device_Minor_Number;
    1670          Argument     : RTEMS.Address
    1671       )  return RTEMS.Status_Codes;
    1672       pragma Import (C, IO_Control_Base, "rtems_io_control");
    1673    begin
    1674  
    1675       Result := IO_Control_Base (Major, Minor, Argument);
    1676  
    1677    end IO_Control;
    16781700 
    16791701   --
     
    16841706      The_Error : in     RTEMS.Unsigned32
    16851707   ) is
    1686       procedure Fatal_Error_Occurred_base (
     1708      procedure Fatal_Error_Occurred_Base (
    16871709         The_Error : RTEMS.Unsigned32
    16881710      );
     
    17041726      Result :    out RTEMS.Status_Codes
    17051727   ) is
    1706       function Rate_Monotonic_Create_base (
     1728      function Rate_Monotonic_Create_Base (
    17071729         Name   : RTEMS.Name;
    17081730         ID     : access RTEMS.ID
    17091731      )  return RTEMS.Status_Codes;
    1710       pragma Import (C, Rate_Monotonic_Create_base, "rtems_rate_monotonic_create");
     1732      pragma Import (C, Rate_Monotonic_Create_Base, "rtems_rate_monotonic_create");
    17111733      ID_Base : aliased RTEMS.ID;
    17121734   begin
    17131735 
    1714       Result := Rate_Monotonic_Create_base ( Name, ID_Base'Unchecked_Access );
     1736      Result := Rate_Monotonic_Create_Base ( Name, ID_Base'Unchecked_Access );
    17151737      ID := ID_Base;
    17161738
     
    17471769   begin
    17481770 
    1749       Result := Rate_Monotonic_Delete_base ( ID );
     1771      Result := Rate_Monotonic_Delete_Base ( ID );
    17501772
    17511773   end Rate_Monotonic_Delete;
     
    17791801   begin
    17801802 
    1781       Result := Rate_Monotonic_Period_base ( ID, Length );
     1803      Result := Rate_Monotonic_Period_Base ( ID, Length );
    17821804
    17831805   end Rate_Monotonic_Period;
    1784  
    17851806 
    17861807   procedure Rate_Monotonic_Get_Status (
     
    18081829
    18091830   end Rate_Monotonic_Get_Status;
     1831
     1832   procedure Rate_Monotonic_Reset_Statistics (
     1833      ID     : in     RTEMS.ID;
     1834      Result :    out RTEMS.Status_Codes
     1835   ) is
     1836      function Rate_Monotonic_Reset_Statistics_Base (
     1837         ID : RTEMS.ID
     1838      )  return RTEMS.Status_Codes;
     1839      pragma Import (C, Rate_Monotonic_Reset_Statistics_Base,
     1840         "rtems_rate_monotonic_reset_statistics");
     1841   begin
     1842
     1843      Result := Rate_Monotonic_Reset_Statistics_Base ( ID );
     1844
     1845   end Rate_Monotonic_Reset_Statistics;
     1846
     1847
     1848   --
     1849   -- Barrier Manager
     1850   --
     1851
     1852   procedure Barrier_Create (
     1853      Name            : in     RTEMS.Name;
     1854      Attribute_Set   : in     RTEMS.Attribute;
     1855      Maximum_Waiters : in     RTEMS.Unsigned32;
     1856      ID              :    out RTEMS.ID;
     1857      Result          :    out RTEMS.Status_Codes
     1858   ) is
     1859      function Barrier_Create_Base (
     1860         Name            : RTEMS.Name;
     1861         Attribute_Set   : RTEMS.Attribute;
     1862         Maximum_Waiters : RTEMS.Unsigned32;
     1863         ID              : access RTEMS.ID
     1864      )  return RTEMS.Status_Codes;
     1865      pragma Import (C, Barrier_Create_Base, "rtems_barrier_create");
     1866      ID_Base : aliased RTEMS.ID;
     1867   begin
     1868
     1869      Result := Barrier_Create_Base (
     1870         Name,
     1871         Attribute_Set,
     1872         Maximum_Waiters,
     1873         ID_Base'Unchecked_Access
     1874      );
     1875      ID := ID_Base;
     1876
     1877   end Barrier_Create;
     1878
     1879   procedure Barrier_Ident (
     1880      Name   : in     RTEMS.Name;
     1881      ID     :    out RTEMS.ID;
     1882      Result :    out RTEMS.Status_Codes
     1883   ) is
     1884      function Barrier_Ident_Base (
     1885         Name : RTEMS.Name;
     1886         ID   : access RTEMS.ID
     1887      )  return RTEMS.Status_Codes;
     1888      pragma Import (C, Barrier_Ident_Base, "rtems_barrier_ident");
     1889      ID_Base : aliased RTEMS.ID;
     1890   begin
     1891
     1892      Result := Barrier_Ident_Base ( Name, ID_Base'Unchecked_Access );
     1893      ID := ID_Base;
     1894
     1895   end Barrier_Ident;
     1896
     1897   procedure Barrier_Delete (
     1898      ID     : in     RTEMS.ID;
     1899      Result :    out RTEMS.Status_Codes
     1900   ) is
     1901      function Barrier_Delete_Base (
     1902         ID : RTEMS.ID
     1903      )  return RTEMS.Status_Codes;
     1904      pragma Import (C, Barrier_Delete_Base, "rtems_barrier_delete");
     1905   begin
     1906
     1907      Result := Barrier_Delete_Base ( ID );
     1908
     1909   end Barrier_Delete;
     1910
     1911   procedure Barrier_Wait (
     1912      ID         : in     RTEMS.ID;
     1913      Option_Set : in     RTEMS.Option;
     1914      Timeout    : in     RTEMS.Interval;
     1915      Result     :    out RTEMS.Status_Codes
     1916   ) is
     1917      function Barrier_Wait_Base (
     1918         ID         : RTEMS.ID;
     1919         Option_Set : RTEMS.Option;
     1920         Timeout    : RTEMS.Interval
     1921      )  return RTEMS.Status_Codes;
     1922      pragma Import (C, Barrier_Wait_Base, "rtems_barrier_wait");
     1923   begin
     1924
     1925      Result := Barrier_Wait_Base ( ID, Option_Set, Timeout );
     1926
     1927   end Barrier_Wait;
     1928
     1929   procedure Barrier_Release (
     1930      ID     : in     RTEMS.ID;
     1931      Result :    out RTEMS.Status_Codes
     1932   ) is
     1933      function Barrier_Release_Base (
     1934         ID : RTEMS.ID
     1935      )  return RTEMS.Status_Codes;
     1936      pragma Import (C, Barrier_Release_Base, "rtems_barrier_release");
     1937   begin
     1938
     1939      Result := Barrier_Release_Base ( ID );
     1940
     1941   end Barrier_Release;
    18101942
    18111943 
  • c/src/ada/rtems.ads

    r1b03eed r8294a5d9  
    1919--  http://www.rtems.com/license/LICENSE.
    2020--
    21 --  rtems.ads,v 1.19.2.2 2003/11/25 14:07:32 joel Exp
     21--  $Id$
    2222--
    2323
     
    7878   False : constant RTEMS.Boolean := 0;
    7979
     80   --
    8081   --  More Types
    8182   --
     
    9596   subtype Device_Major_Number is RTEMS.Unsigned32;
    9697   subtype Device_Minor_Number is RTEMS.Unsigned32;
    97    subtype Vector_Number       is RTEMS.Unsigned32;
    9898   subtype ISR_Level           is RTEMS.Unsigned32;
    9999
     
    102102   --
    103103   --  Task Related Types
    104    --  XXXX fix this
     104   --
     105
    105106   subtype Task_Argument       is RTEMS.Unsigned32;
    106107   type Task_Argument_PTR      is access all Task_Argument;
    107108
    108    -- XXXX fix this
     109   type Task_Entry is access procedure (
     110      Argument : RTEMS.Unsigned32
     111   );
     112
    109113   subtype TCB                 is RTEMS.Unsigned32;
    110114   type    TCB_Pointer         is access all RTEMS.TCB;
    111 
    112    subtype Task_States         is RTEMS.Unsigned32;
    113 
    114    type Task_Entry is access procedure (
    115       Argument : RTEMS.Unsigned32
    116    );
    117115
    118116   --
     
    141139      Clock_Get_Seconds_Since_Epoch,
    142140      Clock_Get_Ticks_Since_Boot,
    143       Clock_Get_Ticks_Per_Seconds,
     141      Clock_Get_Ticks_Per_Second,
    144142      Clock_Get_Time_Value
    145143   );
    146144
    147    --
    148    --  Device Driver Entry Prototype
    149    --
    150 
    151    type Device_Driver_Entry is access function (
    152       Major    : in     RTEMS.Device_Major_Number;
    153       Minor    : in     RTEMS.Device_Major_Number;
    154       Argument : in     RTEMS.Unsigned32;
    155       ID       : in     RTEMS.Unsigned32
    156    ) return RTEMS.Unsigned32;
    157 
    158    type Driver_Address_Table_Entry is
    159       record
    160          Initialization : RTEMS.Device_Driver_Entry;
    161          Open           : RTEMS.Device_Driver_Entry;
    162          Close          : RTEMS.Device_Driver_Entry;
    163          Read           : RTEMS.Device_Driver_Entry;
    164          Write          : RTEMS.Device_Driver_Entry;
    165          Control        : RTEMS.Device_Driver_Entry;
    166       end record;
    167 
    168    type Driver_Address_Table is array ( RTEMS.Unsigned32
    169      range 1 .. RTEMS.Unsigned32'Last ) of RTEMS.Driver_Address_Table_Entry;
    170 
    171    type Driver_Address_Table_Pointer is access all Driver_Address_Table;
    172 
    173    type Driver_Name_t is
    174       record
    175          Device_Name        : RTEMS.Address;
    176          Device_Name_Length : RTEMS.Unsigned32;
    177          Major              : RTEMS.Device_Major_Number;
    178          Minor              : RTEMS.Device_Minor_Number;
    179       end record;
    180 
    181    type Driver_Name_t_Pointer is access all Driver_Name_t;
     145   type Time_T is new Interfaces.C.Long;
     146
     147   type Timespec is record
     148      TV_Sec  : Time_T;
     149      TV_Nsec : Interfaces.C.Long;
     150   end record;
     151   pragma Convention (C, Timespec);
    182152
    183153   --
     
    249219   Minimum_Stack_Size : RTEMS.Unsigned32;
    250220   pragma Import (C, Minimum_Stack_Size, "rtems_minimum_stack_size");
    251 
    252221
    253222   --
     
    283252   No_Priority      : constant RTEMS.Task_Priority := 0;
    284253
    285 
    286254   --
    287255   --  Extension Callouts and Table
    288256   --
    289257
    290    type Thread_Create_Extension is access procedure (
     258   type Thread_Create_Extension is access function (
    291259      Current_Task : in     RTEMS.TCB_Pointer;
    292260      New_Task     : in     RTEMS.TCB_Pointer
    293    );
     261   ) return RTEMS.Boolean;
    294262
    295263   type Thread_Start_Extension is access procedure (
     
    540508
    541509   --
    542    --  For now, do not provide access to the CPU Table from Ada.
    543    --  When this type is provided, a CPU dependent file must
    544    --  define it.
    545    --
    546 
    547    subtype CPU_Table is RTEMS.Address;
    548    type CPU_Table_Pointer is access all CPU_Table;
    549 
    550    --
    551510   --  Utility Functions
    552511   --
     
    613572      Right  : in     RTEMS.Address
    614573   ) return Standard.Boolean;
     574
     575
    615576   --
    616577   --  RTEMS API
    617578   --
     579
     580   --
     581   --  Initialization Manager -- Shutdown Only
     582   --
     583   procedure Shutdown_Executive (
     584      Status : in     RTEMS.Unsigned32
     585   );
    618586
    619587   --
     
    666634   );
    667635
     636   procedure Task_Is_Suspended (
     637      ID     : in     RTEMS.ID;
     638      Result :    out RTEMS.Status_Codes
     639   );
     640
    668641   procedure Task_Set_Priority (
    669642      ID           : in     RTEMS.ID;
     
    698671   );
    699672
    700 --   procedure Task_Variable_Add (
    701 --      ID            : in     RTEMS.ID;
    702 --      Task_Variable : in     RTEMS.Address;
    703 --      Dtor          : in     RTEMS.Task_Variable_Dtor;
    704 --      Result        :    out RTEMS.Status_Codes
    705 --   );
    706 
    707 --   procedure Task_Variable_Get (
    708 --      ID                  : in     RTEMS.ID;
    709 --      Task_Variable       :    out RTEMS.Address;
    710 --      Task_Variable_Value :    out RTEMS.Address;
    711 --      Result              :    out RTEMS.Status_Codes
    712 --   );
    713 
    714 --   procedure Task_Variable_Delete (
    715 --      ID                  : in     RTEMS.ID;
    716 --      Task_Variable       :    out RTEMS.Address;
    717 --      Result              :    out RTEMS.Status_Codes
    718 --   );
     673   procedure Task_Variable_Add (
     674      ID            : in     RTEMS.ID;
     675      Task_Variable : in     RTEMS.Address;
     676      Dtor          : in     RTEMS.Task_Variable_Dtor;
     677      Result        :    out RTEMS.Status_Codes
     678   );
     679
     680   procedure Task_Variable_Get (
     681      ID                  : in     RTEMS.ID;
     682      Task_Variable       :    out RTEMS.Address;
     683      Task_Variable_Value :    out RTEMS.Address;
     684      Result              :    out RTEMS.Status_Codes
     685   );
     686
     687   procedure Task_Variable_Delete (
     688      ID                  : in     RTEMS.ID;
     689      Task_Variable       :    out RTEMS.Address;
     690      Result              :    out RTEMS.Status_Codes
     691   );
    719692
    720693   procedure Task_Wake_When (
     
    731704   --  Interrupt Manager
    732705   --
    733 
    734    procedure Interrupt_Catch (
    735       New_ISR_Handler : in     RTEMS.Address;
    736       Vector          : in     RTEMS.Vector_Number;
    737       Old_ISR_Handler :    out RTEMS.Address;
    738       Result          :    out RTEMS.Status_Codes
    739    );
    740706
    741707   function Interrupt_Disable return RTEMS.ISR_Level;
     
    764730   --
    765731
     732   procedure Clock_Set (
     733      Time_Buffer : in     RTEMS.Time_Of_Day;
     734      Result      :    out RTEMS.Status_Codes
     735   );
     736
    766737   procedure Clock_Get (
    767738      Option      : in     RTEMS.Clock_Get_Options;
     
    770741   );
    771742
    772    procedure Clock_Set (
    773       Time_Buffer : in     RTEMS.Time_Of_Day;
    774       Result      :    out RTEMS.Status_Codes
     743   procedure Clock_Get_Uptime (
     744      Uptime :    out RTEMS.Timespec;
     745      Result :    out RTEMS.Status_Codes
    775746   );
    776747
     
    800771      Result :    out RTEMS.Status_Codes
    801772   );
    802 
    803773
    804774   --
     
    909879   );
    910880
     881   procedure Semaphore_Flush (
     882      ID     : in     RTEMS.ID;
     883      Result :    out RTEMS.Status_Codes
     884   );
    911885
    912886   --
     
    966940   );
    967941
     942   procedure Message_Queue_Get_Number_Pending (
     943      ID     : in     RTEMS.ID;
     944      Count  :    out RTEMS.Unsigned32;
     945      Result :    out RTEMS.Status_Codes
     946   );
     947
    968948   procedure Message_Queue_Flush (
    969949      ID     : in     RTEMS.ID;
     
    971951      Result :    out RTEMS.Status_Codes
    972952   );
    973 
    974953
    975954   --
     
    1006985      Result     :    out RTEMS.Status_Codes
    1007986   );
    1008 
    1009987
    1010988   --
     
    10461024   );
    10471025
    1048 
    10491026   --
    10501027   --  Region Manager
     
    11011078   );
    11021079
     1080   procedure Region_Resize_Segment (
     1081      ID         : in     RTEMS.ID;
     1082      Segment    : in     RTEMS.Address;
     1083      Size       : in     RTEMS.Unsigned32;
     1084      Old_Size   :    out RTEMS.Unsigned32;
     1085      Result     :    out RTEMS.Status_Codes
     1086   );
    11031087
    11041088   --
     
    11411125
    11421126   --
    1143    --  Input/Output Manager
    1144    --
    1145 
    1146    procedure IO_Register_Name (
    1147       Name   : in     String;
    1148       Major  : in     RTEMS.Device_Major_Number;
    1149       Minor  : in     RTEMS.Device_Minor_Number;
    1150       Result :    out RTEMS.Status_Codes
    1151    );
    1152 
    1153    procedure IO_Lookup_Name (
    1154       Name         : in     String;
    1155       Device_Info  : In     RTEMS.Driver_Name_t_Pointer;
    1156       Result       :    out RTEMS.Status_Codes
    1157    );
    1158 
    1159    procedure IO_Open (
    1160       Major        : in     RTEMS.Device_Major_Number;
    1161       Minor        : in     RTEMS.Device_Minor_Number;
    1162       Argument     : in     RTEMS.Address;
    1163       Result       :    out RTEMS.Status_Codes
    1164    );
    1165 
    1166    procedure IO_Close (
    1167       Major        : in     RTEMS.Device_Major_Number;
    1168       Minor        : in     RTEMS.Device_Minor_Number;
    1169       Argument     : in     RTEMS.Address;
    1170       Result       :    out RTEMS.Status_Codes
    1171    );
    1172 
    1173    procedure IO_Read (
    1174       Major        : in     RTEMS.Device_Major_Number;
    1175       Minor        : in     RTEMS.Device_Minor_Number;
    1176       Argument     : in     RTEMS.Address;
    1177       Result       :    out RTEMS.Status_Codes
    1178    );
    1179 
    1180    procedure IO_Write (
    1181       Major        : in     RTEMS.Device_Major_Number;
    1182       Minor        : in     RTEMS.Device_Minor_Number;
    1183       Argument     : in     RTEMS.Address;
    1184       Result       :    out RTEMS.Status_Codes
    1185    );
    1186 
    1187    procedure IO_Control (
    1188       Major        : in     RTEMS.Device_Major_Number;
    1189       Minor        : in     RTEMS.Device_Minor_Number;
    1190       Argument     : in     RTEMS.Address;
    1191       Result       :    out RTEMS.Status_Codes
    1192    );
    1193 
    1194 
    1195    --
    11961127   --  Fatal Error Manager
    11971128   --
     
    12001131      The_Error : in     RTEMS.Unsigned32
    12011132   );
    1202 
    12031133
    12041134   --
     
    12401170   );
    12411171
     1172   procedure Rate_Monotonic_Reset_Statistics (
     1173      ID     : in     RTEMS.ID;
     1174      Result :    out RTEMS.Status_Codes
     1175   );
     1176
     1177   procedure Rate_Monotonic_Reset_All_Statistics;
     1178   pragma Import (
     1179      C,
     1180      Rate_Monotonic_Reset_All_Statistics,
     1181      "rtems_rate_monotonic_reset_all_statistics"
     1182   );
     1183
     1184   procedure Rate_Monotonic_Report_Statistics;
     1185   pragma Import (
     1186      C,
     1187      Rate_Monotonic_Report_Statistics,
     1188      "rtems_rate_monotonic_report_statistics"
     1189   );
     1190
     1191   --
     1192   --  Barrier Manager
     1193   --
     1194
     1195   procedure Barrier_Create (
     1196      Name            : in     RTEMS.Name;
     1197      Attribute_Set   : in     RTEMS.Attribute;
     1198      Maximum_Waiters : in     RTEMS.Unsigned32;
     1199      ID              :    out RTEMS.ID;
     1200      Result          :    out RTEMS.Status_Codes
     1201   );
     1202
     1203   procedure Barrier_Ident (
     1204      Name   : in     RTEMS.Name;
     1205      ID     :    out RTEMS.ID;
     1206      Result :    out RTEMS.Status_Codes
     1207   );
     1208
     1209   procedure Barrier_Delete (
     1210      ID     : in     RTEMS.ID;
     1211      Result :    out RTEMS.Status_Codes
     1212   );
     1213
     1214   procedure Barrier_Wait (
     1215      ID         : in     RTEMS.ID;
     1216      Option_Set : in     RTEMS.Option;
     1217      Timeout    : in     RTEMS.Interval;
     1218      Result     :    out RTEMS.Status_Codes
     1219   );
     1220
     1221   procedure Barrier_Release (
     1222      ID     : in     RTEMS.ID;
     1223      Result :    out RTEMS.Status_Codes
     1224   );
     1225
     1226   --
     1227   --  Stack Bounds Checker
     1228   --
     1229
     1230   function Stack_Checker_Is_Blown return RTEMS.Boolean;
     1231   pragma Interface (C, Stack_Checker_Is_Blown);
     1232   pragma Interface_Name
     1233     (Interrupt_Is_In_Progress, "rtems_stack_checker_is_blown");
     1234
     1235   procedure Stack_Checker_Report_Usage;
     1236   pragma Import (
     1237      C, Stack_Checker_Report_Usage, "rtems_stack_checker_report_usage"
     1238   );
     1239
     1240   --
     1241   --  CPU Usage Statistics
     1242   --
     1243
     1244   procedure CPU_Usage_Report;
     1245   pragma Import (C, CPU_Usage_Report, "rtems_cpu_usage_report");
     1246
     1247   procedure CPU_Usage_Reset;
     1248   pragma Import (C, CPU_Usage_Reset, "rtems_cpu_usage_reset");
    12421249
    12431250   --
Note: See TracChangeset for help on using the changeset viewer.