1 /* Begin include file ... system_link_init_info.incl.pl1 ... 5/6/80 MRJ */
  2 
  3 
  4 
  5 /****^  HISTORY COMMENTS:
  6   1) change(86-05-02,Elhard), approve(86-05-02,MCR7391),
  7      audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222):
  8      Modified to declare DEFERRED_INIT type constant.
  9   2) change(86-06-24,DGHowe), approve(86-06-24,MCR7420), audit(86-11-12,Zwick),
 10      install(86-11-20,MR12.0-1222):
 11      added the external pointer initialization structure and the constants
 12      required to use them.
 13                                                    END HISTORY COMMENTS */
 14 
 15 
 16 /* Modified: 82-11-17 by T. Oke to add list_init_info and LIST_TEMPLATE_INIT. */
 17 
 18 /* format: style3,idind25 */
 19 
 20 /* NOTE --------------------------------------------------
 21    the following structures defining initialization information can also
 22    be found in fortran_storage.incl.pl1  definition_dcls.incl.pl1
 23    and should be kept equivalent
 24    -------------------------------------------------------
 25 */
 26 
 27 dcl       init_info_ptr            ptr;                     /* ptr to structure below */
 28 dcl       init_size                fixed bin (35);          /* size (in words) of initialization template */
 29 
 30 dcl       1 init_info              aligned based (init_info_ptr),
 31             2 size                 fixed bin (35),          /* size (in words) of data */
 32             2 type                 fixed bin,               /* type of initialization: see below */
 33             2 init_template        (init_size refer (init_info.size)) fixed bin (35);
 34 
 35 dcl       1 init_info_single_word  aligned based (init_info_ptr),
 36                                                             /* for convenience of people like ssi */
 37             2 size                 fixed bin (19),          /* = 1 */
 38             2 type                 fixed bin,               /* = TEMPLATE_INIT */
 39             2 init_template        (1) fixed bin (35);      /* = value */
 40 
 41 dcl       1 list_init_info         aligned based,
 42             2 size                 fixed bin (35),          /* length of variable */
 43             2 type                 fixed bin,               /* LIST_TEMPLATE_INIT */
 44             2 pad                  bit (18) unaligned,
 45             2 list_size            fixed bin (18) unsigned unaligned,
 46                                                             /* size in words of template */
 47             2 template             (0 refer (list_init_info.list_size)) bit (36);
 48                                                             /* first create_entry position */
 49 
 50 /* A list template consists of a series of entries with the following
 51    description, concatenated together.  n_bits and datum are bit items,
 52    to permit a wide range of inputs.
 53 
 54    1.  A 'repeat' of '0' signifies skipping of 'n_bits' bits.
 55    2.  A 'n_bits' of '0' signifies the last item of the list.
 56 
 57    COMMON, VLA's, and LA's are presumed to start at the base pointer
 58    of their particular storage section. */
 59 
 60 dcl       1 list_template_entry    aligned based,
 61             2 n_bits               fixed bin (35) aligned,  /* size of datum */
 62             2 mbz                  bit (3) unaligned,       /* future expansion */
 63             2 init_type            fixed bin (3) unsigned unaligned, /* 0 normal init, 1 ptr init, 2 packed ptr init */
 64             2 repeat               fixed bin (30) unsigned unaligned,
 65                                                             /* number of times to repeat datum */
 66             2 datum                bit (init_n_bits_in_datum refer (list_template_entry.n_bits));
 67 
 68 /* list_template_entry_ptr is defined such that it can be used as an
 69    automatic definition overlay with a fixed size datum. it has a declared
 70    size of 72 to allow for the its pointer sixe of 72 bits.
 71 */
 72 
 73 dcl       1 list_template_entry_ptr     aligned based,
 74             2 n_bits               fixed bin (35) aligned,
 75             2 mbz                  bit(3) unaligned,
 76             2 init_type            fixed bin (3) unsigned unaligned,
 77             2 repeat               fixed bin (30) unsigned unaligned,
 78             2 datum                bit(72);
 79 
 80 /* the pointer_init_template represents the initialization information
 81    for ITS and packed pointers.  Both pointer types require the entire
 82    72 bit structure.
 83 */
 84 
 85 dcl       1 pointer_init_template  based,
 86             2 ptr_type             fixed bin (18) unsigned unaligned,  /* 0 text section, 1 linkage section, 2 static section */
 87             2 section_offset       fixed bin (18) unsigned unaligned,  /* offset to item in specified section */
 88             2 word_offset          fixed bin (18) unsigned unaligned,  /* word offset from section item to target */
 89             2 mbz                  bit (12) unaligned,
 90             2 bit_offset           fixed bin (6) unsigned unaligned;   /* bit offset from section item|word offset to target */
 91 
 92 
 93 dcl       init_n_bits_in_datum     fixed bin (35);
 94 
 95 dcl       NO_INIT                  fixed bin static options (constant) init (0);
 96 dcl       TEMPLATE_INIT            fixed bin static options (constant) init (3);
 97 dcl       EMPTY_AREA_INIT          fixed bin static options (constant) init (4);
 98 dcl       LIST_TEMPLATE_INIT       fixed bin static options (constant) init (5);
 99 dcl       INIT_DEFERRED            fixed bin static options (constant) init (6);
100 dcl       ITS_PTR_INIT             fixed bin (3) unsigned static options (constant) init(1);
101 dcl       PACKED_PTR_INIT          fixed bin (3) unsigned static options (constant) init(2);
102 dcl       PTR_INIT_TEXT            fixed bin (17) static options (constant) init(0);
103 dcl       PTR_INIT_LOT             fixed bin (17) static options (constant) init(1);
104 dcl       PTR_INIT_ISOT            fixed bin (17) static options (constant) init(2);
105 
106 
107 /* End include file ... system_link_init_info.incl.pl1 */