1 /* BEGIN: active_connection_list.incl.pl1 * * * * * */ 2 3 /****^ HISTORY COMMENTS: 4 1) change(85-04-01,Coren), approve(87-06-24,MCR7681), audit(87-03-26,GDixon), 5 install(87-08-04,MR12.1-1056): 6 Initial coding. 7 2) change(87-03-31,GDixon), approve(87-06-24,MCR7681), 8 audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1056): 9 A) Add CONNECTION_LIST_HASH_SIZE named constant. 10 B) Add initializer_of_list lock element to the table header. 11 C) Add force_accounting_flush_entry element to list entries. 12 3) change(87-05-13,Brunelle), approve(87-06-24,MCR7681), 13 audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1056): 14 Add .owner_group_id field. 15 END HISTORY COMMENTS */ 16 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 18 /* */ 19 /* This include file defines the inner-ring system-wide table of network */ 20 /* connections that have been assigned to user processes, either by login */ 21 /* servers or as a result of dial_out operations. This table is maintained */ 22 /* via gate entries: privileged ones, used by login servers, to add and */ 23 /* delete connections assigned to user processes; and by highly privileged */ 24 /* gates used by the Initializer to obtain connection data for all login */ 25 /* servers. */ 26 /* */ 27 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 28 29 dcl active_connection_list_ptr pointer; 30 dcl actl_hash_table_size fixed bin; 31 32 dcl 1 active_connection_list aligned based (active_connection_list_ptr), 33 2 header, 34 3 version char (8), /* "actlNNNN" */ 35 3 lock bit (36) aligned, /* to guard against simultaneous updates */ 36 3 initializer_of_list bit (36) aligned, /* lock ID of process which initialized the list. */ 37 3 no_of_connections fixed bin, 38 3 first_connection_offset bit (18), 39 3 last_connection_offset bit (18), 40 3 header_pad (7) fixed bin (35), 41 2 hash_table, 42 3 size fixed bin, 43 3 entries (actl_hash_table_size refer (active_connection_list.hash_table.size)) bit (18) unaligned, 44 2 connection_area area (connection_area_size); /* where connection entries are allocated */ 45 46 dcl connection_area_size fixed bin (18) unsigned; 47 48 dcl act_ptr pointer; 49 50 dcl 1 active_connection aligned based (act_ptr), 51 2 version char (8), /* "actNNNNN" */ 52 2 connection_name char (32), /* ID of the connection */ 53 2 service_type char (32), /* network service type of this connection */ 54 2 user_process_id bit (36) aligned, /* process to which this connection is assigned */ 55 2 user_group_id char (32), /* person.project.tag */ 56 2 owner_process_id bit (36) aligned, /* login server process, if any */ 57 2 owner_group_id char (32), /* person.project.tag */ 58 2 owner_terminate_event_channel fixed bin (71), /* to wake up owner on process termination */ 59 2 owner_initializer_id bit (72) aligned, /* for communicating with initializer on termination if owner is dead */ 60 2 force_disconnect_entry char (64), /* name of the entrypoint used to force disconnection */ 61 2 force_accounting_flush_entry char (64), /* name of the entrypoint used to force account update */ 62 2 connection_handle fixed bin (35), /* handle used in calling service entries */ 63 2 prev_connection bit (18) unaligned, /* offset of previous connection in list */ 64 2 next_connection bit (18) unaligned, /* offset of next connection in list */ 65 2 prev_hash bit (18) unaligned, /* offset of previous connection sharing hash table entry */ 66 2 next_hash bit (18) unaligned, /* offset of next connection sharing hash table entry */ 67 2 prev_connection_for_user bit (18) unaligned, /* offset of previous connection for this user */ 68 2 next_connection_for_user bit (18) unaligned, /* offset of next connection for this user */ 69 2 prev_connection_for_owner bit (18) unaligned, /* offset of previous connection for this owner */ 70 2 next_connection_for_owner bit (18) unaligned, /* offset of next connection for this owner */ 71 2 usage_type fixed bin, /* login, dial_out, etc. -- see ls_usage_types.incl.pl1 */ 72 2 flags, 73 3 delegated bit (1) unaligned, /* assigned to user by owner */ 74 3 mbz_bits bit (35) unaligned; 75 76 dcl ACTL_VERSION_1 char (8) internal static options (constant) initial ("actl0001"); 77 dcl ACT_VERSION_1 char (8) internal static options (constant) initial ("act00001"); 78 dcl ACT_HASH_TABLE_SIZE fixed bin int static options(constant) init(23); 79 /* This constant must be odd, to cause allocation */ 80 /* area to begin on a doubleword boundary. */ 81 82 83 /* END OF: active_connection_list.incl.pl1 * * * * * */