]>
Commit | Line | Data |
---|---|---|
c4394c15 AC |
1 | ------------------------------------------------------------------------------ |
2 | -- -- | |
3 | -- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- | |
4 | -- -- | |
5 | -- S Y S T E M . V X W O R K S . E X T -- | |
6 | -- -- | |
7 | -- S p e c -- | |
8 | -- -- | |
4b490c1e | 9 | -- Copyright (C) 2008-2020, Free Software Foundation, Inc. -- |
c4394c15 | 10 | -- -- |
cfc29a96 | 11 | -- GNAT is free software; you can redistribute it and/or modify it under -- |
c4394c15 | 12 | -- terms of the GNU General Public License as published by the Free Soft- -- |
748086b7 JJ |
13 | -- ware Foundation; either version 3, or (at your option) any later ver- -- |
14 | -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- | |
c4394c15 | 15 | -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- |
748086b7 | 16 | -- or FITNESS FOR A PARTICULAR PURPOSE. -- |
c4394c15 | 17 | -- -- |
748086b7 JJ |
18 | -- As a special exception under Section 7 of GPL version 3, you are granted -- |
19 | -- additional permissions described in the GCC Runtime Library Exception, -- | |
20 | -- version 3.1, as published by the Free Software Foundation. -- | |
21 | -- -- | |
22 | -- You should have received a copy of the GNU General Public License and -- | |
23 | -- a copy of the GCC Runtime Library Exception along with this program; -- | |
24 | -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- | |
25 | -- <http://www.gnu.org/licenses/>. -- | |
c4394c15 AC |
26 | -- -- |
27 | ------------------------------------------------------------------------------ | |
28 | ||
cfc29a96 | 29 | -- This package provides VxWorks specific support functions needed |
c4394c15 AC |
30 | -- by System.OS_Interface. |
31 | ||
cfc29a96 | 32 | -- This is the VxWorks 653 vThreads version of this package |
c4394c15 AC |
33 | |
34 | with Interfaces.C; | |
35 | ||
36 | package System.VxWorks.Ext is | |
37 | pragma Preelaborate; | |
38 | ||
0eed21bd EF |
39 | subtype SEM_ID is Long_Integer; |
40 | -- typedef struct semaphore *SEM_ID; | |
41 | ||
cfc29a96 | 42 | type sigset_t is mod 2 ** Interfaces.C.long'Size; |
b2cacbfe | 43 | |
c4394c15 AC |
44 | type t_id is new Long_Integer; |
45 | subtype int is Interfaces.C.int; | |
c37cbdc3 | 46 | subtype unsigned is Interfaces.C.unsigned; |
c4394c15 | 47 | |
3405870d EF |
48 | type Interrupt_Handler is access procedure (parameter : System.Address); |
49 | pragma Convention (C, Interrupt_Handler); | |
c4394c15 | 50 | |
3405870d | 51 | type Interrupt_Vector is new System.Address; |
c4394c15 AC |
52 | function Int_Lock return int; |
53 | pragma Inline (Int_Lock); | |
54 | ||
b6e5a1ec | 55 | function Int_Unlock (Old : int) return int; |
c4394c15 AC |
56 | pragma Inline (Int_Unlock); |
57 | ||
3405870d EF |
58 | function Interrupt_Connect |
59 | (Vector : Interrupt_Vector; | |
60 | Handler : Interrupt_Handler; | |
61 | Parameter : System.Address := System.Null_Address) return int; | |
62 | pragma Convention (C, Interrupt_Connect); | |
63 | ||
92817e89 AC |
64 | function Interrupt_Context return int; |
65 | pragma Convention (C, Interrupt_Context); | |
66 | ||
3405870d EF |
67 | function Interrupt_Number_To_Vector |
68 | (intNum : int) return Interrupt_Vector; | |
69 | pragma Convention (C, Interrupt_Number_To_Vector); | |
70 | ||
0eed21bd | 71 | function semDelete (Sem : SEM_ID) return int; |
1fb00064 | 72 | pragma Convention (C, semDelete); |
0eed21bd | 73 | |
3405870d EF |
74 | function Task_Cont (tid : t_id) return int; |
75 | pragma Import (C, Task_Cont, "taskResume"); | |
76 | ||
77 | function Task_Stop (tid : t_id) return int; | |
78 | pragma Import (C, Task_Stop, "taskSuspend"); | |
79 | ||
c4394c15 | 80 | function kill (pid : t_id; sig : int) return int; |
cfc29a96 | 81 | pragma Import (C, kill, "kill"); |
c4394c15 | 82 | |
c4394c15 | 83 | function getpid return t_id; |
cfc29a96 | 84 | pragma Import (C, getpid, "taskIdSelf"); |
c4394c15 | 85 | |
3405870d | 86 | function Set_Time_Slice (ticks : int) return int; |
cfc29a96 NR |
87 | pragma Import (C, Set_Time_Slice, "kernelTimeSlice"); |
88 | ||
89 | type UINT64 is mod 2 ** Long_Long_Integer'Size; | |
90 | ||
91 | function tickGet return UINT64; | |
92 | -- "tickGet" not available for cert vThreads: | |
93 | pragma Import (C, tickGet, "tick64Get"); | |
3405870d | 94 | |
9763f8c8 AC |
95 | -------------------------------- |
96 | -- Processor Affinity for SMP -- | |
97 | -------------------------------- | |
98 | ||
99 | function taskCpuAffinitySet (tid : t_id; CPU : int) return int; | |
100 | pragma Convention (C, taskCpuAffinitySet); | |
101 | -- For SMP run-times set the CPU affinity. | |
102 | -- For uniprocessor systems return ERROR status. | |
103 | ||
c37cbdc3 AC |
104 | function taskMaskAffinitySet (tid : t_id; CPU_Set : unsigned) return int; |
105 | pragma Convention (C, taskMaskAffinitySet); | |
106 | -- For SMP run-times set the CPU mask affinity. | |
107 | -- For uniprocessor systems return ERROR status. | |
108 | ||
c4394c15 | 109 | end System.VxWorks.Ext; |