annotate gcc/ada/libgnarl/s-mudido.ads @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT RUN-TIME COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- SYSTEM.MULTIPROCESSORS.DISPATCHING_DOMAINS --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- S p e c --
kono
parents:
diff changeset
8 -- --
kono
parents:
diff changeset
9 -- This specification is derived from the Ada Reference Manual for use with --
kono
parents:
diff changeset
10 -- GNAT. In accordance with the copyright of that document, you can freely --
kono
parents:
diff changeset
11 -- copy and modify this specification, provided that if you redistribute a --
kono
parents:
diff changeset
12 -- modified version, any changes that you have made are clearly indicated. --
kono
parents:
diff changeset
13 -- --
kono
parents:
diff changeset
14 ------------------------------------------------------------------------------
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 with Ada.Real_Time;
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 with Ada.Task_Identification;
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 private with System.Tasking;
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 package System.Multiprocessors.Dispatching_Domains is
kono
parents:
diff changeset
23 -- pragma Preelaborate (Dispatching_Domains);
kono
parents:
diff changeset
24 -- ??? According to AI 167 this unit should be preelaborate, but it cannot
kono
parents:
diff changeset
25 -- be preelaborate because it depends on Ada.Real_Time which is not
kono
parents:
diff changeset
26 -- preelaborate.
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 Dispatching_Domain_Error : exception;
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 type Dispatching_Domain (<>) is limited private;
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 System_Dispatching_Domain : constant Dispatching_Domain;
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 function Create (First : CPU; Last : CPU_Range) return Dispatching_Domain;
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 function Get_First_CPU (Domain : Dispatching_Domain) return CPU;
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 function Get_Last_CPU (Domain : Dispatching_Domain) return CPU_Range;
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 type CPU_Set is array (CPU range <>) of Boolean;
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 function Create (Set : CPU_Set) return Dispatching_Domain;
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 function Get_CPU_Set (Domain : Dispatching_Domain) return CPU_Set;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 function Get_Dispatching_Domain
kono
parents:
diff changeset
47 (T : Ada.Task_Identification.Task_Id :=
kono
parents:
diff changeset
48 Ada.Task_Identification.Current_Task) return Dispatching_Domain;
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 procedure Assign_Task
kono
parents:
diff changeset
51 (Domain : in out Dispatching_Domain;
kono
parents:
diff changeset
52 CPU : CPU_Range := Not_A_Specific_CPU;
kono
parents:
diff changeset
53 T : Ada.Task_Identification.Task_Id :=
kono
parents:
diff changeset
54 Ada.Task_Identification.Current_Task);
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 procedure Set_CPU
kono
parents:
diff changeset
57 (CPU : CPU_Range;
kono
parents:
diff changeset
58 T : Ada.Task_Identification.Task_Id :=
kono
parents:
diff changeset
59 Ada.Task_Identification.Current_Task);
kono
parents:
diff changeset
60
kono
parents:
diff changeset
61 function Get_CPU
kono
parents:
diff changeset
62 (T : Ada.Task_Identification.Task_Id :=
kono
parents:
diff changeset
63 Ada.Task_Identification.Current_Task) return CPU_Range;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 procedure Delay_Until_And_Set_CPU
kono
parents:
diff changeset
66 (Delay_Until_Time : Ada.Real_Time.Time;
kono
parents:
diff changeset
67 CPU : CPU_Range);
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 private
kono
parents:
diff changeset
70 type Dispatching_Domain is new System.Tasking.Dispatching_Domain_Access;
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 System_Dispatching_Domain : constant Dispatching_Domain :=
kono
parents:
diff changeset
73 Dispatching_Domain
kono
parents:
diff changeset
74 (System.Tasking.System_Domain);
kono
parents:
diff changeset
75 end System.Multiprocessors.Dispatching_Domains;