1 /* START OF:        lib_descriptor_.incl.pl1                  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
  2 
  3           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
  4           /*                                                                                        */
  5           /* N^H__^Ha_^Hm_^He:  lib_descriptor_.incl.pl1                                                      */
  6           /*                                                                                        */
  7           /*      This include segment defines the structures which are included in the library     */
  8           /* descriptor segments used as data bases by Multics library maintenance tools.           */
  9           /*                                                                                        */
 10           /* S^H__^Ht_^Ha_^Ht_^Hu_^Hs                                                                                   */
 11           /*                                                                                        */
 12           /* 0) Created by:  G. C. Dixon  in  April, 1974.                                          */
 13           /* 1) Modified by: G. C. Dixon  in  May, 1976.                                            */
 14           /*                                                                                        */
 15           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 16 
 17      dcl  1 descriptor                  aligned based (P.descriptor),
 18                                                             /* structure which defines the location within    */
 19                                                             /*   the descriptor of description aggregates.    */
 20             2 version                   fixed bin,          /*    version number of this descriptor. (= 2)    */
 21             2 name                      char(32),           /*    name of this descriptor.                    */
 22             2 command_default_values,                       /*    aggregate:  default values to be used for   */
 23                                                             /*       commands which reference the descriptor. */
 24               3 O                       fixed bin(19),      /*       offset of aggregate from P.descriptor.   */
 25             2 roots,                                        /*    aggregate:  root nodes of the library.      */
 26               3 O                       fixed bin(19);      /*       offset of aggregate from P.descriptor.   */
 27      dcl  Vdescriptor_2                 fixed bin int static options(constant) init (2);
 28 ^L
 29      dcl  1 command_default_values      based (P.command_default_values),
 30                                                             /* array of structures which defines the          */
 31                                                             /*    default values which are applied to         */
 32                                                             /*    each command which uses the library         */
 33                                                             /*    descriptor.  There is one array element     */
 34                                                             /*    for each command.                           */
 35             2 N                         fixed bin,          /* count of commands.                             */
 36             2 group (0 refer (command_default_values.N)),   /* array of structures.                           */
 37               3 S                       unaligned,          /*    switches:                                   */
 38                 4 unsupported           bit(1),             /*       on if the command described by this      */
 39                                                             /*          element of the array of structures is */
 40                                                             /*          _^Hn_^Ho_^Ht supported by this descriptor.      */
 41               3 library_names,                              /*    names of the default libraries which are to */
 42                                                             /*       be used for this command, if the user    */
 43                                                             /*       omits the library name.                  */
 44                 4 O                     fixed bin(19),      /*       offset of the names structure.           */
 45               3 search_names,                               /*    star names which identify the library       */
 46                                                             /*       entries to be search for, if the user    */
 47                                                             /*       omits the search name.                   */
 48                 4 O                     fixed bin(19);      /*       offset of the names structure.           */
 49 
 50      dcl  1 library_names               based (Plibrary_names),
 51                                                             /* array of default library names for one command.*/
 52             2 N                         fixed bin,          /*   count of names.                              */
 53             2 group (0 refer (library_names.N)),            /*   array of names.                              */
 54               3 V                       char(32) aligned,   /*     a name.                                    */
 55               3 C                       fixed bin(35);      /*     code from check_star_name_$entry for name. */
 56 
 57      dcl  1 search_names                based (Psearch_names),
 58                                                             /* array of default search names for one command. */
 59             2 N                         fixed bin,          /*   count of names.                              */
 60             2 group (0 refer (search_names.N)),             /*   array of names.                              */
 61               3 V                       char(32) aligned,   /*     a name.                                    */
 62               3 C                       fixed bin(35);      /*     code from check_star_name_$entry for name. */
 63  ^L
 64 %include lib_commands_;
 65 ^L
 66      dcl  1 roots                       based (P.roots),    /* array of structures, each structure of which   */
 67                                                             /*    defines the names, absolute path name, type,*/
 68                                                             /*    and search procedure for a root of the      */
 69                                                             /*    library defined by this descriptor.         */
 70             2 N                         fixed bin,          /* count of roots                                 */
 71             2 root (0 refer (roots.N)),                     /* array of roots.                                */
 72               3 name,                                       /*    names by which this root may be referenced. */
 73                 4 O                     fixed bin(19),      /*       offset of name array.                    */
 74               3 path                    char(168) varying,  /*    absolute path name of the root directory or */
 75                                                             /*       archive segment.                         */
 76               3 type                    fixed bin,          /*    type of root.  2 = directory, 4 = archive.  */
 77               3 search_proc_name        char(65) varying,   /*    name of procedure used to search root.      */
 78               3 search_proc             entry (ptr, char(168) varying, ptr, bit(72) aligned, bit(36) aligned,
 79                                                fixed bin, fixed bin, ptr, entry,
 80                                                ptr, ptr, fixed bin(35)) variable;
 81                                                             /*    entry point of the program which knows how  */
 82                                                             /*       to search for library entries in this    */
 83                                                             /*       root.                                    */
 84 
 85      dcl  1 root_names                  based (Proot_names),
 86                                                             /* array of root names for one root.              */
 87             2 N                         fixed bin,          /*     count of names.                            */
 88             2 root_name (0 refer (root_names.N))            /*     array of names.                            */
 89                                         char(32);
 90 
 91      dcl  1 P                           aligned,            /* structure containing pointers to the aggregates*/
 92                                                             /*    defined above.                              */
 93             2 descriptor                ptr,
 94             2 command_default_values    ptr,
 95             2 roots                     ptr,
 96           Plibrary_names                ptr,
 97           Psearch_names                 ptr,
 98           Proot_names                   ptr;
 99 
100 /* END OF:          lib_descriptor_.incl.pl1                  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */