]>
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 | -- -- |
748086b7 | 11 | -- GNARL 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 JJ |
16 | -- or FITNESS FOR A PARTICULAR PURPOSE. -- |
17 | -- -- | |
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 | ||
29 | -- This package provides vxworks specific support functions needed | |
30 | -- by System.OS_Interface. | |
31 | ||
9d607bc3 | 32 | -- This is the VxWorks 5 and VxWorks MILS version of this package |
c4394c15 AC |
33 | |
34 | with Interfaces.C; | |
35 | ||
36 | package System.VxWorks.Ext is | |
37 | pragma Preelaborate; | |
38 | ||
6ca063eb | 39 | subtype SEM_ID is Long_Integer; |
0eed21bd EF |
40 | -- typedef struct semaphore *SEM_ID; |
41 | ||
b2cacbfe AC |
42 | type sigset_t is mod 2 ** Interfaces.C.long'Size; |
43 | ||
c4394c15 | 44 | type t_id is new Long_Integer; |
b2cacbfe | 45 | |
c4394c15 | 46 | subtype int is Interfaces.C.int; |
c37cbdc3 | 47 | subtype unsigned is Interfaces.C.unsigned; |
c4394c15 | 48 | |
1f07382d AC |
49 | type Interrupt_Handler is access procedure (parameter : System.Address); |
50 | pragma Convention (C, Interrupt_Handler); | |
c4394c15 | 51 | |
1f07382d | 52 | type Interrupt_Vector is new System.Address; |
c4394c15 AC |
53 | |
54 | function Int_Lock return int; | |
55 | pragma Import (C, Int_Lock, "intLock"); | |
56 | ||
b6e5a1ec | 57 | function Int_Unlock (Old : int) return int; |
c4394c15 AC |
58 | pragma Import (C, Int_Unlock, "intUnlock"); |
59 | ||
1f07382d AC |
60 | function Interrupt_Connect |
61 | (Vector : Interrupt_Vector; | |
62 | Handler : Interrupt_Handler; | |
63 | Parameter : System.Address := System.Null_Address) return int; | |
64 | pragma Import (C, Interrupt_Connect, "intConnect"); | |
65 | ||
92817e89 AC |
66 | function Interrupt_Context return int; |
67 | pragma Import (C, Interrupt_Context, "intContext"); | |
68 | ||
1f07382d AC |
69 | function Interrupt_Number_To_Vector |
70 | (intNum : int) return Interrupt_Vector; | |
71 | pragma Import (C, Interrupt_Number_To_Vector, "__gnat_inum_to_ivec"); | |
72 | ||
0eed21bd EF |
73 | function semDelete (Sem : SEM_ID) return int; |
74 | pragma Import (C, semDelete, "semDelete"); | |
75 | ||
1f07382d AC |
76 | function Task_Cont (tid : t_id) return int; |
77 | pragma Import (C, Task_Cont, "taskResume"); | |
78 | ||
79 | function Task_Stop (tid : t_id) return int; | |
80 | pragma Import (C, Task_Stop, "taskSuspend"); | |
81 | ||
c4394c15 AC |
82 | function kill (pid : t_id; sig : int) return int; |
83 | pragma Import (C, kill, "kill"); | |
84 | ||
c4394c15 AC |
85 | function getpid return t_id; |
86 | pragma Import (C, getpid, "taskIdSelf"); | |
87 | ||
1f07382d AC |
88 | function Set_Time_Slice (ticks : int) return int; |
89 | pragma Import (C, Set_Time_Slice, "kernelTimeSlice"); | |
90 | ||
95cd3246 AC |
91 | -------------------------------- |
92 | -- Processor Affinity for SMP -- | |
93 | -------------------------------- | |
94 | ||
95 | function taskCpuAffinitySet (tid : t_id; CPU : int) return int; | |
96 | pragma Convention (C, taskCpuAffinitySet); | |
97 | -- For SMP run-times set the CPU affinity. | |
98 | -- For uniprocessor systems return ERROR status. | |
99 | ||
c37cbdc3 AC |
100 | function taskMaskAffinitySet (tid : t_id; CPU_Set : unsigned) return int; |
101 | pragma Convention (C, taskMaskAffinitySet); | |
102 | -- For SMP run-times set the CPU mask affinity. | |
103 | -- For uniprocessor systems return ERROR status. | |
104 | ||
c4394c15 | 105 | end System.VxWorks.Ext; |