florist_blady_6.1.0_05ac0091/tests/p990050a.ads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
------------------------------------------------------------------------------
--                                                                          --
--                      POSIX.5b VALIDATION TEST SUITE                      --
--                                                                          --
--                            P 9 9 0 0 5 0 a                               --
--                                                                          --
--                                S p e c                                   --
--                                                                          --
--                                                                          --
--  Copyright (c) 1998 Florida  State  University  (FSU).       All Rights  --
--  Reserved.                                                               --
--                                                                          --
--  This is free software;  you can redistribute it and/or modify it under  --
--  terms of the  GNU  General  Public  License  as published by the  Free  --
--  Software Foundation;  either version 2, or (at your option) any  later  --
--  version.  This  software  is distributed  in the hope that it  will be  --
--  useful, but WITHOUT ANY WARRANTY; without even the implied warranty of  --
--  MERCHANTABILITY   or  FITNESS FOR A PARTICULAR PURPOSE.   See the  GNU  --
--  General Public License for more details.  You  should have  received a  --
--  copy of the GNU General Public License  distributed  with  GNARL;  see  --
--  file  COPYING.  If not,  write to  the  Free  Software  Foundation, 59  --
--  Temple Place - Suite 330, Boston, MA 02111-1307, USA.                   --
--                                                                          --
--  Under contract  GS-35F-4506G, the U. S. Government obtained  unlimited  --
--  rights in the software and documentation contained herein.   Unlimited  --
--  rights are defined in DFAR 252,227-7013(a)(19).  By making this public  --
--  release,   the  Government  intends  to  confer  upon  all  recipients  --
--  unlimited  rights equal to those held by the Government.  These rights  --
--  include rights to use,  duplicate,  release  or  disclose the released  --
--  data an computer software  in whole or in part,  in any manner and for  --
--  any purpose whatsoever, and to have or permit others to do so.          --
--                                                                          --
--  DISCLAIMER   --   ALL MATERIALS OR INFORMATION HEREIN RELEASED,   MADE  --
--  AVAILABLE OR DISCLOSED ARE AS IS.   THE GOVERNMENT MAKES NO EXPRESS OR  --
--  IMPLIED WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS  --
--  OF THE SOFTWARE,  DOCUMENTATION  OR  OTHER INFORMATION RELEASED,  MADE  --
--  AVAILABLE OR DISCLOSED,  OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS  --
--  FOR A PARTICULAR PURPOSE OF SAID MATERIAL.                              --
--                                                                          --
------------------------------------------------------------------------------
--  [$Revision: 1.2 $]

--  Simulate mix of periodic jobs with rate monotone priorities.
--  This version uses:
--     POSIX processes and process priorities for concurrency and scheduling
--     Ada delay statements and Ada.Real_Time.Clock for timing control
--     POSIX semaphores for mutual exclusion

--  See P9900doc.ads for more detailed explanation.

with P9900doc,
     P9900x0,
     P990001c,  --  POSIX named semaphores
     P990002d,  --  Ada.Real_Time and delay until
     P990003b;  --  interprocess shared data
package P990050a is new P9900x0
  (Version => "50",
   Needs_Clock_Realtime => False,
   Jobs_Are_Processes => True,
   Initialize_Sync => P990001c.Initialize,
   Do_Input => P990001c.Do_Input,
   Do_Output => P990001c.Do_Output,
   Start_All_Jobs => P990001c.Start_All_Jobs,
   Await_All_Jobs_Done => P990001c.Await_All_Jobs_Done,
   Await_Start => P990001c.Await_Start,
   Done_Job => P990001c.Done_Job,
   Finalize_Sync => P990001c.Finalize,
   Initialize_Scheduling => P990002d.Initialize_Scheduling,
   Reschedule => P990002d.Reschedule,
   Finalize_Scheduling => P990002d.Finalize,
   Shared_Data =>  P990003b.Shared_Data,
   Finalize_Shared_Data => P990003b.Finalize
  );