1 /* BEGIN include file fortran_storage.incl.pl1 */ 2 3 /* Created 82-09-21 by T. Oke (UNCA) */ 4 5 /* Modification History: 6 7 Modified: 1 October 1982, TO - add pointer_count and pointer entries. 8 Modified: 9 November 1982, TO - Move pointer_count, add common_link. 9 */ 10 11 /* Definitions of the structures controlling the creation of and initialization 12 lists for fortran_storage_driver. */ 13 14 /* For VLA entries there may be a number of pointers, each of which points to a 15 single VLA entity within the VLA. Each such pointer supplies an offset and 16 is stored by 'fortran_storage_'. 17 18 For VLA COMMON, there is a pointer to the link in the linkage section. The 19 unsnapped link (which is in the template linkage section) supplies an offset 20 to find the expression_word in the definition section, which offsets to the 21 type_pair, which supplies the initialization information. */ 22 23 dcl 1 create_entry based, /* creation list entry */ 24 2 location fixed bin (18) unsigned unaligned, /* location of base */ 25 2 flags unaligned structure, 26 3 auto bit (1) unaligned, /* automatic storage entry */ 27 3 static bit (1) unaligned, /* static storage entry */ 28 3 common bit (1) unaligned, /* common storage entry */ 29 3 LA bit (1) unaligned, /* Large Array (255K) */ 30 3 VLA bit (1) unaligned, /* Very Large Array (>255K) */ 31 3 K256 bit (1) unaligned, /* alloc 256K segs */ 32 3 init bit (1) unaligned, /* initialized */ 33 3 pad bit (2) unaligned, /* FUTURE EXPANSION */ 34 3 pointer_count fixed bin (9) unsigned unaligned, /* number of pointers to fill in */ 35 2 length fixed bin (24) aligned, /* number of words required */ 36 2 next fixed bin (18) unsigned unaligned, /* offset to next create entry */ 37 2 name_length fixed bin (17) unaligned, /* size of block name field */ 38 2 common_link fixed bin (18) unsigned unaligned, /* location of link if COMMON */ 39 40 2 block_name char (0 refer (create_entry.name_length)), 41 2 pointer_offsets (0 refer (create_entry.pointer_count)) aligned, 42 3 pad bit (12) unaligned, 43 3 offset fixed bin (24) unsigned unaligned; 44 45 /* Pointers will be created for each VLA sub-entity, so the pointer_count field 46 indicates how many pointers follow the block_name. */ 47 48 49 50 51 /* Initialization data. The length and datum are bit items, to permit a wide 52 range of inputs. 53 54 1. A 'repeat' of '0' signifies skipping of 'length' bits. 55 2. A 'length' 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 of their 58 particular storage section. */ 59 60 61 dcl 1 create_init_entry based, 62 2 length fixed bin (35) aligned, /* size of datum */ 63 2 pad bit (6) unaligned, /* FUTURE EXPANSION */ 64 2 repeat fixed bin (30) unsigned unaligned, /* number of times to repeat datum */ 65 2 datum bit (0 refer (create_init_entry.length)); 66 67 68 /* END include file fortran_storage.incl.pl1 */