1 /*  START OF:       mbuild_info_.incl.pl1                     *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
  2 
  3 
  4 /****^  HISTORY COMMENTS:
  5   1) change(2019-08-17,GDixon), approve(2019-10-24,MCR10069),
  6      audit(2020-01-20,Swenson), install(2020-01-20,MR12.6g-0035):
  7      Declarations for the seg_type, paradigm, and mbuild thread names described
  8      by the data structures in mbuild_info_.cds.
  9                                                    END HISTORY COMMENTS */
 10 
 11 
 12           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
 13           /*                                                                                                */
 14           /* Name:  mbuild_info_.incl.pl1                                                                   */
 15           /*                                                                                                */
 16           /* Function:  declare structures to hold data which tailors operations of the mbuild subsystem.   */
 17           /*                                                                                                */
 18           /* Notes:                                                                                         */
 19           /*  The seg_types and bld_paradigms substructures may be displayed using the mbuild_type          */
 20           /*  command/active function.  The thread_selectors and thread_summary substructures are used      */
 21           /*  only within mbuild error messages and usage information messages.                             */
 22           /*                                                                                                */
 23           /*  Data populating these structures is defined in the mbuild_info_.cds file.                     */
 24           /*                                                                                                */
 25           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *   */
 26 
 27   dcl mbuild_info_$seg_types fixed bin external static;
 28 
 29   dcl 1 mbuild_info                    aligned based (addr (mbuild_info_$seg_types)),
 30         2 seg_types,
 31           3 segN                       fixed bin,
 32           3 seg_type_info              (0 refer (mbuild_info.seg_types.segN)),
 33             4 type_ID                  fixed bin,           /* numeric identifier for this seg_type array entry.      */
 34             4 source_starname          char (32) var,       /* e.g., **.pl1, **.incl.pl1, bound_*.**.s.archive        */
 35             4 description              char (60) var,       /* content of segs having this source_suffix.             */
 36             4 mbuild_type              char (20) var,       /* mbuild Seg(<type>) field value for this segment type.  */
 37             4 build_paradigm           fixed bin,           /* index of build/install paradigm for this source_suffix */
 38             4 compiler                 char (32) var,       /* name of compiler/translator for this seg (if any)      */
 39             4 default_compile_options  char (32) var,       /* options used when building to install in Multics libs. */
 40             4 intermediate_suffix      char (12) var,       /* suffix of intermediate file generated by compiler      */
 41             4 object_suffix            char (12) var,       /* suffix of seg generated by compiler                    */
 42             4 default_library          char (32) var,       /* default library which holds this type of file          */
 43                                                             /*  (used when adding new files).                         */
 44         2 bld_paradigms,
 45           3 paradigmN                  fixed bin,
 46           3 bld_paradigm_info          (0 refer (mbuild_info.bld_paradigms.paradigmN)),
 47             4 name                     char(32) var,        /* ex: compile, source_x_only, ...                        */
 48                                                             /*  Names never contain periods or spaces.                */
 49             4 purpose                  char(76) var,        /* what does this build_type do.                          */
 50             4 examples                 char(70) var,        /* typical seg types using this paradigm.                 */
 51             4 steps                    char(1600) var,      /* steps involved in paradigm                             */
 52 
 53         2 thread_selectors,
 54           3 selectorN,
 55           3 selector_info              (0 refer (mbuild_info.thread_selectors.selectorN)),
 56             4 sel_ID                   char(16) var,        /* selector ID string                                     */
 57             4 sel_value                fixed bin,           /* selector value: one of the following constants:        */
 58         2 thread_summary,
 59           3 summaryN fixed bin,
 60           3 selector_summary           (0 refer (mbuild_info.thread_summary.summaryN)) char(32) var;
 61                                                             /* Summary of sel_ID possible values for error msg.       */
 62 
 63   dcl (PDM_source                      init(1),             /* Compile, schedule bind, if part of bound seg;          */
 64                                                             /*  otherwise, install in ldd and x dirs.                 */
 65        PDM_bindfile                    init(2),             /* Bind instructions, only found in bound obj archive.    */
 66                                                             /*  (ex: bound_pl1_.bind)                                 */
 67        PDM_source_arch                 init(3),             /* No compile, just install in ldd source dir.            */
 68                                                             /*  (ex: bound_pl1_.**.s.archive)                         */
 69        PDM_object_arch                 init(4),             /* Bind a bound seg; install source/object archives in    */
 70                                                             /*  ldd; install bound object in x dir.                   */
 71        PDM_Bound_obj                   init(5),             /* Install executable bound segment in x dir.             */
 72                                                             /*  (ex: bound_pl1_)                                      */
 73        PDM_Unbound_obj                 init(6),             /* Install unbound object in x dir.                       */
 74                                                             /*  (ex: hcs_ compiled from hcs_.alm)                     */
 75        PDM_target_only                 init(7),             /* No compiles; just install in target dir.               */
 76                                                             /*  (ex: info segs, include files, bound_xxx_.s.archive)  */
 77        PDM_listing                     init(8),             /* No compiles; just install in listing.                  */
 78                                                             /*  (ex: pl1.list, probe.list, hcs_.list)                 */
 79        PDM_source_x_only               init(9),             /* No compile, just install in ldd source and x dirs.     */
 80                                                             /*  (ex: admin.ec, >ldd>unb>s>tss_basic_::*.basic)        */
 81        PDM_object_x_only               init(10),            /* No compile or archive; install in ldd object and x.    */
 82                                                             /*  (ex: TTF.ttf, pl1.dcl)                                */
 83        PDM_mbuild_support              init(11),            /* No compile or archive or install; support file created */
 84                                                             /*  or used by the mbuild subsystem.                      */
 85                                                             /*  (ex: MCR10056.mb, MCR10056.mb.il)                     */
 86 
 87        SEG_INTERMEDIATE                init(12),            /* Seg-specific thread types.                             */
 88        SEG_scan                        init(13),
 89 
 90        STRUCT_BOUNDOBJ                 init(14),            /* Per-Structure thread types.                            */
 91        STRUCT_COMPILE                  init(15),
 92        STRUCT_Seg                      init(16),
 93        STRUCT_UNBOUNDOBJ               init(17)
 94          ) fixed bin int static options(constant);
 95 
 96   dcl 1 segt aligned like mbuild_info.seg_types.seg_type_info based(segtP),
 97        segtP ptr;
 98 
 99   dcl 1 pdm aligned like mbuild_info.bld_paradigms.bld_paradigm_info based(pdmP);
100   dcl  pdmP ptr;
101 
102   dcl 1 seg_type_switches aligned,                          /* Switches to select structure elements for display.     */
103         2 (source_starnameS,
104            descriptionS,
105            mbuild_typeS,
106            build_paradigmS,
107            build_stepsS,
108            compilerS,
109            default_compile_optionsS,
110            intermediate_suffixS,
111            object_suffixS,
112            default_libraryS
113            ) bit(1) unaligned,
114         2  pad bit(26) unaligned;
115 
116   dcl 1 bld_paradigm_switches aligned,                      /* Switches to select structure elements for display.     */
117         2 (nameS,
118            purposeS,
119            examplesS,
120            stepsS
121            ) bit(1) unaligned,
122         2  pad bit(32) unaligned;
123 
124 
125 /* ----------------------------------------------------------------------
126    Threads anchored in build_data structure (see mbuild_data_.incl.pl1):
127 
128     build_data.XXX_Tb   Structure      Selector ID            Purpose
129      XXX can be
130     -----------------  ------------   ----------------       --------------------
131      BOUNDOBJ          BOUNDOBJ       BOUNDOBJ, BND          All BOUNDOBJ structures.
132      COMPILE           COMPILE        COMPILE, COMP          All COMPILE structures.
133      UNBOUNDOBJ        UNBOUNDOBJ     UNBOUNDOBJ, UNBND      All UNBOUNDOBJ structures.
134      Seg               Seg            Seg, seg               All Seg structures.
135 
136      Unbound_obj       Seg            Unbound_obj, Unb       All Seg(Unbound_obj) structures.
137      Bound_obj         Seg            Bound_obj, Bnd         All Seg(Bound_obj) structures.
138      bindfile          Seg            bindfile, bind         All Seg(bindfile) structures.
139      object_arch       Seg            object_arch, oArch     All Seg(object_arch) structures.
140      source_arch       Seg            source_arch, sArch     All Seg(source_arch) structures.
141      source            Seg            source, src            All Seg(source) structures, except intermediate sources.
142      listing           Seg            listing, list          All Seg(listing) structures.
143      mbuild_support    Seg            support, sup           All Seg(Build_xxx) structures.
144      target_only       Seg            target_only, target    All Seg(...) structures except those above.
145      object_x_only     Seg            object_x, o.x          All Seg(...) structures for object_x paradigm segs.
146 
147      scan              Seg            scan                   Segments found in install dir before building; never cleaned!
148      INTERMEDIATE      Seg            INTERMEDIATE, inter    Some Seg(source) structures that aren't installed.
149    ---------------------------------------------------------------------- */
150 
151 /*  END OF:         mbuild_info_.incl.pl1                     *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */