1 ------------------------------------------------------------------------------
3 -- GNAT RUN-TIME COMPONENTS --
5 -- SYSTEM.MULTIPROCESSORS.DISPATCHING_DOMAINS --
9 -- This specification is derived from the Ada Reference Manual for use with --
10 -- GNAT. In accordance with the copyright of that document, you can freely --
11 -- copy and modify this specification, provided that if you redistribute a --
12 -- modified version, any changes that you have made are clearly indicated. --
14 ------------------------------------------------------------------------------
18 with Ada
.Task_Identification
;
20 private with System
.Tasking
;
22 package System
.Multiprocessors
.Dispatching_Domains
is
23 -- pragma Preelaborate (Dispatching_Domains);
24 -- ??? According to AI 167 this unit should be preelaborate, but it cannot
25 -- be preelaborate because it depends on Ada.Real_Time which is not
28 Dispatching_Domain_Error
: exception;
30 type Dispatching_Domain
(<>) is limited private;
32 System_Dispatching_Domain
: constant Dispatching_Domain
;
34 function Create
(First
, Last
: CPU
) return Dispatching_Domain
;
36 function Get_First_CPU
(Domain
: Dispatching_Domain
) return CPU
;
38 function Get_Last_CPU
(Domain
: Dispatching_Domain
) return CPU
;
40 function Get_Dispatching_Domain
41 (T
: Ada
.Task_Identification
.Task_Id
:=
42 Ada
.Task_Identification
.Current_Task
) return Dispatching_Domain
;
45 (Domain
: in out Dispatching_Domain
;
46 CPU
: CPU_Range
:= Not_A_Specific_CPU
;
47 T
: Ada
.Task_Identification
.Task_Id
:=
48 Ada
.Task_Identification
.Current_Task
);
52 T
: Ada
.Task_Identification
.Task_Id
:=
53 Ada
.Task_Identification
.Current_Task
);
56 (T
: Ada
.Task_Identification
.Task_Id
:=
57 Ada
.Task_Identification
.Current_Task
) return CPU_Range
;
59 procedure Delay_Until_And_Set_CPU
60 (Delay_Until_Time
: Ada
.Real_Time
.Time
;
64 type Dispatching_Domain
is new System
.Tasking
.Dispatching_Domain_Access
;
66 System_Dispatching_Domain
: constant Dispatching_Domain
:=
68 (System
.Tasking
.System_Domain
);
69 end System
.Multiprocessors
.Dispatching_Domains
;