1 /*  BEGIN INCLUDE FILE: bft_queue.incl.pl1                    *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
 2 
 3 /****^  HISTORY COMMENTS:
 4   1) change(87-10-06,Flegel), approve(87-10-23,MCR7787),
 5      audit(88-01-27,RWaters), install(88-02-24,MR12.2-1028):
 6      Created.
 7                                                    END HISTORY COMMENTS */
 8 
 9 
10 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,^indprocbody,initcol1,declareind8,dclind4,struclvlind3,comcol55 */
11 
12 dcl BFT_QUEUE_VERSION_1    char (8) internal static options (constant)
13                            init ("VERSION1");
14 dcl BFT_QUEUE_PRIORITIES   fixed bin internal static options (constant)
15                            init (4);
16 dcl BFT_QUEUE_WAIT_TIME    fixed bin internal static options (constant)
17                            init (30);
18 
19 /* Queue */
20 
21 dcl queue_ptr              ptr;
22 dcl 01 queue              based (queue_ptr) aligned,
23        02 header          like queue_header,
24        02 array           (queue.header.segment_size) like queue_element;
25 
26 /* Queue header */
27 
28 dcl 01 queue_header        based,
29        02 version          char (8),                  /* Segment ID */
30        02 lockword         bit (36) aligned,          /* Segment lock */
31        02 store_queue      (4),                       /* Multics -> PC */
32           03 last          fixed bin (35),            /* Last element */
33           03 first         fixed bin (35),            /* Entry transferring */
34           03 flags,
35              04 pad        bit (36) unal,
36        02 fetch_queue      (4),                       /* PC -> Multics */
37           03 last          fixed bin (35),            /* Last element */
38           03 first         fixed bin (35),            /* Entry transferring */
39           03 flags,
40              04 pad        bit (36) unal,
41        02 storing          like queue_element,        /* Current store */
42        02 store_file_pos   fixed bin (21),            /* Position is send */
43        02 fetching         like queue_element,        /* Current fetch */
44        02 fetch_file_pos   fixed bin (21),            /* Positin in fetch */
45        02 free_list        fixed bin (35),            /* Free entries in Q */
46        02 segment_size     fixed bin (35);            /* Records in segment */
47 
48 /* Queue element definition */
49 
50 dcl 01 queue_element       based,
51        02 next             fixed bin (35),            /* Next in Q */
52        02 multics_path     char (168),                /* Path on Multics */
53        02 pc_path          char (66),                 /* Drive:Path on PC */
54        02 time_id          fixed bin (71),            /* Time stamp id */
55        02 flags            like bft_queue_flags,      /* Entry switches */
56        02 mbz              bit (18);                  /* Word boundary size */
57 
58 /* We need the definitions for the queue flags */
59 
60 %include bft;
61 
62 /*  END INCLUDE FILE: bft_queue.incl.pl1                      *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */