COMPILATION LISTING OF SEGMENT ncp_access_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/02/84 1318.1 mst Mon Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 ncp_access_: 12 procedure (); 13 14 /* "ncp_access_" -- this module contains the routines used for */ 15 /* controlling allowable communications for network connections. This */ 16 /* includes control of Multics processes and control of foreign hosts. */ 17 18 /* Originally coded by E. W. Meyer. */ 19 /* Modified by D. M. Wells for conversion to Version II PL/I. */ 20 /* Modified by D. M. Wells, Summer, 1975, while redo-ing large */ 21 /* parts of the NCP. */ 22 /* Modified by D. M. Wells, August 1977, to try to always unassign */ 23 /* IMPDIM links and to use clock builtin. */ 24 25 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 26 27 declare 28 (P_wakeup_type fixed binary (1), 29 P_new_state fixed binary (6), 30 P_host_number fixed binary (16), 31 P_error_code fixed binary (35), 32 P_proc_info_ptr pointer, /* pointer to this process's proc_tbl slot */ 33 P_sock_ptr pointer) 34 parameter; 35 36 /* * * * * AUTOMATIC STORAGE DECLARATIONS * * * */ 37 38 declare 39 ((byte_size, link_num) fixed binary (8), 40 (host_code, host_num) fixed binary (16), 41 (host_tb_index, link_indx) fixed binary (17), 42 (i, j, nidx) fixed binary (17), 43 icode fixed binary (35), 44 event_msg fixed binary (71), 45 status bit (18), 46 lock_id bit (36) aligned, 47 procid bit (36) aligned, 48 lsoct bit (64), 49 lockp pointer, 50 socket_ptr pointer, 51 host_ptr pointer, 52 (gpr, hpr, mpr, npr, procp, spr) pointer) 53 automatic; 54 55 declare 56 1 hostaddr like host_address aligned automatic; /* Decomposable host address */ 57 declare 58 1 ctl_mess automatic, /* space for outgoing messages */ 59 2 com_code bit (8) unaligned, /* Host-to-Host command */ 60 2 arg (1) bit (8) unaligned; 61 62 /* * * * * TEXT SECTION REFERENCES * * * * * * * */ 63 64 /* * * * * BASED & TEMPLATE DECLARATIONS * * * * */ 65 66 declare 67 (based_bits bit (9437184), 68 based_char8 character (8)) 69 based; 70 71 declare 72 1 socket_array (1) aligned based like socket; 73 74 declare 75 1 host_array (1) aligned based like host; 76 77 /* * * * * EXTERNAL STATIC DECLARATIONS * * * * */ 78 79 declare 80 ncp_tables_$tracing_info bit (36) aligned 81 external static; 82 83 declare 84 (ncp_tables_$host_tbl, 85 ncp_tables_$meter_cells, 86 ncp_tables_$ncp_data, 87 ncp_tables_$socket_tbl) 88 external static; 89 90 declare 91 (error_table_$bad_index, 92 error_table_$bad_processid, 93 error_table_$bad_ring_brackets, 94 error_table_$invalid_lock_reset, 95 error_table_$net_fhost_inactive, 96 error_table_$net_invalid_state, 97 error_table_$net_table_space, 98 error_table_$notalloc) 99 fixed binary (35) external static; 100 101 /* * * * * ENTRY & PROCEDURE DECLARATIONS * * * */ 102 103 declare 104 imp_attach_read constant entry (fixed bin (8), fixed bin (16), fixed bin (8), fixed bin (8), bit (36) aligned, fixed bin (71), fixed bin (17), fixed bin (35)), 105 imp_attach_write constant entry (fixed bin (8), fixed bin (16), fixed bin (8), fixed bin (8), bit (36) aligned, fixed bin (71), fixed bin (17), fixed bin (35)), 106 imp_detach_read constant entry (fixed bin (17), fixed bin (35)), 107 imp_detach_write constant entry (fixed bin (17), fixed bin (35)), 108 imp_reattach_read constant entry (fixed bin (17), fixed bin (71), bit (36) aligned, fixed bin (35)), 109 imp_reattach_write constant entry (fixed bin (17), fixed bin (71), bit (36) aligned, fixed bin (35)), 110 imp_read_order constant entry (fixed bin (17), fixed bin (12), ptr, bit (18), fixed bin (35)), 111 imp_write_order constant entry (fixed bin (17), fixed bin (12), ptr, bit (18), fixed bin (35)), 112 level$get constant entry () returns (fixed bin (3)), 113 ncp_error_ constant entry (fixed bin (35), char (*)), 114 ncp_error_$croggle_socket constant entry (ptr, fixed bin (2), fixed bin (35)), 115 ncp_lock_$lock_unlock constant entry (ptr, fixed bin (35)), 116 ncp_lock_$lock_wait constant entry (ptr, fixed bin (35)), 117 ncp_lock_$verify_lock constant entry (ptr, fixed bin (35)), 118 ncp_trace_ constant entry options (variable), 119 ncp_util_$find_host_entry constant entry (fixed bin (16), bit (1), ptr, fixed bin (35)), 120 ncp_util_$send_control_message constant entry (ptr, ptr, fixed bin (24), fixed bin (35)), 121 pxss$wakeup_int constant entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 122 123 declare 124 (addr, binary, bit, clock, dimension, index, mod, null, string, substr) 125 builtin; 126 127 /* * * * * INCLUDE FILES * * * * * * * * * * * * */ 128 129 1 2 /* BEGIN INCLUDE FILE imp_orders.incl.pl1 */ 1 3 1 4 /* This include file declares the special order codes accepted by */ 1 5 /* the IMP DIM. */ 1 6 1 7 /* Originally created by D. M. Wells, September, 1977. */ 1 8 1 9 declare 1 10 (IMP_ORDER_abort_transfer initial (1), /* flush buffered data */ 1 11 IMP_ORDER_multiple_message_mode initial (2), /* pack messages together if possible */ 1 12 IMP_ORDER_single_message_mode initial (3), /* don't pack messages together */ 1 13 IMP_ORDER_get_status initial (4), /* return status of link and host */ 1 14 IMP_ORDER_no_ncp initial (5), /* the NCP isn't using this link */ 1 15 IMP_ORDER_imp_ascii initial (6), /* messages for IMP's TTY */ 1 16 IMP_ORDER_control_link initial (7), /* this is NCP's control link */ 1 17 IMP_ORDER_clear_host_state initial (8), /* clear stae of foreign host and IMP */ 1 18 IMP_ORDER_block_link initial (9), /* stop transferring data on link */ 1 19 IMP_ORDER_unblock_link initial (10), /* start transferring data on link */ 1 20 IMP_ORDER_imp_octal initial (11), /* message is for IMP's TTY (octal) */ 1 21 IMP_ORDER_normal_leader initial (12), /* messages for foreign host again */ 1 22 IMP_ORDER_pgqlrr initial (13), /* put on global queue when get RFNM */ 1 23 IMP_ORDER_clear_pgqlrr initial (14), /* clear flag to pgqlrr */ 1 24 IMP_ORDER_set_byte_size initial (15), /* setthe link's bytesize */ 1 25 IMP_ORDER_get_byte_size initial (16), /* get the link's bytesize */ 1 26 IMP_ORDER_get_allocation_status initial (17)) /* get status and include allocations */ 1 27 fixed binary (12) internal static options (constant); 1 28 1 29 /* END INCLUDE FILE imp_orders.incl.pl1 */ 1 30 129 130 2 2 /* BEGIN include file "ncp_connection_dcls.incl.pl1" -- */ 2 3 2 4 /* This include file contains declarations for the structures */ 2 5 /* maintained by the NCP which contain information about Host-Host */ 2 6 /* connections. Currently, this is the information about sockets, */ 2 7 /* hosts, and requests-for-connection. */ 2 8 2 9 /* Originally created by D. M. Wells, Summer, 1975. */ 2 10 /* Modified by B. Greenberg, Spring '78 for new leader support */ 2 11 /* Modified by C. Hornig, July 1979 for new host number format */ 2 12 2 13 declare 2 14 1 socket aligned based, /* information we keep on a per-socket basis */ 2 15 2 event_channel fixed binary (71), /* event channel of using process */ 2 16 2 overseer_event_channel fixed binary (71), /* event chanel of overseer process */ 2 17 2 lock bit (36) aligned, /* lock to prevent simultaneous updating */ 2 18 2 process_id bit (36) aligned, /* process id of using process */ 2 19 2 overseer_process_id bit (36) aligned, /* process id of overseer process */ 2 20 2 bit_allocation fixed binary (32), /* bit allocation outstanding on attached link */ 2 21 2 msg_allocation fixed binary (16), /* message allocation outstanding on link */ 2 22 2 23 2 local_socket unaligned like socket.foreign_socket, /* identification of local socket */ 2 24 2 foreign_socket unaligned, /* identification of foreign socket */ 2 25 3 host, /* id of this host */ 2 26 4 net bit (8), /* network id */ 2 27 4 host bit (8), /* port on imp */ 2 28 4 imp bit (16), /* imp id */ 2 29 3 socket_num bit (32), /* actual socket number */ 2 30 3 pad bit (8), 2 31 2 32 2 rfc_queue fixed binary (17) unaligned, /* RFC table index of next block for this */ 2 33 /* socket, 0 if queue is empty */ 2 34 2 link_number fixed binary (17) unaligned, /* number of link assigned for connection */ 2 35 2 36 2 host_entry_index fixed binary (17) unaligned, /* index in host table of foreign */ 2 37 /* host involved in connection */ 2 38 2 impdim_index fixed binary (17) unaligned, /* index by which IMPDIM knows about connection */ 2 39 2 state bit (6) unaligned, /* finite-state-machine information */ 2 40 2 byte_size bit (8) unaligned, /* byte-size of connections */ 2 41 2 send_gender bit (1) unaligned, /* on iff this is a transmit socket */ 2 42 2 allow_interrupts bit (1) unaligned, /* on iff INS and INR should be signalled to user */ 2 43 2 deactivate bit (1) unaligned, /* on iff this socket should be deactivated when */ 2 44 /* matching network messages are finally received */ 2 45 2 allow_rfc_queuing bit (1) unaligned, /* on iff we should allow multiple outstanding */ 2 46 /* RFC's for this socket */ 2 47 2 extra_bits bit (12) unaligned, 2 48 2 49 2 overseer_validation_level bit (3) unaligned, /* ring of highest overseer control */ 2 50 2 validation_level bit (3) unaligned, /* ring of highest operator control */ 2 51 2 52 2 overseer_lock_id bit (36) aligned, /* lock id of the overseer process */ 2 53 2 umodes bit (36) aligned, /* 36 bits that the users can play with */ 2 54 2 time_state_changed fixed binary (71), /* time that the socket state last changed */ 2 55 2 signal_event_channel fixed binary (71), /* chanel to signal over when get INS or INR */ 2 56 2 socket_index bit (36) aligned, /* the handle we gave user for future reference */ 2 57 2 history aligned, /* state of socket over recent past history */ 2 58 3 num_state_changes fixed binary (11) unaligned, /* small field, so only keep mod */ 2 59 3 prev_state (0 : 3) fixed binary (5) unaligned; /* past N states, kept in rotation */ 2 60 2 61 declare 2 62 1 host aligned based, /* information we retain about a foreign host */ 2 63 2 lock bit (36) aligned, /* lock to prevent simultaneous updating */ 2 64 2 rcv_link_index fixed binary (17) unaligned, /* impdim index of read link for control msgs */ 2 65 2 xmit_link_index fixed binary (17) unaligned, /* impdim index of write link for control msgs */ 2 66 2 read_links_assigned bit (32) unaligned, /* a bit is on iff we have assigned that link */ 2 67 2 read_link_padd bit (4) unaligned, 2 68 2 xhost_number_pad bit (9) unaligned, 2 69 2 host_state bit (6) unaligned, /* stae of communications with this host */ 2 70 2 previous_host_state bit (6) unaligned, /* last state of this host */ 2 71 2 state_pad bit (15) unaligned, 2 72 2 time_state_changed fixed binary (71), /* time when host state last changed */ 2 73 2 read_links_used bit (32) unaligned, /* bit is on if link has been used "recently" */ 2 74 2 read_link_used_pad bit (4) unaligned, 2 75 2 num_connections fixed binary (17) unaligned, /* times we attached links for this host */ 2 76 2 hash_index fixed binary (17) unaligned, /* table index of this host entry */ 2 77 2 host_number fixed bin (32) aligned, /* host number of this host */ 2 78 2 host_number_pad fixed bin (35); 2 79 2 80 declare 2 81 1 rcvd_rfc aligned based, /* info about a rcvd Request for Connection */ 2 82 2 foreign_socket unaligned like socket.foreign_socket, /* foreign socket in RFC msg */ 2 83 2 foreign_hosts_choice fixed binary (17) unaligned, /* link or size that other host chose */ 2 84 2 next_entry fixed binary (17) unaligned, /* next RFC entry in queue for socket */ 2 85 2 padding (1) fixed binary (35); 2 86 2 87 declare 2 88 1 host_address based aligned, /* Form of a host address */ 2 89 2 net bit (8) unaligned, /* Netwwork ID */ 2 90 2 host bit (8) unaligned, /* Host Port */ 2 91 2 imp bit (16) unaligned; /* IMP ID */ 2 92 /* Duplicated because of PL/I multi-like restriction */ 2 93 2 94 /* END of include file ncp_connection_dcls.incl.pl1 */ 2 95 130 131 3 2 /* "ncp_constants_dcls.incl.pl1" -- include file to */ 3 3 /* declare some constants used throughout the Multics Network */ 3 4 /* Control Program (NCP). */ 3 5 3 6 /* Originally created by D. M. Wells, 1975, May 19. */ 3 7 3 8 declare 3 9 (NCP_DOWN initial (0), /* the NCP has been shutdown normally */ 3 10 NCP_UP_IMP_DOWN initial (1), /* the NCP is up, but the IMP is unreachable */ 3 11 NCP_UP initial (2), /* the NCP is up and running normally */ 3 12 NCP_CRASHED initial (-1)) /* the NCP has crashed itself */ 3 13 fixed binary (3) internal static options (constant); 3 14 3 15 declare 3 16 (READ_GENDER initial ("0"b), /* Read sockets are even numbers */ 3 17 WRITE_GENDER initial ("1"b)) /* Write sockets ar odd numbers */ 3 18 bit (1) internal static options (constant); 3 19 3 20 declare 3 21 (HOST_OFF initial (0), /* this host is not enabled for communications */ 3 22 HOST_UP initial (1), /* Host is up and everything ok */ 3 23 HOST_RST initial (2), /* a Host-Host RST command has been sent */ 3 24 HOST_DOWN initial (3), /* Foreign host is down */ 3 25 HOST_ON initial (4)) /* Foreign host is enabled, but not RST yet */ 3 26 fixed binary (6) internal static options (constant); 3 27 3 28 declare 3 29 (SOCK_UNASSIGNED initial (0), /* This socket entry is not in use currently */ 3 30 SOCK_ASSIGNED initial (1), /* Socket has been assigned and is quiescent */ 3 31 SOCK_LISTENING initial (2), /* Socket is listening for incoming-RFCs */ 3 32 SOCK_RFC_RCVD initial (3), /* Socket has received RFC from foreign socket */ 3 33 SOCK_RFC_ABORTED initial (4), /* CLS received for unacknowledged RFC */ 3 34 SOCK_RFC_SENT initial (5), /* RFC sent to foreign socket, but no reply */ 3 35 SOCK_CONNECTED initial (6), /* Socket is connected to foreign socket */ 3 36 SOCK_CLS_WAIT initial (7), /* CLS issued, waiting for reply CLS */ 3 37 /* State 8 is not currently defined */ 3 38 SOCK_DATA_WAIT initial (9), /* User requested close, but data still here */ 3 39 SOCK_RFNM_WAIT initial (10), /* User requested close, but waiting on last RFNM */ 3 40 SOCK_CLS_READ initial (11), /* CLS received, but data still in buffers */ 3 41 /* State 12 is not currently defined */ 3 42 SOCK_BROKEN initial (13), /* Socket has been involved in some NCP anomaly */ 3 43 SOCK_RESET initial (14)) /* Socket was connected to host that was reset */ 3 44 fixed binary (6) internal static options (constant); 3 45 3 46 declare 3 47 (SOCK_INDX_MASK initial ("000000777777"b3), /* mask to get out actual array index */ 3 48 SOCK_UNIQUE_MASK initial ("377777000000"b3)) /* mask to get out incrementing part of indx */ 3 49 bit (36) internal static options (constant); 3 50 3 51 declare 3 52 (ANY_TRACING initial ("400000000000"b3), /* if any tracing is occurring */ 3 53 PRINTER_TRACING initial ("200000000000"b3), /* if tracing to the ptr is happening */ 3 54 SYSERR_LOG_TRACING initial ("100000000000"b3), /* if tracing to syserr log mechanism */ 3 55 3 56 TRACE_CTL_MSGS initial ("004000000000"b3), /* if host-host ctl msgs should be trcd */ 3 57 TRACE_PROCESS_INFO initial ("002000000000"b3), /* if process control should be trcd */ 3 58 TRACE_DATA_FLOW initial ("001000000000"b3), /* if flow of user data to be traced */ 3 59 3 60 TRACE_NCP_RING initial ("000400000000"b3), /* if ncp_ring_ should be traced */ 3 61 TRACE_NCP_ACCESS initial ("000200000000"b3), /* if ncp_access_ should be traced */ 3 62 TRACE_NCP_DAEMON initial ("000100000000"b3), /* if ncp_daemon_ should be traced */ 3 63 TRACE_NCP_CONTROL initial ("000040000000"b3), /* if ncp_control_ should be traced */ 3 64 TRACE_NCP_TBOP initial ("000020000000"b3), /* if ncp_tbop_ should be traced */ 3 65 TRACE_NCP_IO initial ("000010000000"b3)) /* if ncp_io_ should be traced */ 3 66 bit (36) aligned internal static options (constant); 3 67 3 68 /* end of include file "ncp_constants_dcls.incl.pl1 */ 3 69 131 132 4 2 /* BEGIN include file ncp_data_dcls.incl.pl1 -- */ 4 3 4 4 /* This include file contains declarations of structures kept */ 4 5 /* in the NCP data base which aren't associated directly with */ 4 6 /* Network connections or process control. */ 4 7 4 8 /* Originally created by D. M. Wells, Jan., 1976 by altering a */ 4 9 /* previously existing include file. */ 4 10 declare 4 11 1 ncp_dt aligned based, /* Information about global state of NCP */ 4 12 2 ncp_ev_chan fixed binary (71), /* event channel id of NCP Daemon process */ 4 13 2 ncp_procid bit (36), /* process id of NCP Daemon process */ 4 14 2 ncp_up fixed binary (2), /* -1 crashed, 0 uninit, 1 imp down, 2 up */ 4 15 2 htbl_size fixed binary (17), /* max size of host table in entries */ 4 16 2 rtbl_size fixed binary (17), /* max size of RFC table in entries */ 4 17 2 stbl_size fixed binary (17), /* max size of socket table in entries */ 4 18 2 size_pad fixed binary (17), 4 19 4 20 2 htbl_gent fixed binary (17), /* max host entry used */ 4 21 2 rtbl_gent fixed binary (17), /* max RFC entry used */ 4 22 2 stbl_gent fixed binary (17), /* max socket entry used */ 4 23 2 gent_pad fixed binary (17), 4 24 4 25 2 htbl_lock bit (36) aligned, /* lock for host table */ 4 26 2 rtbl_lock bit (36) aligned, /* lock for RFC table */ 4 27 2 stbl_lock bit (36) aligned, /* lock for socket table */ 4 28 2 lock_pad bit (36) aligned, 4 29 4 30 2 state_change_reason character (32) unaligned, /* reason for last state change */ 4 31 4 32 2 ncp_devx fixed binary (12), /* IOAM devx of NCP pseudo-device */ 4 33 2 ncp_state_changes fixed binary (17), /* number of times NCP has changed state */ 4 34 2 spacen1 (14) fixed fixed binary (35), 4 35 4 36 2 host_id fixed binary (32), /* network identifier of this Multics System */ 4 37 2 crash_on_ncp_error bit (1) aligned, /* on if should crash to trap ncp error */ 4 38 2 imp_state char (8) aligned, 4 39 2 time_imp_state_changed fixed binary (71), 4 40 2 time_ncp_state_changed fixed binary (71), 4 41 4 42 2 imp_special_message bit (32), 4 43 2 imp_state_change_count fixed binary (17), 4 44 2 spacen3 (3) fixed binary (17), 4 45 2 ptbl_size fixed binary (17), /* number of entries in process table */ 4 46 2 ptbl_gent fixed binary (17), /* index of highest slot in use */ 4 47 2 ptbl_lock bit (36) aligned, /* lock word for "proc_tb" */ 4 48 4 49 2 access_dirname character (168) unaligned, /* dir of access defining segment */ 4 50 2 access_ename character (32) unaligned; /* entry of access defining segment */ 4 51 4 52 declare 4 53 1 meter_dt aligned based, /* various meters kept by the NCP */ 4 54 2 prev_user_call_time fixed binary (71), 4 55 2 prev_daemon_call_time fixed binary (71), 4 56 2 accu_time_in_ncp fixed binary (71), 4 57 2 accu_time_since_user_call fixed binary (71), 4 58 4 59 2 nprocs_in_ncp fixed binary (17), 4 60 2 nprocs_inconsistent bit (1), 4 61 2 ndaemon_calls fixed binary (17), 4 62 2 ncalls (5) fixed binary (17), 4 63 4 64 2 net_error_count fixed binary (17), 4 65 2 ncp_wakeup_count (7) fixed binary (17), 4 66 4 67 2 call_count (0: 31) fixed binary (17), 4 68 4 69 2 ctl_mess_count (0: 15) fixed binary (17), 4 70 4 71 2 tbop_mf_count (48) fixed binary (17), 4 72 4 73 2 eco_time fixed binary (71), 4 74 2 erp_time fixed binary (71), 4 75 2 eco_host fixed binary (16), 4 76 2 erp_host fixed binary (16), 4 77 2 num_activations fixed binary (30), /* number of socket activations performed */ 4 78 2 num_processes fixed binary (30); /* number of processes using the NCP */ 4 79 4 80 /* END include file ncp_data_dcls.incl.pl1 -- */ 4 81 132 133 5 2 /* BEGIN include file ncp_process_dcls.incl.pl1 -- */ 5 3 5 4 /* This include file contains declarations of per-process data. */ 5 5 5 6 /* Originally created by D. M. Wells, Jan, 1976 from a previously */ 5 7 /* existing include file. */ 5 8 5 9 declare 5 10 1 gdt aligned based, /* this holds data to/from outside world */ 5 11 2 init_sw fixed binary (30), /* set to 620998 iff initialized properly. */ 5 12 /* This particular value has no significance */ 5 13 2 error_code fixed binary (35), /* a code returned by internal modules */ 5 14 2 request_code fixed binary (12), /* type of request to be performed (input) */ 5 15 2 ncp_idx bit (36) unaligned, /* handle of socket to be manipulated (input) */ 5 16 2 state fixed binary (6), /* state of the socket (output) */ 5 17 2 privilege_code fixed binary (2), /* = 0 unpriv, = 1 priv, = 2 daemon */ 5 18 2 nbytes fixed binary (24), /* number of bytes of data presented (input) */ 5 19 2 nelemt fixed binary (24), /* number of bytes transmitted (output) */ 5 20 5 21 2 areap pointer, /* pointer to a supplied area (input) */ 5 22 2 fsoc bit (64) unaligned, /* foreign socket associated with this request */ 5 23 2 fsoc_pad bit (8) unaligned, 5 24 2 abort_location label, /* label to goto on procedure abort */ 5 25 5 26 2 host_tbl_index fixed binary (17), /* host_tbl index of foreign host */ 5 27 2 proc_id_arg bit (36), /* process id argument */ 5 28 2 entry_time fixed binary (71), /* time NCP was entered by this call */ 5 29 2 entry_type fixed binary (17), /* 1, 2 daemon; 3 userid; 4 process_rq; */ 5 30 /* 5 global_chnchn; 6 socket_state; 7 micro */ 5 31 2 nprocs_sw fixed binary (30), /* = 459248 if nprocs cell was properly set */ 5 32 2 event_chn fixed binary (71), /* event_channel argument */ 5 33 5 34 2 proc_tbp pointer, /* pointer to this process's static info block */ 5 35 2 global_queue aligned, /* impdim global queue info struct */ 5 36 3 gq_type fixed binary (17), /* imp_global_state substructure begins here */ 5 37 3 gq_imp_state character (8) unaligned, /* state of our IMP (up, down?) */ 5 38 3 gq_message bit (32) aligned, /* special message sent by IMP */ 5 39 5 40 3 gq_imp_index fixed binary (17), /* imp_dim index of this link */ 5 41 3 gq_host_id fixed binary (32), /* host identifier of a foreign host */ 5 42 3 gq_link fixed binary (8), /* link number of this link */ 5 43 3 gq_status aligned, /* of this link returned by imp_global_state */ 5 44 4 sba (0 : 17) bit (1) unaligned, /* status bits from imp dim */ 5 45 5 46 2 spaceg2 (14) fixed binary (17); 5 47 5 48 declare 5 49 1 pdt aligned based, /* information about each process using NCP */ 5 50 2 gdtp pointer, /* points to this call's global_data base */ 5 51 2 returnp label, /* return label for non-local error goto */ 5 52 5 53 2 multuid character (32) unaligned, /* process group id */ 5 54 5 55 2 netuid bit (24), /* Network id of this process */ 5 56 2 lockid bit (36), /* lock id of process, = ""b iff unassigned */ 5 57 2 processid bit (36), /* process id of this process */ 5 58 2 error_recur fixed binary (17), /* number of ncp error recursions */ 5 59 2 global_ev_chn fixed binary (71), /* this process gets changes of NCP state */ 5 60 2 num_activations fixed binary (17), 5 61 2 proc_devx fixed binary (12), 5 62 2 spacep2 (2) fixed binary (17); 5 63 5 64 declare 5 65 1 error_snapshot aligned based, /* snapshot of process info for an NCP error */ 5 66 2 ewho character (32) unaligned, /* process group id of detecting process */ 5 67 2 econdition character (32) unaligned, /* condition signalled */ 5 68 5 69 2 etime fixed binary (71), /* time of error */ 5 70 2 error_number fixed binary (17), 5 71 2 spacee1 (5) fixed binary (17), 5 72 5 73 2 mc_cond (32) bit (36) aligned, /* machine conditions */ 5 74 2 if_data (8) fixed binary (17), /* space for software supplied data */ 5 75 2 proc_slot aligned like pdt, /* copy of proc_tbl entry for this process */ 5 76 2 gdt_data aligned like gdt, /* copy of ncp_global_data at time of error */ 5 77 2 associated_data (24) bit (36) aligned; /* add'l info -- usually copy of socket entry */ 5 78 5 79 /* END include file ncp_process_dcls.incl.pl1 -- */ 5 80 133 134 135 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 136 137 signal_process: 138 entry (P_sock_ptr, P_wakeup_type, P_error_code); 139 140 P_error_code = 0; 141 142 socket_ptr = P_sock_ptr; 143 144 addr (event_msg) -> based_char8 = "NCP"; 145 146 if socket_ptr -> socket.event_channel ^= 0 147 then call pxss$wakeup_int (socket_ptr -> socket.process_id, socket_ptr -> socket.event_channel, event_msg, (0)); 148 149 if P_wakeup_type = 1 150 then do; 151 if (socket_ptr -> socket.overseer_process_id ^= socket_ptr -> socket.process_id) | (socket_ptr -> socket.event_channel ^= socket_ptr -> socket.overseer_event_channel) 152 then call pxss$wakeup_int (socket_ptr -> socket.overseer_process_id, socket_ptr -> socket.overseer_event_channel, event_msg, (0)); 153 end; 154 155 return; 156 157 /* * * * * * * * * * * * * * * * * * * * * * * * */ 158 159 change_socket_state: 160 entry (P_sock_ptr, P_new_state, P_error_code); 161 162 P_error_code = 0; 163 164 socket_ptr = P_sock_ptr; 165 166 /* Simulate queuing RFC's (for the time being) by being */ 167 /* willing to always go into listening state. */ 168 if (P_new_state = SOCK_ASSIGNED) & (socket_ptr -> socket.allow_rfc_queuing) 169 then socket_ptr -> socket.state = bit (binary (SOCK_LISTENING, 6)); 170 else socket_ptr -> socket.state = bit (binary (P_new_state, 6)); 171 172 socket_ptr -> socket.time_state_changed = clock (); 173 174 socket_ptr -> socket.history.num_state_changes = mod (socket_ptr -> socket.history.num_state_changes + 1, 2048); 175 socket_ptr -> socket.history.prev_state (mod (socket_ptr -> socket.history.num_state_changes, dimension (socket_ptr -> socket.prev_state, 1))) 176 = binary (socket_ptr -> socket.state); 177 178 if ncp_tables_$tracing_info ^= ""b 179 then call ncp_trace_ (TRACE_NCP_ACCESS, "Socket ^w changed to state ^d", 180 socket_ptr -> socket.socket_index, binary (socket_ptr -> socket.state, 6)); 181 182 return; 183 184 /* * * * * * * * * * * * * * * * * * * * * * * * */ 185 186 /* This entry point actually deactivates a socket by clearing */ 187 /* its entry. It is assumed that the caller has the entry locked. */ 188 /* It is also assumed that he will unlock it after this call. */ 189 190 deactivate_socket: 191 entry (P_sock_ptr, P_error_code); 192 193 P_error_code = 0; 194 195 socket_ptr = P_sock_ptr; 196 197 if ncp_tables_$tracing_info ^= ""b 198 then call ncp_trace_ (TRACE_NCP_ACCESS, "Deactivating socket ^w.", socket_ptr -> socket.socket_index); 199 200 call unassign_link (socket_ptr, (0)); /* make sure any link is unassigned */ 201 202 substr (socket_ptr -> based_bits, 1, 144) = ""b; /* null part of entry prior to lock */ 203 substr (socket_ptr -> based_bits, 181, 684) = ""b; /* null part of entry after the lock */ 204 /* 144 + 36 + 684 = 864 = 24 * 36 */ 205 206 return; 207 208 /* * * * * * * * * * * * * * * * * * * * * * * * */ 209 210 assign_link: 211 entry (P_sock_ptr, P_error_code); 212 213 P_error_code = 0; 214 215 socket_ptr = P_sock_ptr; 216 217 if socket_ptr -> socket.impdim_index ^= 0 218 then call unassign_link (socket_ptr, (0)); /* remove any old link that was there */ 219 220 if socket_ptr -> socket.send_gender = READ_GENDER 221 then do; 222 hpr = addr (ncp_tables_$host_tbl); 223 host_tb_index = socket_ptr -> socket.host_entry_index; 224 225 link_num = choose_link (addr (hpr -> host_array (host_tb_index)), P_error_code); 226 if P_error_code ^= 0 227 then return; 228 229 socket_ptr -> socket.link_number = link_num; 230 end; 231 232 hostaddr = socket_ptr -> socket.foreign_socket.host; 233 host_num = binary (string (hostaddr), 32); 234 byte_size = binary (socket_ptr -> socket.byte_size, 8); /* pick out byte size */ 235 link_num = binary (socket_ptr -> socket.link_number, 8); 236 237 if ncp_tables_$tracing_info ^= ""b 238 then call ncp_trace_ (TRACE_NCP_TBOP, "ASSIGN LINK ^d for ^d", 239 link_num, binary (socket_ptr -> socket.send_gender, 1)); 240 241 if socket_ptr -> socket.send_gender = WRITE_GENDER 242 then do; /* this is a write link */ 243 call imp_attach_write (binary (hostaddr.net), binary (hostaddr.imp), binary (hostaddr.host), 244 link_num, socket_ptr -> socket.process_id, 245 socket_ptr -> socket.event_channel, link_indx, P_error_code); 246 if P_error_code ^= 0 247 then return; 248 call imp_write_order (link_indx, IMP_ORDER_set_byte_size, addr (byte_size), status, (0)); 249 end; 250 else do; 251 call imp_attach_read (binary (hostaddr.net), binary (hostaddr.imp), binary (hostaddr.host), 252 link_num, socket_ptr -> socket.process_id, 253 socket_ptr -> socket.event_channel, link_indx, P_error_code); 254 if P_error_code ^= 0 255 then return; 256 call imp_read_order (link_indx, IMP_ORDER_set_byte_size, addr (byte_size), status, (0)); 257 end; 258 259 socket_ptr -> socket.impdim_index = link_indx; /* save returned imp dim index */ 260 socket_ptr -> socket.bit_allocation = 0; /* a newly-assigned link has no allocation */ 261 socket_ptr -> socket.msg_allocation = 0; 262 263 return; 264 265 /* * * * * * * * * * * * * * * * * * * * * * * * */ 266 267 unassign_link: 268 entry (P_sock_ptr, P_error_code); 269 270 P_error_code = 0; 271 272 socket_ptr = P_sock_ptr; 273 274 link_num = binary (socket_ptr -> socket.link_number, 8); 275 276 if link_num = 0 277 then return; /* no link assigned to this socket */ 278 279 link_indx = socket_ptr -> socket.impdim_index; 280 socket_ptr -> socket.impdim_index = 0; 281 282 if link_indx ^= 0 283 then do; /* the link is still attached, detach it */ 284 if socket_ptr -> socket.send_gender = WRITE_GENDER 285 then do; 286 call imp_detach_write (link_indx, P_error_code); 287 if P_error_code ^= 0 288 then return; 289 end; 290 else do; 291 call imp_detach_read (link_indx, P_error_code); 292 if P_error_code ^= 0 293 then return; 294 295 hpr = addr (ncp_tables_$host_tbl); 296 host_tb_index = socket_ptr -> socket.host_entry_index; 297 298 call release_link (addr (hpr -> host_array (host_tb_index)), link_num); 299 end; 300 end; 301 302 if ncp_tables_$tracing_info ^= ""b 303 then call ncp_trace_ (TRACE_NCP_ACCESS, "UNASSIGN LINK ^d for type ^d (impdim index ^d)", 304 link_num, binary (socket_ptr -> socket.send_gender, 1), link_indx); 305 306 socket_ptr -> socket.link_number = 0; 307 socket_ptr -> socket.impdim_index = 0; 308 309 return; 310 311 /* * * * * * * * * * * * * * * * * * * * * * * * */ 312 313 process_RST: 314 entry (P_host_number, P_error_code); 315 316 P_error_code = 0; 317 318 host_num = P_host_number; 319 320 npr = addr (ncp_tables_$ncp_data); 321 322 lockp = addr (npr -> ncp_dt.htbl_lock); /* get address of host table lock */ 323 call ncp_lock_$lock_wait (lockp, (0)); /* lock host table */ 324 325 host_ptr = find_host_slot (host_num, "0"b); /* find host data, but don't create it */ 326 if host_ptr = null () 327 then do; 328 call ncp_lock_$lock_unlock (lockp, (0)); 329 330 P_error_code = error_table_$net_fhost_inactive; 331 return; 332 end; 333 334 call reset_host_data (host_ptr); 335 336 call take_host_down (host_ptr); 337 call bring_host_up (host_ptr); 338 call set_host_state (host_ptr, HOST_UP); 339 340 call send_RRP_control_message (host_ptr); 341 342 call ncp_lock_$lock_unlock (lockp, (0)); /* all done, so unlock the host table */ 343 344 return; 345 346 /* * * * * * * * * * * * * * * * * * * * * * * * */ 347 348 process_RRP: 349 entry (P_host_number, P_error_code); 350 351 P_error_code = 0; 352 353 host_num = P_host_number; 354 355 npr = addr (ncp_tables_$ncp_data); 356 357 lockp = addr (npr -> ncp_dt.htbl_lock); 358 call ncp_lock_$lock_wait (lockp, (0)); 359 360 host_ptr = find_host_slot (host_num, "0"b); 361 362 if host_ptr = null () 363 then do; 364 call ncp_lock_$lock_unlock (lockp, (0)); 365 366 P_error_code = error_table_$net_fhost_inactive; 367 return; 368 end; 369 370 call set_host_state (host_ptr, HOST_UP); 371 372 call ncp_lock_$lock_unlock (lockp, (0)); 373 374 return; 375 376 /* * * * * * * * * * * * * * * * * * * * * * * * */ 377 378 /* This entry point alters the various "access" attributes of */ 379 /* sockets and the "accessibility" of hosts. Thus its inclusion in */ 380 /* this module. The action is based upon the variable */ 381 /* "gdt.request_code" -- which may have the following values: */ 382 /* 20 -- normal user activation */ 383 /* 21 -- privileged user activation */ 384 /* 22 -- "pass off" the usage of a socket */ 385 /* 23 -- enable communications with a foreign host */ 386 /* 24 -- disable communications with a foreign host */ 387 /* 25 -- IMP DIM detected foreign host inaccessible */ 388 /* 26 -- send RST control message to foreign host */ 389 /* 27 -- RST control message received */ 390 /* 28 -- RRP control mesage received */ 391 /* 29 -- send ECO control message to foreign host */ 392 393 process_rq: 394 entry (P_proc_info_ptr); 395 396 397 procp = P_proc_info_ptr; /* get internal copy of parameter */ 398 gpr = procp -> pdt.gdtp; /* extract pointer to ncp_global_data */ 399 400 lockp = null (); /* remember that no locks are set */ 401 402 403 gpr -> gdt.error_code = 0; 404 spr = addr (ncp_tables_$socket_tbl); 405 npr = addr (ncp_tables_$ncp_data); 406 407 i = gpr -> gdt.request_code; /* find out what we're to do */ 408 if (i <= 19) | (i >= 30) 409 then do; 410 call ncp_error_ (0, "ACCESS_bad_request"); 411 return; 412 end; 413 414 415 if ncp_tables_$tracing_info ^= ""b 416 then call ncp_trace_ (TRACE_NCP_ACCESS, "ncp_access request ^d, host ^d", i, gpr -> gdt.gq_host_id); 417 418 call process_request (); 419 420 if lockp ^= null () 421 then call ncp_lock_$lock_unlock (lockp, icode); 422 423 return; 424 425 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 426 427 process_request: 428 procedure (); 429 430 /* * * * * * * * * * * * * * * * * * * * * * * * */ 431 432 goto elab (i); 433 434 /* * * * * * * * * * * * * * * * * * * */ 435 /* Process activate requests */ 436 elab (20): 437 procid = procp -> pdt.processid; 438 lsoct = gpr -> gdt.fsoc; 439 substr (lsoct, 33, 24) = procp -> pdt.netuid; /* this is normal activate, use default userid */ 440 441 goto common_activate; 442 443 /* * * * * * * * * * * * * * * * * * * * * * * * */ 444 445 elab (21): 446 procid = procp -> pdt.processid; 447 lsoct = gpr -> gdt.fsoc; /* get socket identifier */ 448 goto common_activate; 449 450 /* * * * * * * * * * * * * * * * * * * * * * * * */ 451 452 common_activate: 453 substr (lsoct, 1, 32) = bit (binary (npr -> ncp_dt.host_id, 32), 32); /* insert host number portion of socket id */ 454 455 do i = 1 to npr -> ncp_dt.stbl_gent; 456 if (spr -> socket_array (i).state ^= bit (binary (SOCK_UNASSIGNED, 6))) 457 & (spr -> socket_array (i).local_socket.socket_num = substr (lsoct, 33, 32)) 458 then do; 459 socket_ptr = addr (spr -> socket_array (i)); 460 lockp = addr (socket_ptr -> socket.lock); 461 call ncp_lock_$lock_wait (lockp, icode); 462 463 if (socket_ptr -> socket.overseer_process_id ^= procid) & (socket_ptr -> socket.process_id ^= procid) 464 then do; /* this isn't an authorized process so see if */ 465 lock_id = socket_ptr -> socket.overseer_lock_id; /* the overseer still exists */ 466 call ncp_lock_$verify_lock (addr (lock_id), icode); 467 if icode ^= error_table_$invalid_lock_reset 468 then do; /* the process is not dead */ 469 gpr -> gdt.ncp_idx = ""b; 470 gpr -> gdt.error_code = error_table_$bad_processid; 471 return; 472 end; 473 if binary (socket_ptr -> socket.state, 6) < SOCK_BROKEN /* socket might be connected */ 474 then do; 475 call ncp_error_$croggle_socket (socket_ptr, 1, icode); 476 goto common_activate; /* go reenter this code */ 477 end; 478 else do; 479 call change_socket_state (socket_ptr, SOCK_ASSIGNED, (0)); 480 socket_ptr -> socket.byte_size = bit (binary (8, 8)); 481 end; 482 483 socket_ptr -> socket.overseer_lock_id = procp -> pdt.lockid; 484 socket_ptr -> socket.overseer_process_id = procid; 485 socket_ptr -> socket.overseer_event_channel = gpr -> gdt.event_chn; 486 socket_ptr -> socket.overseer_validation_level = bit (binary (level$get (), 3)); 487 socket_ptr -> socket.validation_level = bit (binary (7, 3)); 488 489 socket_ptr -> socket.allow_interrupts = "0"b; 490 socket_ptr -> socket.signal_event_channel = 0; 491 end; 492 493 if (socket_ptr -> socket.overseer_process_id = procid) 494 & (binary (socket_ptr -> socket.overseer_validation_level, 3) >= level$get ()) 495 then do; /* this is overseer taking control */ 496 socket_ptr -> socket.overseer_event_channel = gpr -> gdt.event_chn; 497 socket_ptr -> socket.overseer_validation_level = bit (binary (level$get (), 3)); 498 socket_ptr -> socket.validation_level = socket_ptr -> socket.overseer_validation_level; 499 end; 500 501 if binary (socket_ptr -> socket.validation_level) < level$get () 502 then do; 503 gpr -> gdt.error_code = error_table_$bad_ring_brackets; 504 return; 505 end; 506 507 socket_ptr -> socket.process_id = procid; /* change procid and event channel */ 508 socket_ptr -> socket.event_channel = gpr -> gdt.event_chn; 509 socket_ptr -> socket.validation_level = bit (binary (level$get (), 3)); 510 511 j = socket_ptr -> socket.impdim_index; 512 if j ^= 0 then do; /* There is a link attached; change the ownership */ 513 if socket_ptr -> socket.send_gender = WRITE_GENDER 514 then call imp_reattach_write (j, gpr -> gdt.event_chn, procid, icode); 515 else call imp_reattach_read (j, gpr -> gdt.event_chn, procid, icode); 516 if icode ^= 0 then do; 517 call ncp_error_ (icode, "ACCESS_reattaching_socket"); 518 return; 519 end; 520 end; 521 gpr -> gdt.ncp_idx = socket_ptr -> socket.socket_index; 522 return; 523 end; 524 end; 525 526 527 lockp = addr (npr -> ncp_dt.stbl_lock); 528 call ncp_lock_$lock_wait (lockp, icode); 529 do i = 1 to npr -> ncp_dt.stbl_gent; 530 if spr -> socket_array (i).state = ""b 531 then goto got_one; /* there is an empty entry */ 532 end; 533 534 i = npr -> ncp_dt.stbl_gent + 1; 535 if i > npr -> ncp_dt.stbl_size then do; /* The entire table is full */ 536 gpr -> gdt.ncp_idx = ""b; 537 gpr -> gdt.error_code = error_table_$net_table_space; /* allocation not possible */ 538 return; 539 end; 540 541 npr -> ncp_dt.stbl_gent = i; /* bump by one */ 542 543 got_one: 544 mpr = addr (ncp_tables_$meter_cells); 545 mpr -> meter_dt.num_activations = mpr -> meter_dt.num_activations + 1; 546 547 socket_ptr = addr (spr -> socket_array (i)); /* get pointer to empty socket table entry */ 548 call deactivate_socket (socket_ptr, (0)); /* call subroutine to make all entries null */ 549 socket_ptr -> socket.socket_index = bit (binary (i, 36)); 550 call change_socket_state (socket_ptr, SOCK_ASSIGNED, (0)); /* give socket a state so it exists */ 551 call ncp_lock_$lock_wait (addr (socket_ptr -> socket.lock), icode); /* lock socket entry */ 552 call ncp_lock_$lock_unlock (lockp, icode); /* unlock socket table global lock */ 553 lockp = addr (socket_ptr -> socket.lock); 554 555 556 procp -> pdt.num_activations = procp -> pdt.num_activations + 1; 557 substr (socket_ptr -> socket.socket_index, 1, 2) = "01"b; 558 substr (socket_ptr -> socket.socket_index, 3, 4) = bit (binary (mod (npr -> ncp_dt.ncp_state_changes, 16), 4)); 559 substr (socket_ptr -> socket.socket_index, 7, 12) = bit (binary (mod (procp -> pdt.num_activations, 4096), 12)); 560 561 gpr -> gdt.ncp_idx = socket_ptr -> socket.socket_index; 562 563 socket_ptr -> socket.overseer_event_channel, socket_ptr -> socket.event_channel = gpr -> gdt.event_chn; 564 socket_ptr -> socket.overseer_validation_level, socket_ptr -> socket.validation_level = bit (binary (level$get (), 3)); 565 socket_ptr -> socket.overseer_process_id, socket_ptr -> socket.process_id = procid; 566 socket_ptr -> socket.overseer_lock_id = procp -> pdt.lockid; 567 string (socket_ptr -> socket.local_socket) = lsoct; 568 socket_ptr -> socket.send_gender = substr (lsoct, 64, 1); /* set read/write switch */ 569 socket_ptr -> socket.byte_size = bit (binary (8, 8)); /* default byte size is 8 bits */ 570 return; 571 572 /* * * * * * * * * * * * * * * * * * * * * * * * */ 573 574 575 576 elab (22): 577 nidx = binary (gpr -> gdt.ncp_idx & SOCK_INDX_MASK, 18); 578 if (nidx <= 0) | (nidx > npr -> ncp_dt.stbl_gent) 579 then do; 580 np_inv: gpr -> gdt.error_code = error_table_$bad_index; 581 return; 582 end; 583 584 procid = procp -> pdt.processid; 585 socket_ptr = addr (spr -> socket_array (nidx)); 586 if socket_ptr -> socket.state = bit (binary (SOCK_UNASSIGNED, 6)) 587 then goto np_inv; /* This is an unassigned socket entry */ 588 lockp = addr (socket_ptr -> socket.lock); 589 call ncp_lock_$lock_wait (lockp, icode); /* lock the socket entry */ 590 if socket_ptr -> socket.overseer_process_id ^= procid then if socket_ptr -> socket.process_id ^= procid then do; 591 gpr -> gdt.error_code = error_table_$bad_index; /* invalid index */ 592 return; 593 end; 594 595 if socket_ptr -> socket.socket_index ^= gpr -> gdt.ncp_idx 596 then do; 597 gpr -> gdt.error_code = error_table_$bad_index; 598 return; 599 end; 600 601 socket_ptr -> socket.allow_interrupts = "0"b; 602 socket_ptr -> socket.signal_event_channel = 0; 603 604 socket_ptr -> socket.event_channel = 0; /* null out */ 605 socket_ptr -> socket.validation_level = bit (binary (7, 3)); 606 607 socket_ptr -> socket.process_id = gpr -> gdt.proc_id_arg; 608 609 call signal_process (socket_ptr, 1, (0)); 610 611 return; 612 613 /* * * * * * * * * * * * * * * * * * * * * * * * */ 614 615 /* enable communications with a foreign host */ 616 elab (23): 617 host_code = gpr -> gdt.gq_host_id; 618 lockp = null (); 619 620 lockp = addr (npr -> ncp_dt.htbl_lock); 621 call ncp_lock_$lock_wait (lockp, icode); 622 623 host_ptr = find_host_slot (host_code, "1"b); /* find slot for host -- make it, if necessary */ 624 if host_ptr = null () 625 then do; 626 call ncp_lock_$lock_unlock (lockp, (0)); 627 lockp = null (); 628 629 gpr -> gdt.error_code = error_table_$net_table_space; 630 return; 631 end; 632 633 if host_ptr -> host.host_state ^= bit (binary (HOST_OFF, 6)) 634 then do; 635 call ncp_lock_$lock_unlock (lockp, (0)); 636 lockp = null (); 637 638 gpr -> gdt.error_code = error_table_$net_invalid_state; 639 return; 640 end; 641 642 call bring_host_up (host_ptr); 643 call send_RST_control_message (host_ptr); 644 call set_host_state (host_ptr, HOST_RST); /* host now in "RST sent" state */ 645 646 return; 647 648 /* * * * * * * * * * * * * * * * * * * * * * * * */ 649 650 elab (24): 651 elab (25): 652 elab (26): 653 elab (27): 654 elab (28): 655 host_code = gpr -> gdt.gq_host_id; /* get code of host whose state is to change */ 656 lockp = null (); 657 658 lockp = addr (npr -> ncp_dt.htbl_lock); 659 call ncp_lock_$lock_wait (lockp, icode); 660 661 host_ptr = find_host_slot (host_code, "0"b); /* find host, but don't create it */ 662 if host_ptr = null () 663 then goto nhc_host_disabled; 664 665 if host_ptr -> host.host_state = bit (binary (HOST_OFF, 6)) 666 then goto nhc_host_disabled; 667 668 goto flab (gpr -> gdt.request_code); 669 670 nhc_host_disabled: 671 gpr -> gdt.error_code = error_table_$net_fhost_inactive; 672 return; 673 674 675 676 /* * * * * * * * * * * * * * * * * * * */ 677 678 flab (28): 679 call set_host_state (host_ptr, HOST_UP); 680 681 return; 682 683 /* * * * * * * * * * * * * * * * * * * */ 684 685 flab (24): 686 flab (25): 687 flab (26): 688 flab (27): 689 call reset_host_data (host_ptr); 690 691 692 if gpr -> gdt.request_code = 24 693 then do; 694 call take_host_down (host_ptr); 695 call set_host_state (host_ptr, HOST_OFF); /* to set the host cell to off */ 696 end; 697 else do; 698 call imp_read_order ((host_ptr -> host.rcv_link_index), IMP_ORDER_abort_transfer, null (), status, icode); 699 call imp_write_order ((host_ptr -> host.xmit_link_index), IMP_ORDER_abort_transfer, null (), status, icode); 700 if gpr -> gdt.request_code = 27 701 then do; 702 call take_host_down (host_ptr); /* foreign host said he wasn't talking to us */ 703 call bring_host_up (host_ptr); /* but he is now */ 704 call set_host_state (host_ptr, HOST_UP); /* set the foreign host up */ 705 end; 706 else do; 707 if gpr -> gdt.request_code = 25 708 then call set_host_state (host_ptr, HOST_DOWN); /* set to "host down" state */ 709 else do; 710 call send_RST_control_message (host_ptr); 711 call set_host_state (host_ptr, HOST_RST); /* prepare for "RST sent" state -- 26 */ 712 end; 713 end; 714 end; 715 716 return; 717 718 /* * * * * * * * * * * * * * * * * * * * * * * * */ 719 720 /* Send an ECO (A request for an Echo Reply command) */ 721 elab (29): 722 host_code = gpr -> gdt.gq_host_id; 723 lockp = null (); 724 725 host_ptr = find_host_slot (host_code, "0"b); /* find slot, but don't create one */ 726 if host_ptr = null () 727 then do; 728 gpr -> gdt.error_code = error_table_$net_fhost_inactive; 729 return; 730 end; 731 732 mpr = addr (ncp_tables_$meter_cells); 733 mpr -> meter_dt.eco_time = gpr -> gdt.entry_time; 734 mpr -> meter_dt.eco_host = gpr -> gdt.gq_host_id; 735 ctl_mess.com_code = bit (binary (17, 8)); /* set in ECO command code */ 736 ctl_mess.arg (1) = bit (binary (gpr -> gdt.gq_host_id, 8)); /* make up ECO message */ 737 738 call ncp_util_$send_control_message (host_ptr, addr (ctl_mess), 2, gpr -> gdt.error_code); 739 740 return; 741 742 end; /* end process_request */ 743 744 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 745 746 find_host_slot: 747 procedure (p_host_num, p_create_slot) returns (ptr); 748 749 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 750 751 declare 752 (p_host_num fixed binary (16), 753 p_create_slot bit (1)) 754 parameter; 755 756 /* * * * * AUTOMATIC STORAGE DECLARATIONS * * * */ 757 758 declare 759 host_entry_ptr pointer 760 automatic; 761 762 /* * * * * * * * * * * * * * * * * * * * * * * * */ 763 764 call ncp_util_$find_host_entry (p_host_num, p_create_slot, host_entry_ptr, (0)); 765 766 return (host_entry_ptr); 767 768 end; /* end find_host_slot */ 769 770 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 771 772 bring_host_up: 773 procedure (p_host_ptr); 774 775 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 776 777 declare 778 1 haddr aligned like host_address automatic; 779 780 declare 781 p_host_ptr pointer 782 parameter; 783 784 /* * * * * AUTOMATIC STORAGE DECLARATIONS * * * */ 785 786 declare 787 (host_num fixed binary (16), 788 link_indx fixed binary (17), /* indx of link as assigned by imp dim */ 789 sock_indx fixed binary (17), 790 impdim_mode fixed binary (12)) 791 automatic; 792 793 /* * * * * * * * * * * * * * * * * * * * * * * * */ 794 795 host_num = binary (p_host_ptr -> host.host_number, 32); 796 string (haddr) = bit (binary (host_num, 32), 32); 797 798 call reset_link_table (p_host_ptr); 799 800 call set_host_state (p_host_ptr, HOST_OFF); /* set host state to off for time being */ 801 802 call imp_attach_read (binary (haddr.net), binary (haddr.imp), binary (haddr.host), 0, npr -> ncp_dt.ncp_procid, 803 npr -> ncp_dt.ncp_ev_chan, link_indx, icode); 804 if icode ^= 0 805 then do; 806 call ncp_error_ (icode, "ACCESS_read_control_link"); 807 return; 808 end; 809 p_host_ptr -> host.rcv_link_index = link_indx; 810 811 do impdim_mode = IMP_ORDER_single_message_mode, IMP_ORDER_control_link; 812 call imp_read_order (link_indx, impdim_mode, null (), status, icode); 813 end; 814 815 call imp_attach_write (binary (haddr.net), binary (haddr.imp), binary (haddr.host), 0, npr -> ncp_dt.ncp_procid, 816 npr -> ncp_dt.ncp_ev_chan, link_indx, icode); 817 if icode ^= 0 818 then do; 819 call ncp_error_ (icode, "ACCESS_write_control_link"); 820 return; 821 end; 822 p_host_ptr -> host.xmit_link_index = link_indx; 823 824 do impdim_mode = IMP_ORDER_single_message_mode, IMP_ORDER_control_link; 825 call imp_write_order (link_indx, impdim_mode, null (), status, icode); 826 end; 827 828 return; 829 830 /* * * * * * * * * * * * * * * * * * * * * * * * */ 831 832 take_host_down: 833 entry (p_host_ptr); 834 835 call imp_detach_read ((p_host_ptr -> host.rcv_link_index), icode); 836 if icode ^= 0 837 then do; 838 call ncp_error_ (icode, "ACCESS_detach_read_link"); 839 return; 840 end; 841 p_host_ptr -> host.rcv_link_index = 0; 842 843 call imp_detach_write ((p_host_ptr -> host.xmit_link_index), icode); 844 if icode ^= 0 845 then do; 846 call ncp_error_ (icode, "ACCESS_detach_write_link"); 847 return; 848 end; 849 p_host_ptr -> host.xmit_link_index = 0; 850 851 return; 852 853 /* * * * * * * * * * * * * * * * * * * * * * * * */ 854 855 reset_host_data: 856 entry (p_host_ptr); 857 858 spr = addr (ncp_tables_$socket_tbl); 859 860 do sock_indx = 1 by 1 to npr -> ncp_dt.stbl_gent; 861 if spr -> socket_array (sock_indx).host_entry_index = p_host_ptr -> host.hash_index 862 then do; 863 if binary (spr -> socket_array (sock_indx).state, 6) >= SOCK_RFC_SENT 864 then if binary (spr -> socket_array (sock_indx).state, 6) < SOCK_BROKEN 865 then call ncp_error_$croggle_socket (addr (spr -> socket_array (sock_indx)), 2, icode); 866 /* we need to tell it to lock the socket entry */ 867 end; 868 end; 869 870 return; 871 872 end; /* end bring_host_up */ 873 874 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 875 876 send_RST_control_message: 877 procedure (p_host_ptr); 878 879 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 880 881 declare 882 p_host_ptr pointer 883 parameter; 884 885 /* * * * * AUTOMATIC STORAGE DECLARATIONS * * * */ 886 887 declare 888 reset_message bit (8) 889 automatic; 890 891 /* * * * * * * * * * * * * * * * * * * * * * * * */ 892 893 reset_message = bit (binary (12, 8)); 894 895 call ncp_util_$send_control_message (p_host_ptr, addr (reset_message), 1, icode); 896 897 return; 898 899 /* * * * * * * * * * * * * * * * * * * * * * * * */ 900 901 send_RRP_control_message: 902 entry (p_host_ptr); 903 904 reset_message = bit (binary (13, 8)); 905 906 call ncp_util_$send_control_message (p_host_ptr, addr (reset_message), 1, icode); 907 908 return; 909 910 end; /* end send_RST_control_message */ 911 912 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 913 914 set_host_state: 915 procedure (p_host_ptr, p_new_host_state); 916 917 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 918 919 declare 920 (p_new_host_state fixed binary (6), 921 p_host_ptr pointer) 922 parameter; 923 924 /* * * * * * * * * * * * * * * * * * * * * * * * */ 925 926 p_host_ptr -> host.previous_host_state = p_host_ptr -> host.host_state; 927 p_host_ptr -> host.host_state = bit (binary (p_new_host_state, 6)); /* set in new state */ 928 p_host_ptr -> host.time_state_changed = clock (); 929 930 if ncp_tables_$tracing_info ^= ""b 931 then call ncp_trace_ (TRACE_NCP_ACCESS, "Host ^d changed to ^d state.", 932 binary (p_host_ptr -> host.host_number, 16), binary (p_host_ptr -> host.host_state, 6)); 933 934 return; 935 936 end; /* end set_host_state */ 937 938 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 939 940 choose_link: 941 procedure (p_host_entry_ptr, p_err_code) returns (fixed bin (8)); 942 943 /* * * * * PARAMETER DECLARATIONS * * * * * * * */ 944 945 declare 946 (p_link_num fixed binary (8), 947 p_err_code fixed binary (35), 948 p_host_entry_ptr pointer) 949 parameter; 950 951 /* * * * * AUTOMATIC STORAGE DECLARATIONS * * * */ 952 953 declare 954 (chosen_link fixed binary (8), 955 hep pointer) 956 automatic; 957 958 /* * * * * * * * * * * * * * * * * * * * * * * * */ 959 960 hep = p_host_entry_ptr; 961 962 call ncp_lock_$lock_wait (addr (hep -> host.lock), p_err_code); 963 if p_err_code ^= 0 964 then return (-1); 965 966 if hep -> host.host_state = bit (binary (HOST_OFF, 6)) 967 then do; 968 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 969 p_err_code = error_table_$net_fhost_inactive; 970 return (-1); 971 end; 972 973 chosen_link = index (hep -> host.read_links_used, "0"b); 974 if chosen_link = 0 975 then do; /* maybe used list has wrapped around, salvage */ 976 hep -> host.read_links_used = hep -> host.read_links_assigned; 977 substr (hep -> host.read_links_used, 1, 1) = "1"b; /* can't use link one */ 978 979 chosen_link = index (hep -> host.read_links_used, "0"b); /* look for link again */ 980 if chosen_link = 0 981 then do; 982 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 983 p_err_code = error_table_$notalloc; 984 return (-1); 985 end; 986 end; 987 988 substr (hep -> host.read_links_used, chosen_link, 1) = "1"b; 989 substr (hep -> host.read_links_assigned, chosen_link, 1) = "1"b; 990 991 hep -> host.num_connections = mod (hep -> host.num_connections + 1, 262144); 992 993 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 994 995 return (chosen_link); 996 997 /* * * * * * * * * * * * * * * * * * * * * * * */ 998 999 release_link: 1000 entry (p_host_entry_ptr, p_link_num); 1001 1002 hep = p_host_entry_ptr; 1003 1004 call ncp_lock_$lock_wait (addr (hep -> host.lock), (0)); 1005 1006 substr (hep -> host.read_links_assigned, p_link_num, 1) = "0"b; 1007 1008 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 1009 1010 return; 1011 1012 /* * * * * * * * * * * * * * * * * * * * * * * */ 1013 1014 reset_link_table: 1015 entry (p_host_entry_ptr); 1016 1017 hep = p_host_entry_ptr; 1018 1019 call ncp_lock_$lock_wait (addr (hep -> host.lock), (0)); 1020 1021 1022 hep -> host.read_links_assigned = ""b; /* no links are now assigned */ 1023 hep -> host.read_links_used = (32)"1"b; /* notice that the value of this variable */ 1024 /* doesn't matter, but we will set it so */ 1025 /* that it will salvage first thing */ 1026 substr (hep -> host.read_links_used, 1, 1) = "1"b; /* except that we can't assign link 1 */ 1027 /* due to Host-Host protocol */ 1028 1029 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 1030 1031 return; 1032 1033 end; /* end choose_link */ 1034 1035 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1036 1037 end; /* end ncp_access_ */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/02/84 1129.4 ncp_access_.pl1 >dumps>old_dumps>hardcore>ncp_access_.pl1 129 1 10/07/77 1700.0 imp_orders.incl.pl1 >ldd>include>imp_orders.incl.pl1 130 2 09/05/79 2206.3 ncp_connection_dcls.incl.pl1 >ldd>include>ncp_connection_dcls.incl.pl1 131 3 10/07/77 1700.0 ncp_constants_dcls.incl.pl1 >ldd>include>ncp_constants_dcls.incl.pl1 132 4 07/24/78 1704.7 ncp_data_dcls.incl.pl1 >ldd>include>ncp_data_dcls.incl.pl1 133 5 07/24/78 1704.7 ncp_process_dcls.incl.pl1 >ldd>include>ncp_process_dcls.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. HOST_DOWN constant fixed bin(6,0) initial dcl 3-20 set ref 707* HOST_OFF 000037 constant fixed bin(6,0) initial dcl 3-20 set ref 633 665 695* 800* 966 HOST_RST constant fixed bin(6,0) initial dcl 3-20 set ref 644* 711* HOST_UP constant fixed bin(6,0) initial dcl 3-20 set ref 338* 370* 678* 704* IMP_ORDER_abort_transfer 000045 constant fixed bin(12,0) initial dcl 1-9 set ref 698* 699* IMP_ORDER_control_link constant fixed bin(12,0) initial dcl 1-9 ref 811 824 IMP_ORDER_set_byte_size 000021 constant fixed bin(12,0) initial dcl 1-9 set ref 248* 256* IMP_ORDER_single_message_mode constant fixed bin(12,0) initial dcl 1-9 ref 811 824 P_error_code parameter fixed bin(35,0) dcl 27 set ref 137 140* 159 162* 190 193* 210 213* 225* 226 243* 246 251* 254 267 270* 286* 287 291* 292 313 316* 330* 348 351* 366* P_host_number parameter fixed bin(16,0) dcl 27 ref 313 318 348 353 P_new_state parameter fixed bin(6,0) dcl 27 ref 159 168 170 P_proc_info_ptr parameter pointer dcl 27 ref 393 397 P_sock_ptr parameter pointer dcl 27 ref 137 142 159 164 190 195 210 215 267 272 P_wakeup_type parameter fixed bin(1,0) dcl 27 ref 137 149 READ_GENDER constant bit(1) initial unaligned dcl 3-15 ref 220 SOCK_ASSIGNED 000045 constant fixed bin(6,0) initial dcl 3-28 set ref 168 479* 550* SOCK_BROKEN constant fixed bin(6,0) initial dcl 3-28 ref 473 863 SOCK_INDX_MASK constant bit(36) initial unaligned dcl 3-46 ref 576 SOCK_LISTENING constant fixed bin(6,0) initial dcl 3-28 ref 168 SOCK_RFC_SENT constant fixed bin(6,0) initial dcl 3-28 ref 863 SOCK_UNASSIGNED constant fixed bin(6,0) initial dcl 3-28 ref 456 586 TRACE_NCP_ACCESS 000020 constant bit(36) initial dcl 3-51 set ref 178* 197* 302* 415* 930* TRACE_NCP_TBOP 000017 constant bit(36) initial dcl 3-51 set ref 237* WRITE_GENDER constant bit(1) initial unaligned dcl 3-15 ref 241 284 513 addr builtin function dcl 123 ref 144 222 225 225 248 248 256 256 295 298 298 320 322 355 357 404 405 459 460 466 466 527 543 547 551 551 553 585 588 620 658 732 738 738 858 863 863 895 895 906 906 962 962 968 968 982 982 993 993 1004 1004 1008 1008 1019 1019 1029 1029 allow_interrupts 17(15) based bit(1) level 2 packed unaligned dcl 2-13 set ref 489* 601* allow_rfc_queuing 17(17) based bit(1) level 2 packed unaligned dcl 2-13 ref 168 arg 0(08) 000145 automatic bit(8) array level 2 packed unaligned dcl 57 set ref 736* based_bits based bit(9437184) unaligned dcl 66 set ref 202* 203* based_char8 based char(8) unaligned dcl 66 set ref 144* binary builtin function dcl 123 ref 168 170 175 178 178 233 234 235 237 237 243 243 243 243 243 243 251 251 251 251 251 251 274 302 302 452 456 473 480 486 487 493 497 501 509 549 558 559 564 569 576 586 605 633 665 735 736 795 796 802 802 802 802 802 802 815 815 815 815 815 815 863 863 893 904 927 930 930 930 930 966 bit builtin function dcl 123 ref 168 170 452 456 480 486 487 497 509 549 558 559 564 569 586 605 633 665 735 736 796 893 904 927 966 bit_allocation 7 based fixed bin(32,0) level 2 dcl 2-13 set ref 260* byte_size 17(06) based bit(8) level 2 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" set ref 234 480* 569* byte_size 000100 automatic fixed bin(8,0) dcl 38 in procedure "ncp_access_" set ref 234* 248 248 256 256 chosen_link 000236 automatic fixed bin(8,0) dcl 953 set ref 973* 974 979* 980 988 989 995 clock builtin function dcl 123 ref 172 928 com_code 000145 automatic bit(8) level 2 packed unaligned dcl 57 set ref 735* ctl_mess 000145 automatic structure level 1 packed unaligned dcl 57 set ref 738 738 dimension builtin function dcl 123 ref 175 eco_host 174 based fixed bin(16,0) level 2 dcl 4-52 set ref 734* eco_time 170 based fixed bin(71,0) level 2 dcl 4-52 set ref 733* entry_time 22 based fixed bin(71,0) level 2 dcl 5-9 ref 733 error_code 1 based fixed bin(35,0) level 2 dcl 5-9 set ref 403* 470* 503* 537* 580* 591* 597* 629* 638* 670* 728* 738* error_table_$bad_index 000022 external static fixed bin(35,0) dcl 90 ref 580 591 597 error_table_$bad_processid 000024 external static fixed bin(35,0) dcl 90 ref 470 error_table_$bad_ring_brackets 000026 external static fixed bin(35,0) dcl 90 ref 503 error_table_$invalid_lock_reset 000030 external static fixed bin(35,0) dcl 90 ref 467 error_table_$net_fhost_inactive 000032 external static fixed bin(35,0) dcl 90 ref 330 366 670 728 969 error_table_$net_invalid_state 000034 external static fixed bin(35,0) dcl 90 ref 638 error_table_$net_table_space 000036 external static fixed bin(35,0) dcl 90 ref 537 629 error_table_$notalloc 000040 external static fixed bin(35,0) dcl 90 ref 983 event_channel based fixed bin(71,0) level 2 dcl 2-13 set ref 146 146* 151 243* 251* 508* 563* 604* event_chn 26 based fixed bin(71,0) level 2 dcl 5-9 set ref 485 496 508 513* 515* 563 event_msg 000112 automatic fixed bin(71,0) dcl 38 set ref 144 146* 151* foreign_socket 13 based structure array level 2 in structure "socket_array" packed unaligned dcl 71 in procedure "ncp_access_" foreign_socket 13 based structure level 2 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" fsoc 12 based bit(64) level 2 packed unaligned dcl 5-9 ref 438 447 gdt based structure level 1 dcl 5-9 gdtp based pointer level 2 dcl 5-48 ref 398 global_queue 32 based structure level 2 dcl 5-9 gpr 000130 automatic pointer dcl 38 set ref 398* 403 407 415 438 447 469 470 485 496 503 508 513 515 521 536 537 561 563 576 580 591 595 597 607 616 629 638 650 668 670 692 700 707 721 728 733 734 736 738 gq_host_id 37 based fixed bin(32,0) level 3 dcl 5-9 set ref 415* 616 650 721 734 736 haddr 000176 automatic structure level 1 dcl 777 set ref 796* hash_index 7(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-61 ref 861 hep 000240 automatic pointer dcl 953 set ref 960* 962 962 966 968 968 973 976 976 977 979 982 982 988 989 991 991 993 993 1002* 1004 1004 1006 1008 1008 1017* 1019 1019 1022 1023 1026 1029 1029 history 27 based structure level 2 dcl 2-13 host 13 based structure level 3 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" ref 232 host 0(08) 000144 automatic bit(8) level 2 in structure "hostaddr" packed unaligned dcl 55 in procedure "ncp_access_" set ref 243 243 251 251 host 0(08) 000176 automatic bit(8) level 2 in structure "haddr" packed unaligned dcl 777 in procedure "bring_host_up" set ref 802 802 815 815 host based structure level 1 dcl 2-61 in procedure "ncp_access_" host_address based structure level 1 dcl 2-87 host_array based structure array level 1 dcl 74 set ref 225 225 298 298 host_code 000102 automatic fixed bin(16,0) dcl 38 set ref 616* 623* 650* 661* 721* 725* host_entry_index 16 based fixed bin(17,0) level 2 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" ref 223 296 host_entry_index 16 based fixed bin(17,0) array level 2 in structure "socket_array" packed unaligned dcl 71 in procedure "ncp_access_" set ref 861 host_entry_ptr 000166 automatic pointer dcl 758 set ref 764* 766 host_id 50 based fixed bin(32,0) level 2 dcl 4-10 ref 452 host_num 000177 automatic fixed bin(16,0) dcl 786 in procedure "bring_host_up" set ref 795* 796 host_num 000103 automatic fixed bin(16,0) dcl 38 in procedure "ncp_access_" set ref 233* 318* 325* 353* 360* host_number 10 based fixed bin(32,0) level 2 dcl 2-61 ref 795 930 930 host_ptr 000126 automatic pointer dcl 38 set ref 325* 326 334* 336* 337* 338* 340* 360* 362 370* 623* 624 633 642* 643* 644* 661* 662 665 678* 685* 694* 695* 698 699 702* 703* 704* 707* 710* 711* 725* 726 738* host_state 3(09) based bit(6) level 2 packed unaligned dcl 2-61 set ref 633 665 926 927* 930 930 966 host_tb_index 000104 automatic fixed bin(17,0) dcl 38 set ref 223* 225 225 296* 298 298 hostaddr 000144 automatic structure level 1 dcl 55 set ref 232* 233 hpr 000132 automatic pointer dcl 38 set ref 222* 225 225 295* 298 298 htbl_lock 14 based bit(36) level 2 dcl 4-10 set ref 322 357 620 658 i 000106 automatic fixed bin(17,0) dcl 38 set ref 407* 408 408 415* 432 455* 456 456 459* 529* 530* 534* 535 541 547 549 icode 000111 automatic fixed bin(35,0) dcl 38 set ref 420* 461* 466* 467 475* 513* 515* 516 517* 528* 551* 552* 589* 621* 659* 698* 699* 802* 804 806* 812* 815* 817 819* 825* 835* 836 838* 843* 844 846* 863* 895* 906* imp 0(16) 000176 automatic bit(16) level 2 in structure "haddr" packed unaligned dcl 777 in procedure "bring_host_up" set ref 802 802 815 815 imp 0(16) 000144 automatic bit(16) level 2 in structure "hostaddr" packed unaligned dcl 55 in procedure "ncp_access_" set ref 243 243 251 251 imp_attach_read 000042 constant entry external dcl 103 ref 251 802 imp_attach_write 000044 constant entry external dcl 103 ref 243 815 imp_detach_read 000046 constant entry external dcl 103 ref 291 835 imp_detach_write 000050 constant entry external dcl 103 ref 286 843 imp_read_order 000056 constant entry external dcl 103 ref 256 698 812 imp_reattach_read 000052 constant entry external dcl 103 ref 515 imp_reattach_write 000054 constant entry external dcl 103 ref 513 imp_write_order 000060 constant entry external dcl 103 ref 248 699 825 impdim_index 16(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-13 set ref 217 259* 279 280* 307* 511 impdim_mode 000202 automatic fixed bin(12,0) dcl 786 set ref 811* 812* 824* 825* index builtin function dcl 123 ref 973 979 j 000107 automatic fixed bin(17,0) dcl 38 set ref 511* 512 513* 515* level$get 000062 constant entry external dcl 103 ref 486 493 497 501 509 564 link_indx 000105 automatic fixed bin(17,0) dcl 38 in procedure "ncp_access_" set ref 243* 248* 251* 256* 259 279* 282 286* 291* 302* link_indx 000200 automatic fixed bin(17,0) dcl 786 in procedure "bring_host_up" set ref 802* 809 812* 815* 822 825* link_num 000101 automatic fixed bin(8,0) dcl 38 set ref 225* 229 235* 237* 243* 251* 274* 276 298* 302* link_number 15(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-13 set ref 229* 235 274 306* local_socket 11 based structure level 2 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" set ref 567* local_socket 11 based structure array level 2 in structure "socket_array" packed unaligned dcl 71 in procedure "ncp_access_" lock based bit(36) level 2 in structure "host" dcl 2-61 in procedure "ncp_access_" set ref 962 962 968 968 982 982 993 993 1004 1004 1008 1008 1019 1019 1029 1029 lock 4 based bit(36) level 2 in structure "socket" dcl 2-13 in procedure "ncp_access_" set ref 460 551 551 553 588 lock_id 000115 automatic bit(36) dcl 38 set ref 465* 466 466 lockid 17 based bit(36) level 2 dcl 5-48 ref 483 566 lockp 000122 automatic pointer dcl 38 set ref 322* 323* 328* 342* 357* 358* 364* 372* 400* 420 420* 460* 461* 527* 528* 552* 553* 588* 589* 618* 620* 621* 626* 627* 635* 636* 656* 658* 659* 723* lsoct 000120 automatic bit(64) unaligned dcl 38 set ref 438* 439* 447* 452* 456 567 568 meter_dt based structure level 1 dcl 4-52 mod builtin function dcl 123 ref 174 175 558 559 991 mpr 000134 automatic pointer dcl 38 set ref 543* 545 545 732* 733 734 msg_allocation 10 based fixed bin(16,0) level 2 dcl 2-13 set ref 261* ncp_dt based structure level 1 dcl 4-10 ncp_error_ 000064 constant entry external dcl 103 ref 410 517 806 819 838 846 ncp_error_$croggle_socket 000066 constant entry external dcl 103 ref 475 863 ncp_ev_chan based fixed bin(71,0) level 2 dcl 4-10 set ref 802* 815* ncp_idx 3 based bit(36) level 2 packed unaligned dcl 5-9 set ref 469* 521* 536* 561* 576 595 ncp_lock_$lock_unlock 000070 constant entry external dcl 103 ref 328 342 364 372 420 552 626 635 968 982 993 1008 1029 ncp_lock_$lock_wait 000072 constant entry external dcl 103 ref 323 358 461 528 551 589 621 659 962 1004 1019 ncp_lock_$verify_lock 000074 constant entry external dcl 103 ref 466 ncp_procid 2 based bit(36) level 2 dcl 4-10 set ref 802* 815* ncp_state_changes 31 based fixed bin(17,0) level 2 dcl 4-10 ref 558 ncp_tables_$host_tbl 000012 external static fixed bin(17,0) dcl 83 set ref 222 295 ncp_tables_$meter_cells 000014 external static fixed bin(17,0) dcl 83 set ref 543 732 ncp_tables_$ncp_data 000016 external static fixed bin(17,0) dcl 83 set ref 320 355 405 ncp_tables_$socket_tbl 000020 external static fixed bin(17,0) dcl 83 set ref 404 858 ncp_tables_$tracing_info 000010 external static bit(36) dcl 79 ref 178 197 237 302 415 930 ncp_trace_ 000076 constant entry external dcl 103 ref 178 197 237 302 415 930 ncp_util_$find_host_entry 000100 constant entry external dcl 103 ref 764 ncp_util_$send_control_message 000102 constant entry external dcl 103 ref 738 895 906 net 000144 automatic bit(8) level 2 in structure "hostaddr" packed unaligned dcl 55 in procedure "ncp_access_" set ref 243 243 251 251 net 000176 automatic bit(8) level 2 in structure "haddr" packed unaligned dcl 777 in procedure "bring_host_up" set ref 802 802 815 815 netuid 16 based bit(24) level 2 dcl 5-48 ref 439 nidx 000110 automatic fixed bin(17,0) dcl 38 set ref 576* 578 578 585 npr 000136 automatic pointer dcl 38 set ref 320* 322 355* 357 405* 452 455 527 529 534 535 541 558 578 620 658 802 802 815 815 860 null builtin function dcl 123 ref 326 362 400 420 618 624 627 636 656 662 698 698 699 699 723 726 812 812 825 825 num_activations 24 based fixed bin(17,0) level 2 in structure "pdt" dcl 5-48 in procedure "ncp_access_" set ref 556* 556 559 num_activations 176 based fixed bin(30,0) level 2 in structure "meter_dt" dcl 4-52 in procedure "ncp_access_" set ref 545* 545 num_connections 7 based fixed bin(17,0) level 2 packed unaligned dcl 2-61 set ref 991* 991 num_state_changes 27 based fixed bin(11,0) level 3 packed unaligned dcl 2-13 set ref 174* 174 175 overseer_event_channel 2 based fixed bin(71,0) level 2 dcl 2-13 set ref 151 151* 485* 496* 563* overseer_lock_id 20 based bit(36) level 2 dcl 2-13 set ref 465 483* 566* overseer_process_id 6 based bit(36) level 2 dcl 2-13 set ref 151 151* 463 484* 493 565* 590 overseer_validation_level 17(30) based bit(3) level 2 packed unaligned dcl 2-13 set ref 486* 493 497* 498 564* p_create_slot parameter bit(1) unaligned dcl 751 set ref 746 764* p_err_code parameter fixed bin(35,0) dcl 945 set ref 940 962* 963 969* 983* p_host_entry_ptr parameter pointer dcl 945 ref 940 960 999 1002 1014 1017 p_host_num parameter fixed bin(16,0) dcl 751 set ref 746 764* p_host_ptr parameter pointer dcl 919 in procedure "set_host_state" ref 914 926 926 927 928 930 930 930 930 p_host_ptr parameter pointer dcl 881 in procedure "send_RST_control_message" set ref 876 895* 901 906* p_host_ptr parameter pointer dcl 780 in procedure "bring_host_up" set ref 772 795 798* 800* 809 822 832 835 841 843 849 855 861 p_link_num parameter fixed bin(8,0) dcl 945 ref 999 1006 p_new_host_state parameter fixed bin(6,0) dcl 919 ref 914 927 pdt based structure level 1 dcl 5-48 prev_state 27(12) based fixed bin(5,0) array level 3 packed unaligned dcl 2-13 set ref 175* 175 previous_host_state 3(15) based bit(6) level 2 packed unaligned dcl 2-61 set ref 926* proc_id_arg 21 based bit(36) level 2 dcl 5-9 ref 607 process_id 5 based bit(36) level 2 dcl 2-13 set ref 146* 151 243* 251* 463 507* 565* 590 607* processid 20 based bit(36) level 2 dcl 5-48 ref 436 445 584 procid 000116 automatic bit(36) dcl 38 set ref 436* 445* 463 463 484 493 507 513* 515* 565 584* 590 590 procp 000140 automatic pointer dcl 38 set ref 397* 398 436 439 445 483 556 556 559 566 584 pxss$wakeup_int 000104 constant entry external dcl 103 ref 146 151 rcv_link_index 1 based fixed bin(17,0) level 2 packed unaligned dcl 2-61 set ref 698 809* 835 841* read_links_assigned 2 based bit(32) level 2 packed unaligned dcl 2-61 set ref 976 989* 1006* 1022* read_links_used 6 based bit(32) level 2 packed unaligned dcl 2-61 set ref 973 976* 977* 979 988* 1023* 1026* request_code 2 based fixed bin(12,0) level 2 dcl 5-9 ref 407 668 692 700 707 reset_message 000220 automatic bit(8) unaligned dcl 887 set ref 893* 895 895 904* 906 906 send_gender 17(14) based bit(1) level 2 packed unaligned dcl 2-13 set ref 220 237 237 241 284 302 302 513 568* signal_event_channel 24 based fixed bin(71,0) level 2 dcl 2-13 set ref 490* 602* sock_indx 000201 automatic fixed bin(17,0) dcl 786 set ref 860* 861 863 863 863 863* socket based structure level 1 dcl 2-13 socket_array based structure array level 1 dcl 71 set ref 459 547 585 863 863 socket_index 26 based bit(36) level 2 dcl 2-13 set ref 178* 197* 521 549* 557* 558* 559* 561 595 socket_num 11(32) based bit(32) array level 3 packed unaligned dcl 71 set ref 456 socket_ptr 000124 automatic pointer dcl 38 set ref 142* 146 146 146 151 151 151 151 151 151 164* 168 168 170 172 174 174 175 175 175 175 178 178 178 195* 197 200* 202 203 215* 217 217* 220 223 229 232 234 235 237 237 241 243 243 251 251 259 260 261 272* 274 279 280 284 296 302 302 306 307 459* 460 463 463 465 473 475* 479* 480 483 484 485 486 487 489 490 493 493 496 497 498 498 501 507 508 509 511 513 521 547* 548* 549 550* 551 551 553 557 558 559 561 563 563 564 564 565 565 566 567 568 569 585* 586 588 590 590 595 601 602 604 605 607 609* spr 000142 automatic pointer dcl 38 set ref 404* 456 456 459 530 547 585 858* 861 863 863 863 863 state 17 based bit(6) array level 2 in structure "socket_array" packed unaligned dcl 71 in procedure "ncp_access_" set ref 456 530 863 863 state 17 based bit(6) level 2 in structure "socket" packed unaligned dcl 2-13 in procedure "ncp_access_" set ref 168* 170* 175 178 178 473 586 status 000114 automatic bit(18) unaligned dcl 38 set ref 248* 256* 698* 699* 812* 825* stbl_gent 12 based fixed bin(17,0) level 2 dcl 4-10 set ref 455 529 534 541* 578 860 stbl_lock 16 based bit(36) level 2 dcl 4-10 set ref 527 stbl_size 6 based fixed bin(17,0) level 2 dcl 4-10 ref 535 string builtin function dcl 123 set ref 233 567* 796* substr builtin function dcl 123 set ref 202* 203* 439* 452* 456 557* 558* 559* 568 977* 988* 989* 1006* 1026* time_state_changed 4 based fixed bin(71,0) level 2 in structure "host" dcl 2-61 in procedure "ncp_access_" set ref 928* time_state_changed 22 based fixed bin(71,0) level 2 in structure "socket" dcl 2-13 in procedure "ncp_access_" set ref 172* validation_level 17(33) based bit(3) level 2 packed unaligned dcl 2-13 set ref 487* 498* 501 509* 564* 605* xmit_link_index 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-61 set ref 699 822* 843 849* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANY_TRACING internal static bit(36) initial dcl 3-51 HOST_ON internal static fixed bin(6,0) initial dcl 3-20 IMP_ORDER_block_link internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_clear_host_state internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_clear_pgqlrr internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_get_allocation_status internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_get_byte_size internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_get_status internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_imp_ascii internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_imp_octal internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_multiple_message_mode internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_no_ncp internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_normal_leader internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_pgqlrr internal static fixed bin(12,0) initial dcl 1-9 IMP_ORDER_unblock_link internal static fixed bin(12,0) initial dcl 1-9 NCP_CRASHED internal static fixed bin(3,0) initial dcl 3-8 NCP_DOWN internal static fixed bin(3,0) initial dcl 3-8 NCP_UP internal static fixed bin(3,0) initial dcl 3-8 NCP_UP_IMP_DOWN internal static fixed bin(3,0) initial dcl 3-8 PRINTER_TRACING internal static bit(36) initial dcl 3-51 SOCK_CLS_READ internal static fixed bin(6,0) initial dcl 3-28 SOCK_CLS_WAIT internal static fixed bin(6,0) initial dcl 3-28 SOCK_CONNECTED internal static fixed bin(6,0) initial dcl 3-28 SOCK_DATA_WAIT internal static fixed bin(6,0) initial dcl 3-28 SOCK_RESET internal static fixed bin(6,0) initial dcl 3-28 SOCK_RFC_ABORTED internal static fixed bin(6,0) initial dcl 3-28 SOCK_RFC_RCVD internal static fixed bin(6,0) initial dcl 3-28 SOCK_RFNM_WAIT internal static fixed bin(6,0) initial dcl 3-28 SOCK_UNIQUE_MASK internal static bit(36) initial unaligned dcl 3-46 SYSERR_LOG_TRACING internal static bit(36) initial dcl 3-51 TRACE_CTL_MSGS internal static bit(36) initial dcl 3-51 TRACE_DATA_FLOW internal static bit(36) initial dcl 3-51 TRACE_NCP_CONTROL internal static bit(36) initial dcl 3-51 TRACE_NCP_DAEMON internal static bit(36) initial dcl 3-51 TRACE_NCP_IO internal static bit(36) initial dcl 3-51 TRACE_NCP_RING internal static bit(36) initial dcl 3-51 TRACE_PROCESS_INFO internal static bit(36) initial dcl 3-51 error_snapshot based structure level 1 dcl 5-64 rcvd_rfc based structure level 1 dcl 2-80 NAMES DECLARED BY EXPLICIT CONTEXT. assign_link 000535 constant entry external dcl 210 bring_host_up 003377 constant entry internal dcl 772 ref 337 642 703 change_socket_state 000321 constant entry external dcl 159 ref 479 550 choose_link 004261 constant entry internal dcl 940 ref 225 common_activate 001656 constant label dcl 452 ref 441 448 476 deactivate_socket 000450 constant entry external dcl 190 ref 548 elab 000000 constant label array(20:29) dcl 436 ref 432 find_host_slot 003352 constant entry internal dcl 746 ref 325 360 623 661 725 flab 000012 constant label array(24:28) dcl 678 ref 668 got_one 002403 constant label dcl 543 ref 530 ncp_access_ 000213 constant entry external dcl 11 nhc_host_disabled 003135 constant label dcl 670 ref 662 665 np_inv 002631 constant label dcl 580 ref 586 process_RRP 001374 constant entry external dcl 348 process_RST 001265 constant entry external dcl 313 process_request 001621 constant entry internal dcl 427 ref 418 process_rq 001474 constant entry external dcl 393 release_link 004502 constant entry internal dcl 999 ref 298 reset_host_data 004024 constant entry internal dcl 855 ref 334 685 reset_link_table 004556 constant entry internal dcl 1014 ref 798 send_RRP_control_message 004141 constant entry internal dcl 901 ref 340 send_RST_control_message 004110 constant entry internal dcl 876 ref 643 710 set_host_state 004173 constant entry internal dcl 914 ref 338 370 644 678 695 704 707 711 800 signal_process 000225 constant entry external dcl 137 ref 609 take_host_down 003705 constant entry internal dcl 832 ref 336 694 702 unassign_link 001106 constant entry external dcl 267 ref 200 217 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5412 5520 4732 5422 Length 6134 4732 106 377 457 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ncp_access_ 363 external procedure is an external procedure. process_request internal procedure shares stack frame of external procedure ncp_access_. find_host_slot internal procedure shares stack frame of external procedure ncp_access_. bring_host_up internal procedure shares stack frame of external procedure ncp_access_. send_RST_control_message internal procedure shares stack frame of external procedure ncp_access_. set_host_state internal procedure shares stack frame of external procedure ncp_access_. choose_link internal procedure shares stack frame of external procedure ncp_access_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ncp_access_ 000100 byte_size ncp_access_ 000101 link_num ncp_access_ 000102 host_code ncp_access_ 000103 host_num ncp_access_ 000104 host_tb_index ncp_access_ 000105 link_indx ncp_access_ 000106 i ncp_access_ 000107 j ncp_access_ 000110 nidx ncp_access_ 000111 icode ncp_access_ 000112 event_msg ncp_access_ 000114 status ncp_access_ 000115 lock_id ncp_access_ 000116 procid ncp_access_ 000120 lsoct ncp_access_ 000122 lockp ncp_access_ 000124 socket_ptr ncp_access_ 000126 host_ptr ncp_access_ 000130 gpr ncp_access_ 000132 hpr ncp_access_ 000134 mpr ncp_access_ 000136 npr ncp_access_ 000140 procp ncp_access_ 000142 spr ncp_access_ 000144 hostaddr ncp_access_ 000145 ctl_mess ncp_access_ 000166 host_entry_ptr find_host_slot 000176 haddr bring_host_up 000177 host_num bring_host_up 000200 link_indx bring_host_up 000201 sock_indx bring_host_up 000202 impdim_mode bring_host_up 000220 reset_message send_RST_control_message 000236 chosen_link choose_link 000240 hep choose_link THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ge_a call_ext_in call_ext_out_desc call_ext_out return mod_fx1 signal ext_entry index_bs_1_eis clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. imp_attach_read imp_attach_write imp_detach_read imp_detach_write imp_read_order imp_reattach_read imp_reattach_write imp_write_order level$get ncp_error_ ncp_error_$croggle_socket ncp_lock_$lock_unlock ncp_lock_$lock_wait ncp_lock_$verify_lock ncp_trace_ ncp_util_$find_host_entry ncp_util_$send_control_message pxss$wakeup_int THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_index error_table_$bad_processid error_table_$bad_ring_brackets error_table_$invalid_lock_reset error_table_$net_fhost_inactive error_table_$net_invalid_state error_table_$net_table_space error_table_$notalloc ncp_tables_$host_tbl ncp_tables_$meter_cells ncp_tables_$ncp_data ncp_tables_$socket_tbl ncp_tables_$tracing_info CONSTANTS 004633 aa 777777777760 004634 aa 000007700000 004636 aa 000004000000 004637 aa 000000000000 004640 aa 600000000041 004641 aa 000126000000 004642 ta 000040000000 004643 aa 000000000000 004644 aa 000004000000 004645 aa 000000000000 004646 aa 600000000041 004647 aa 000126000000 004650 ta 000037000000 004651 aa 000000000000 004652 aa 000004000000 004653 aa 000000000000 004654 aa 600000000041 004655 aa 000126000000 004656 ta 000050000000 004657 aa 000000000000 004660 aa 000006000000 004661 aa 000000000000 004662 aa 600000000041 004663 aa 000102000000 004664 aa 600000000041 004665 aa 000337000000 004666 aa 600000000041 004667 aa 000126000000 004670 aa 777773777777 004672 aa 000000000017 004673 aa 777777600000 004674 aa 000004000000 004675 aa 000000000000 004676 aa 600000000041 004677 aa 000126000000 004700 ta 000045000000 004701 aa 000000000000 004702 aa 000002000000 004703 aa 000000000000 004704 aa 600000000041 004705 aa 000126000000 004706 aa 000006000000 004707 aa 000000000000 004710 aa 600000000041 004711 aa 000103000000 004712 aa 600000000041 004713 aa 000256000000 004714 aa 600000000041 004715 aa 000126000000 004716 aa 000004000000 004717 aa 000000000000 004720 aa 600000000041 004721 aa 000302000000 004722 aa 600000000041 004723 aa 000101000000 004724 aa 000003777760 000017 aa 000020000000 000020 aa 000200000000 000021 aa 000000000017 004725 aa 000001000000 000022 aa 524000000034 000023 aa 524000000030 000024 aa 516000000001 004726 aa 000000010000 004727 aa 000000000020 000025 aa 524000000031 000026 aa 404000000040 000027 aa 524000000036 000030 aa 524000000022 000031 aa 404000000021 000032 aa 524000000056 000033 aa 524000000025 000034 aa 524000000027 000035 aa 524000000035 000036 aa 514000000044 004730 aa 000000000004 004731 aa 000000004000 000037 aa 000000000000 000040 aa 000000000003 000041 aa 404000000010 000042 aa 404000000003 000043 aa 464000000000 000044 aa 404000000043 000045 aa 000000000001 000046 aa 404000000020 000047 aa 404000000006 000050 aa 000000000002 000051 aa 404000000001 000052 aa 000000000000 000053 aa 000000000000 000054 aa 077777000043 000055 aa 000001000000 000056 aa 116 103 120 040 NCP 000057 aa 040 040 040 040 000060 aa 101 103 103 105 ACCE 000061 aa 123 123 137 142 SS_b 000062 aa 141 144 137 162 ad_r 000063 aa 145 161 165 145 eque 000064 aa 163 164 000 000 st 000065 aa 162 145 164 165 retu 000066 aa 162 156 137 143 rn_c 000067 aa 157 156 166 145 onve 000070 aa 162 163 151 157 rsio 000071 aa 156 137 145 162 n_er 000072 aa 162 157 162 000 ror 000073 aa 101 103 103 105 ACCE 000074 aa 123 123 137 144 SS_d 000075 aa 145 164 141 143 etac 000076 aa 150 137 167 162 h_wr 000077 aa 151 164 145 137 ite_ 000100 aa 154 151 156 153 link 000101 aa 101 103 103 105 ACCE 000102 aa 123 123 137 144 SS_d 000103 aa 145 164 141 143 etac 000104 aa 150 137 162 145 h_re 000105 aa 141 144 137 154 ad_l 000106 aa 151 156 153 000 ink 000107 aa 101 103 103 105 ACCE 000110 aa 123 123 137 162 SS_r 000111 aa 145 141 144 137 ead_ 000112 aa 143 157 156 164 cont 000113 aa 162 157 154 137 rol_ 000114 aa 154 151 156 153 link 000115 aa 101 123 123 111 ASSI 000116 aa 107 116 040 114 GN L 000117 aa 111 116 113 040 INK 000120 aa 136 144 040 146 ^d f 000121 aa 157 162 040 136 or ^ 000122 aa 144 000 000 000 d 000123 aa 104 145 141 143 Deac 000124 aa 164 151 166 141 tiva 000125 aa 164 151 156 147 ting 000126 aa 040 163 157 143 soc 000127 aa 153 145 164 040 ket 000130 aa 136 167 056 000 ^w. 000131 aa 110 157 163 164 Host 000132 aa 040 136 144 040 ^d 000133 aa 143 150 141 156 chan 000134 aa 147 145 144 040 ged 000135 aa 164 157 040 136 to ^ 000136 aa 144 040 163 164 d st 000137 aa 141 164 145 056 ate. 000140 aa 101 103 103 105 ACCE 000141 aa 123 123 137 167 SS_w 000142 aa 162 151 164 145 rite 000143 aa 137 143 157 156 _con 000144 aa 164 162 157 154 trol 000145 aa 137 154 151 156 _lin 000146 aa 153 000 000 000 k 000147 aa 101 103 103 105 ACCE 000150 aa 123 123 137 162 SS_r 000151 aa 145 141 164 164 eatt 000152 aa 141 143 150 151 achi 000153 aa 156 147 137 163 ng_s 000154 aa 157 143 153 145 ocke 000155 aa 164 000 000 000 t 000156 aa 156 143 160 137 ncp_ 000157 aa 141 143 143 145 acce 000160 aa 163 163 040 162 ss r 000161 aa 145 161 165 145 eque 000162 aa 163 164 040 136 st ^ 000163 aa 144 054 040 150 d, h 000164 aa 157 163 164 040 ost 000165 aa 136 144 000 000 ^d 000166 aa 123 157 143 153 Sock 000167 aa 145 164 040 136 et ^ 000170 aa 167 040 143 150 w ch 000171 aa 141 156 147 145 ange 000172 aa 144 040 164 157 d to 000173 aa 040 163 164 141 sta 000174 aa 164 145 040 136 te ^ 000175 aa 144 000 000 000 d 000176 aa 125 116 101 123 UNAS 000177 aa 123 111 107 116 SIGN 000200 aa 040 114 111 116 LIN 000201 aa 113 040 136 144 K ^d 000202 aa 040 146 157 162 for 000203 aa 040 164 171 160 typ 000204 aa 145 040 136 144 e ^d 000205 aa 040 050 151 155 (im 000206 aa 160 144 151 155 pdim 000207 aa 040 151 156 144 ind 000210 aa 145 170 040 136 ex ^ 000211 aa 144 051 000 000 d) LABEL ARRAYS 000000 aa 001624 7100 04 tra 916,ic 001624 000001 aa 001642 7100 04 tra 930,ic 001643 000002 aa 002615 7100 04 tra 1421,ic 002617 000003 aa 002746 7100 04 tra 1510,ic 002751 000004 aa 003062 7100 04 tra 1586,ic 003066 000005 aa 003061 7100 04 tra 1585,ic 003066 000006 aa 003060 7100 04 tra 1584,ic 003066 000007 aa 003057 7100 04 tra 1583,ic 003066 000010 aa 003056 7100 04 tra 1582,ic 003066 000011 aa 003247 7100 04 tra 1703,ic 003260 000012 aa 003133 7100 04 tra 1627,ic 003145 000013 aa 003132 7100 04 tra 1626,ic 003145 000014 aa 003131 7100 04 tra 1625,ic 003145 000015 aa 003130 7100 04 tra 1624,ic 003145 000016 aa 003124 7100 04 tra 1620,ic 003142 BEGIN PROCEDURE ncp_access_ ENTRY TO ncp_access_ STATEMENT 1 ON LINE 11 ncp_access_: procedure (); 000212 da 000365200000 000213 aa 000560 6270 00 eax7 368 000214 aa 7 00034 3521 20 epp2 pr7|28,* 000215 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000216 aa 000000000000 000217 aa 000000000000 STATEMENT 1 ON LINE 137 signal_process: entry (P_sock_ptr, P_wakeup_type, P_error_code); 000220 aa 000015 7100 04 tra 13,ic 000235 ENTRY TO signal_process STATEMENT 1 ON LINE 137 signal_process: entry (P_sock_ptr, P_wakeup_type, P_error_code); 000221 at 000003000043 000222 tt 000051000044 000223 ta 000221000000 000224 da 000374300000 000225 aa 000560 6270 00 eax7 368 000226 aa 7 00034 3521 20 epp2 pr7|28,* 000227 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000230 aa 000006000000 000231 aa 000000000000 000232 aa 6 00032 3735 20 epp7 pr6|26,* 000233 aa 7 00006 3715 20 epp5 pr7|6,* 000234 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 140 P_error_code = 0; 000235 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 142 socket_ptr = P_sock_ptr; 000236 aa 6 00032 3735 20 epp7 pr6|26,* 000237 aa 7 00002 3715 20 epp5 pr7|2,* P_sock_ptr 000240 aa 5 00000 3715 20 epp5 pr5|0,* P_sock_ptr 000241 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 144 addr (event_msg) -> based_char8 = "NCP"; 000242 aa 777614 2370 04 ldaq -116,ic 000056 = 116103120040 040040040040 000243 aa 6 00112 7571 00 staq pr6|74 based_char8 STATEMENT 1 ON LINE 146 if socket_ptr -> socket.event_channel ^= 0 then call pxss$wakeup_int (socket_ptr -> socket.process_id, socket_ptr -> socket.event_channel, event_msg, (0)); 000244 aa 5 00000 2371 00 ldaq pr5|0 socket.event_channel 000245 aa 000016 6000 04 tze 14,ic 000263 000246 aa 6 00243 4501 00 stz pr6|163 000247 aa 5 00005 3521 00 epp2 pr5|5 socket.process_id 000250 aa 6 00246 2521 00 spri2 pr6|166 000251 aa 5 00000 3521 00 epp2 pr5|0 socket.event_channel 000252 aa 6 00250 2521 00 spri2 pr6|168 000253 aa 6 00112 3521 00 epp2 pr6|74 event_msg 000254 aa 6 00252 2521 00 spri2 pr6|170 000255 aa 6 00243 3521 00 epp2 pr6|163 000256 aa 6 00254 2521 00 spri2 pr6|172 000257 aa 6 00244 6211 00 eax1 pr6|164 000260 aa 020000 4310 07 fld 8192,dl 000261 la 4 00104 3521 20 epp2 pr4|68,* pxss$wakeup_int 000262 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 149 if P_wakeup_type = 1 then do; 000263 aa 6 00032 3735 20 epp7 pr6|26,* 000264 aa 7 00004 2361 20 ldq pr7|4,* P_wakeup_type 000265 aa 000001 1160 07 cmpq 1,dl 000266 aa 000026 6010 04 tnz 22,ic 000314 STATEMENT 1 ON LINE 151 if (socket_ptr -> socket.overseer_process_id ^= socket_ptr -> socket.process_id) | (socket_ptr -> socket.event_channel ^= socket_ptr -> socket.overseer_event_channel) then call pxss$wakeup_int (socket_ptr -> socket.overseer_process_id, socket_ptr -> socket.overseer_event_channel, event_msg, (0)); 000267 aa 6 00124 3715 20 epp5 pr6|84,* socket_ptr 000270 aa 5 00006 2351 00 lda pr5|6 socket.overseer_process_id 000271 aa 5 00005 1151 00 cmpa pr5|5 socket.process_id 000272 aa 000004 6010 04 tnz 4,ic 000276 000273 aa 5 00000 2371 00 ldaq pr5|0 socket.event_channel 000274 aa 5 00002 1171 00 cmpaq pr5|2 socket.overseer_event_channel 000275 aa 000017 6000 04 tze 15,ic 000314 000276 aa 6 00243 4501 00 stz pr6|163 000277 aa 5 00006 3521 00 epp2 pr5|6 socket.overseer_process_id 000300 aa 6 00246 2521 00 spri2 pr6|166 000301 aa 5 00002 3521 00 epp2 pr5|2 socket.overseer_event_channel 000302 aa 6 00250 2521 00 spri2 pr6|168 000303 aa 6 00112 3521 00 epp2 pr6|74 event_msg 000304 aa 6 00252 2521 00 spri2 pr6|170 000305 aa 6 00243 3521 00 epp2 pr6|163 000306 aa 6 00254 2521 00 spri2 pr6|172 000307 aa 6 00244 6211 00 eax1 pr6|164 000310 aa 020000 4310 07 fld 8192,dl 000311 aa 6 00044 3701 20 epp4 pr6|36,* 000312 la 4 00104 3521 20 epp2 pr4|68,* pxss$wakeup_int 000313 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 153 end; STATEMENT 1 ON LINE 155 return; 000314 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO change_socket_state STATEMENT 1 ON LINE 159 change_socket_state: entry (P_sock_ptr, P_new_state, P_error_code); 000315 at 000003000043 000316 tt 000047000044 000317 ta 000315000000 000320 da 000404300000 000321 aa 000560 6270 00 eax7 368 000322 aa 7 00034 3521 20 epp2 pr7|28,* 000323 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000324 aa 000006000000 000325 aa 000000000000 000326 aa 6 00032 3735 20 epp7 pr6|26,* 000327 aa 7 00006 3715 20 epp5 pr7|6,* 000330 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 162 P_error_code = 0; 000331 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 164 socket_ptr = P_sock_ptr; 000332 aa 6 00032 3735 20 epp7 pr6|26,* 000333 aa 7 00002 3715 20 epp5 pr7|2,* P_sock_ptr 000334 aa 5 00000 3715 20 epp5 pr5|0,* P_sock_ptr 000335 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 168 if (P_new_state = SOCK_ASSIGNED) & (socket_ptr -> socket.allow_rfc_queuing) then socket_ptr -> socket.state = bit (binary (SOCK_LISTENING, 6)); 000336 aa 7 00004 2361 20 ldq pr7|4,* P_new_state 000337 aa 000001 1160 07 cmpq 1,dl 000340 aa 000012 6010 04 tnz 10,ic 000352 000341 aa 5 00017 2351 00 lda pr5|15 socket.allow_rfc_queuing 000342 aa 000001 3150 03 cana 1,du 000343 aa 000007 6000 04 tze 7,ic 000352 000344 aa 000002 2350 07 lda 2,dl 000345 aa 000002 6050 04 tpl 2,ic 000347 000346 aa 000000 5310 00 neg 0 000347 aa 000036 7350 00 als 30 000350 aa 5 00017 7511 40 stca pr5|15,40 socket.state 000351 aa 000006 7100 04 tra 6,ic 000357 STATEMENT 1 ON LINE 170 else socket_ptr -> socket.state = bit (binary (P_new_state, 6)); 000352 aa 7 00004 2351 20 lda pr7|4,* P_new_state 000353 aa 000002 6050 04 tpl 2,ic 000355 000354 aa 000000 5310 00 neg 0 000355 aa 000036 7350 00 als 30 000356 aa 5 00017 7511 40 stca pr5|15,40 socket.state STATEMENT 1 ON LINE 172 socket_ptr -> socket.time_state_changed = clock (); 000357 aa 0 01435 7001 00 tsx0 pr0|797 clock 000360 aa 5 00022 7571 00 staq pr5|18 socket.time_state_changed STATEMENT 1 ON LINE 174 socket_ptr -> socket.history.num_state_changes = mod (socket_ptr -> socket.history.num_state_changes + 1, 2048); 000361 aa 5 00027 2351 00 lda pr5|23 socket.num_state_changes 000362 aa 000074 7330 00 lrs 60 000363 aa 000001 0760 07 adq 1,dl 000364 aa 004345 3520 04 epp2 2277,ic 004731 = 000000004000 000365 aa 0 00704 7001 00 tsx0 pr0|452 mod_fx1 000366 aa 000074 7370 00 lls 60 000367 aa 5 00027 7511 60 stca pr5|23,60 socket.num_state_changes STATEMENT 1 ON LINE 175 socket_ptr -> socket.history.prev_state (mod (socket_ptr -> socket.history.num_state_changes, dimension (socket_ptr -> socket.prev_state, 1))) = binary (socket_ptr -> socket.state); 000370 aa 5 00027 2351 00 lda pr5|23 socket.num_state_changes 000371 aa 000074 7330 00 lrs 60 000372 aa 004336 3520 04 epp2 2270,ic 004730 = 000000000004 000373 aa 0 00704 7001 00 tsx0 pr0|452 mod_fx1 000374 aa 000006 4020 07 mpy 6,dl 000375 aa 5 00017 2351 00 lda pr5|15 socket.state 000376 aa 000000 6270 06 eax7 0,ql 000377 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 000400 aa 6 00256 7551 00 sta pr6|174 socket.state 000401 aa 000102 7730 00 lrl 66 000402 aa 000102 7370 00 lls 66 000403 aa 6 00056 7551 00 sta pr6|46 000404 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 000405 aa 6 00056 00 0006 descb pr6|46,6 000406 aa 5 00027 23 0006 descb pr5|23(12),6 socket.prev_state STATEMENT 1 ON LINE 178 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_ACCESS, "Socket ^w changed to state ^d", socket_ptr -> socket.socket_index, binary (socket_ptr -> socket.state, 6)); 000407 aa 6 00044 3701 20 epp4 pr6|36,* 000410 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 000411 aa 000032 6000 04 tze 26,ic 000443 000412 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000413 aa 777554 00 0040 desc9a -148,32 000166 = 123157143153 000414 aa 6 00244 00 0040 desc9a pr6|164,32 000415 aa 6 00256 2351 00 lda pr6|174 socket.state 000416 aa 000102 7730 00 lrl 66 000417 aa 6 00243 7561 00 stq pr6|163 000420 aa 777400 3520 04 epp2 -256,ic 000020 = 000200000000 000421 aa 6 00262 2521 00 spri2 pr6|178 000422 aa 6 00244 3521 00 epp2 pr6|164 000423 aa 6 00264 2521 00 spri2 pr6|180 000424 aa 5 00026 3521 00 epp2 pr5|22 socket.socket_index 000425 aa 6 00266 2521 00 spri2 pr6|182 000426 aa 6 00243 3521 00 epp2 pr6|163 000427 aa 6 00270 2521 00 spri2 pr6|184 000430 aa 777406 3520 04 epp2 -250,ic 000036 = 514000000044 000431 aa 6 00272 2521 00 spri2 pr6|186 000432 aa 6 00276 2521 00 spri2 pr6|190 000433 aa 777402 3520 04 epp2 -254,ic 000035 = 524000000035 000434 aa 6 00274 2521 00 spri2 pr6|188 000435 aa 777412 3520 04 epp2 -246,ic 000047 = 404000000006 000436 aa 6 00300 2521 00 spri2 pr6|192 000437 aa 6 00260 6211 00 eax1 pr6|176 000440 aa 020000 4310 07 fld 8192,dl 000441 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 000442 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 182 return; 000443 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO deactivate_socket STATEMENT 1 ON LINE 190 deactivate_socket: entry (P_sock_ptr, P_error_code); 000444 at 000002000043 000445 ta 000044000000 000446 ta 000444000000 000447 da 000414300000 000450 aa 000560 6270 00 eax7 368 000451 aa 7 00034 3521 20 epp2 pr7|28,* 000452 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000453 aa 000004000000 000454 aa 000000000000 000455 aa 6 00032 3735 20 epp7 pr6|26,* 000456 aa 7 00004 3715 20 epp5 pr7|4,* 000457 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 193 P_error_code = 0; 000460 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 195 socket_ptr = P_sock_ptr; 000461 aa 6 00032 3735 20 epp7 pr6|26,* 000462 aa 7 00002 3715 20 epp5 pr7|2,* P_sock_ptr 000463 aa 5 00000 3715 20 epp5 pr5|0,* P_sock_ptr 000464 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 197 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_ACCESS, "Deactivating socket ^w.", socket_ptr -> socket.socket_index); 000465 aa 6 00044 3701 20 epp4 pr6|36,* 000466 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 000467 aa 000023 6000 04 tze 19,ic 000512 000470 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000471 aa 777433 00 0030 desc9a -229,24 000123 = 104145141143 000472 aa 6 00244 00 0030 desc9a pr6|164,24 000473 aa 777325 3520 04 epp2 -299,ic 000020 = 000200000000 000474 aa 6 00262 2521 00 spri2 pr6|178 000475 aa 6 00244 3521 00 epp2 pr6|164 000476 aa 6 00264 2521 00 spri2 pr6|180 000477 aa 5 00026 3521 00 epp2 pr5|22 socket.socket_index 000500 aa 6 00266 2521 00 spri2 pr6|182 000501 aa 777335 3520 04 epp2 -291,ic 000036 = 514000000044 000502 aa 6 00270 2521 00 spri2 pr6|184 000503 aa 6 00274 2521 00 spri2 pr6|188 000504 aa 777330 3520 04 epp2 -296,ic 000034 = 524000000027 000505 aa 6 00272 2521 00 spri2 pr6|186 000506 aa 6 00260 6211 00 eax1 pr6|176 000507 aa 014000 4310 07 fld 6144,dl 000510 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 000511 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 200 call unassign_link (socket_ptr, (0)); 000512 aa 6 00243 4501 00 stz pr6|163 000513 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 000514 aa 6 00246 2521 00 spri2 pr6|166 000515 aa 6 00243 3521 00 epp2 pr6|163 000516 aa 6 00250 2521 00 spri2 pr6|168 000517 aa 6 00244 6211 00 eax1 pr6|164 000520 aa 010000 4310 07 fld 4096,dl 000521 aa 000365 3520 04 epp2 245,ic 001106 = 000560627000 000522 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 202 substr (socket_ptr -> based_bits, 1, 144) = ""b; 000523 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 000524 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 000525 aa 000000 00 0000 descb 0,0 000526 aa 7 00000 00 0220 descb pr7|0,144 based_bits STATEMENT 1 ON LINE 203 substr (socket_ptr -> based_bits, 181, 684) = ""b; 000527 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 000530 aa 000000 00 0000 descb 0,0 000531 aa 7 00005 00 1254 descb pr7|5,684 based_bits STATEMENT 1 ON LINE 206 return; 000532 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO assign_link STATEMENT 1 ON LINE 210 assign_link: entry (P_sock_ptr, P_error_code); 000533 ta 000444000000 000534 da 000422300000 000535 aa 000560 6270 00 eax7 368 000536 aa 7 00034 3521 20 epp2 pr7|28,* 000537 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000540 aa 000004000000 000541 aa 000000000000 000542 aa 6 00032 3735 20 epp7 pr6|26,* 000543 aa 7 00004 3715 20 epp5 pr7|4,* 000544 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 213 P_error_code = 0; 000545 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 215 socket_ptr = P_sock_ptr; 000546 aa 6 00032 3735 20 epp7 pr6|26,* 000547 aa 7 00002 3715 20 epp5 pr7|2,* P_sock_ptr 000550 aa 5 00000 3715 20 epp5 pr5|0,* P_sock_ptr 000551 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 217 if socket_ptr -> socket.impdim_index ^= 0 then call unassign_link (socket_ptr, (0)); 000552 aa 5 00016 2351 00 lda pr5|14 socket.impdim_index 000553 aa 000022 7350 00 als 18 000554 aa 000066 7330 00 lrs 54 000555 aa 000012 6000 04 tze 10,ic 000567 000556 aa 6 00243 4501 00 stz pr6|163 000557 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 000560 aa 6 00246 2521 00 spri2 pr6|166 000561 aa 6 00243 3521 00 epp2 pr6|163 000562 aa 6 00250 2521 00 spri2 pr6|168 000563 aa 6 00244 6211 00 eax1 pr6|164 000564 aa 010000 4310 07 fld 4096,dl 000565 aa 000321 3520 04 epp2 209,ic 001106 = 000560627000 000566 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 220 if socket_ptr -> socket.send_gender = READ_GENDER then do; 000567 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 000570 aa 7 00017 2351 00 lda pr7|15 socket.send_gender 000571 aa 000010 3150 03 cana 8,du 000572 aa 000031 6010 04 tnz 25,ic 000623 STATEMENT 1 ON LINE 222 hpr = addr (ncp_tables_$host_tbl); 000573 aa 6 00044 3701 20 epp4 pr6|36,* 000574 la 4 00012 3715 20 epp5 pr4|10,* ncp_tables_$host_tbl 000575 aa 6 00132 6515 00 spri5 pr6|90 hpr STATEMENT 1 ON LINE 223 host_tb_index = socket_ptr -> socket.host_entry_index; 000576 aa 7 00016 2351 00 lda pr7|14 socket.host_entry_index 000577 aa 000066 7330 00 lrs 54 000600 aa 6 00104 7561 00 stq pr6|68 host_tb_index STATEMENT 1 ON LINE 225 link_num = choose_link (addr (hpr -> host_array (host_tb_index)), P_error_code); 000601 aa 000012 4020 07 mpy 10,dl 000602 aa 5 77766 3535 06 epp3 pr5|-10,ql host_array 000603 aa 6 00302 2535 00 spri3 pr6|194 000604 aa 6 00302 3521 00 epp2 pr6|194 000605 aa 6 00246 2521 00 spri2 pr6|166 000606 aa 6 00146 3521 20 epp2 pr6|102,* P_error_code 000607 aa 6 00250 2521 00 spri2 pr6|168 000610 aa 6 00101 3521 00 epp2 pr6|65 link_num 000611 aa 6 00252 2521 00 spri2 pr6|170 000612 aa 6 00244 3521 00 epp2 pr6|164 000613 aa 014000 4310 07 fld 6144,dl 000614 aa 2 00000 7571 00 staq pr2|0 000615 aa 003444 6700 04 tsp4 1828,ic 004261 STATEMENT 1 ON LINE 226 if P_error_code ^= 0 then return; 000616 aa 6 00146 2361 20 ldq pr6|102,* P_error_code 000617 aa 0 00631 6011 00 tnz pr0|409 return STATEMENT 1 ON LINE 229 socket_ptr -> socket.link_number = link_num; 000620 aa 6 00101 2361 00 ldq pr6|65 link_num 000621 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 000622 aa 7 00015 5521 14 stbq pr7|13,14 socket.link_number STATEMENT 1 ON LINE 230 end; STATEMENT 1 ON LINE 232 hostaddr = socket_ptr -> socket.foreign_socket.host; 000623 aa 7 00013 2351 00 lda pr7|11 socket.net 000624 aa 6 00144 6751 00 era pr6|100 hostaddr.net 000625 aa 0 00020 3751 00 ana pr0|16 = 776000000000 000626 aa 6 00144 6551 00 ersa pr6|100 hostaddr.net 000627 aa 7 00013 2351 00 lda pr7|11 socket.host 000630 aa 6 00144 6751 00 era pr6|100 hostaddr.host 000631 aa 001774 3750 03 ana 1020,du 000632 aa 6 00144 6551 00 ersa pr6|100 hostaddr.host 000633 aa 7 00013 2351 00 lda pr7|11 socket.imp 000634 aa 6 00144 6751 00 era pr6|100 hostaddr.imp 000635 aa 004067 3750 04 ana 2103,ic 004724 = 000003777760 000636 aa 6 00144 6551 00 ersa pr6|100 hostaddr.imp STATEMENT 1 ON LINE 233 host_num = binary (string (hostaddr), 32); 000637 aa 6 00144 2351 00 lda pr6|100 000640 aa 000050 7730 00 lrl 40 000641 aa 6 00103 7561 00 stq pr6|67 host_num STATEMENT 1 ON LINE 234 byte_size = binary (socket_ptr -> socket.byte_size, 8); 000642 aa 7 00017 2351 00 lda pr7|15 socket.byte_size 000643 aa 000006 7350 00 als 6 000644 aa 000100 7730 00 lrl 64 000645 aa 6 00100 7561 00 stq pr6|64 byte_size STATEMENT 1 ON LINE 235 link_num = binary (socket_ptr -> socket.link_number, 8); 000646 aa 7 00015 2351 00 lda pr7|13 socket.link_number 000647 aa 000022 7350 00 als 18 000650 aa 000066 7330 00 lrs 54 000651 aa 6 00101 7561 00 stq pr6|65 link_num STATEMENT 1 ON LINE 237 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_TBOP, "ASSIGN LINK ^d for ^d", link_num, binary (socket_ptr -> socket.send_gender, 1)); 000652 aa 6 00144 2351 00 lda pr6|100 hostaddr.net 000653 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 000654 aa 6 00243 7551 00 sta pr6|163 hostaddr.net 000655 aa 6 00144 2351 00 lda pr6|100 hostaddr.host 000656 aa 000010 7350 00 als 8 000657 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 000660 aa 6 00257 7551 00 sta pr6|175 hostaddr.host 000661 aa 6 00144 2351 00 lda pr6|100 hostaddr.imp 000662 aa 000020 7350 00 als 16 000663 aa 0 00040 3771 00 anaq pr0|32 = 777774000000 000000000000 000664 aa 6 00256 7551 00 sta pr6|174 hostaddr.imp 000665 aa 6 00044 3701 20 epp4 pr6|36,* 000666 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 000667 aa 000034 6000 04 tze 28,ic 000723 000670 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000671 aa 777225 00 0030 desc9a -363,24 000115 = 101123123111 000672 aa 6 00244 00 0030 desc9a pr6|164,24 000673 aa 7 00017 2351 00 lda pr7|15 socket.send_gender 000674 aa 000016 7350 00 als 14 000675 aa 000107 7730 00 lrl 71 000676 aa 6 00304 7561 00 stq pr6|196 000677 aa 777120 3520 04 epp2 -432,ic 000017 = 000020000000 000700 aa 6 00262 2521 00 spri2 pr6|178 000701 aa 6 00244 3521 00 epp2 pr6|164 000702 aa 6 00264 2521 00 spri2 pr6|180 000703 aa 6 00101 3521 00 epp2 pr6|65 link_num 000704 aa 6 00266 2521 00 spri2 pr6|182 000705 aa 6 00304 3521 00 epp2 pr6|196 000706 aa 6 00270 2521 00 spri2 pr6|184 000707 aa 777127 3520 04 epp2 -425,ic 000036 = 514000000044 000710 aa 6 00272 2521 00 spri2 pr6|186 000711 aa 777122 3520 04 epp2 -430,ic 000033 = 524000000025 000712 aa 6 00274 2521 00 spri2 pr6|188 000713 aa 777126 3520 04 epp2 -426,ic 000041 = 404000000010 000714 aa 6 00276 2521 00 spri2 pr6|190 000715 aa 777134 3520 04 epp2 -420,ic 000051 = 404000000001 000716 aa 6 00300 2521 00 spri2 pr6|192 000717 aa 6 00260 6211 00 eax1 pr6|176 000720 aa 020000 4310 07 fld 8192,dl 000721 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 000722 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 241 if socket_ptr -> socket.send_gender = WRITE_GENDER then do; 000723 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 000724 aa 7 00017 2351 00 lda pr7|15 socket.send_gender 000725 aa 000016 7350 00 als 14 000726 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 000727 aa 400000 1150 03 cmpa 131072,du 000730 aa 000064 6010 04 tnz 52,ic 001014 STATEMENT 1 ON LINE 243 call imp_attach_write (binary (hostaddr.net), binary (hostaddr.imp), binary (hostaddr.host), link_num, socket_ptr -> socket.process_id, socket_ptr -> socket.event_channel, link_indx, P_error_code); 000731 aa 6 00243 2351 00 lda pr6|163 hostaddr.net 000732 aa 000100 7730 00 lrl 64 000733 aa 6 00304 7561 00 stq pr6|196 000734 aa 6 00256 2351 00 lda pr6|174 hostaddr.imp 000735 aa 000070 7730 00 lrl 56 000736 aa 6 00305 7561 00 stq pr6|197 000737 aa 6 00257 2351 00 lda pr6|175 hostaddr.host 000740 aa 000100 7730 00 lrl 64 000741 aa 6 00306 7561 00 stq pr6|198 000742 aa 6 00304 3521 00 epp2 pr6|196 000743 aa 6 00262 2521 00 spri2 pr6|178 000744 aa 6 00305 3521 00 epp2 pr6|197 000745 aa 6 00264 2521 00 spri2 pr6|180 000746 aa 6 00306 3521 00 epp2 pr6|198 000747 aa 6 00266 2521 00 spri2 pr6|182 000750 aa 6 00101 3521 00 epp2 pr6|65 link_num 000751 aa 6 00270 2521 00 spri2 pr6|184 000752 aa 7 00005 3521 00 epp2 pr7|5 socket.process_id 000753 aa 6 00272 2521 00 spri2 pr6|186 000754 aa 7 00000 3521 00 epp2 pr7|0 socket.event_channel 000755 aa 6 00274 2521 00 spri2 pr6|188 000756 aa 6 00105 3521 00 epp2 pr6|69 link_indx 000757 aa 6 00276 2521 00 spri2 pr6|190 000760 aa 6 00146 3521 20 epp2 pr6|102,* P_error_code 000761 aa 6 00300 2521 00 spri2 pr6|192 000762 aa 6 00260 6211 00 eax1 pr6|176 000763 aa 040000 4310 07 fld 16384,dl 000764 aa 6 00044 3701 20 epp4 pr6|36,* 000765 la 4 00044 3521 20 epp2 pr4|36,* imp_attach_write 000766 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 246 if P_error_code ^= 0 then return; 000767 aa 6 00146 2361 20 ldq pr6|102,* P_error_code 000770 aa 0 00631 6011 00 tnz pr0|409 return STATEMENT 1 ON LINE 248 call imp_write_order (link_indx, IMP_ORDER_set_byte_size, addr (byte_size), status, (0)); 000771 aa 6 00100 3735 00 epp7 pr6|64 byte_size 000772 aa 6 00302 6535 00 spri7 pr6|194 000773 aa 6 00306 4501 00 stz pr6|198 000774 aa 6 00105 3521 00 epp2 pr6|69 link_indx 000775 aa 6 00262 2521 00 spri2 pr6|178 000776 aa 777023 3520 04 epp2 -493,ic 000021 = 000000000017 000777 aa 6 00264 2521 00 spri2 pr6|180 001000 aa 6 00302 3521 00 epp2 pr6|194 001001 aa 6 00266 2521 00 spri2 pr6|182 001002 aa 6 00114 3521 00 epp2 pr6|76 status 001003 aa 6 00270 2521 00 spri2 pr6|184 001004 aa 6 00306 3521 00 epp2 pr6|198 001005 aa 6 00272 2521 00 spri2 pr6|186 001006 aa 6 00260 6211 00 eax1 pr6|176 001007 aa 024000 4310 07 fld 10240,dl 001010 aa 6 00044 3701 20 epp4 pr6|36,* 001011 la 4 00060 3521 20 epp2 pr4|48,* imp_write_order 001012 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 249 end; 001013 aa 000063 7100 04 tra 51,ic 001076 STATEMENT 1 ON LINE 250 else do; STATEMENT 1 ON LINE 251 call imp_attach_read (binary (hostaddr.net), binary (hostaddr.imp), binary (hostaddr.host), link_num, socket_ptr -> socket.process_id, socket_ptr -> socket.event_channel, link_indx, P_error_code); 001014 aa 6 00243 2351 00 lda pr6|163 hostaddr.net 001015 aa 000100 7730 00 lrl 64 001016 aa 6 00306 7561 00 stq pr6|198 001017 aa 6 00256 2351 00 lda pr6|174 hostaddr.imp 001020 aa 000070 7730 00 lrl 56 001021 aa 6 00243 7561 00 stq pr6|163 001022 aa 6 00257 2351 00 lda pr6|175 hostaddr.host 001023 aa 000100 7730 00 lrl 64 001024 aa 6 00256 7561 00 stq pr6|174 001025 aa 6 00306 3521 00 epp2 pr6|198 001026 aa 6 00262 2521 00 spri2 pr6|178 001027 aa 6 00243 3521 00 epp2 pr6|163 001030 aa 6 00264 2521 00 spri2 pr6|180 001031 aa 6 00256 3521 00 epp2 pr6|174 001032 aa 6 00266 2521 00 spri2 pr6|182 001033 aa 6 00101 3521 00 epp2 pr6|65 link_num 001034 aa 6 00270 2521 00 spri2 pr6|184 001035 aa 7 00005 3521 00 epp2 pr7|5 socket.process_id 001036 aa 6 00272 2521 00 spri2 pr6|186 001037 aa 7 00000 3521 00 epp2 pr7|0 socket.event_channel 001040 aa 6 00274 2521 00 spri2 pr6|188 001041 aa 6 00105 3521 00 epp2 pr6|69 link_indx 001042 aa 6 00276 2521 00 spri2 pr6|190 001043 aa 6 00146 3521 20 epp2 pr6|102,* P_error_code 001044 aa 6 00300 2521 00 spri2 pr6|192 001045 aa 6 00260 6211 00 eax1 pr6|176 001046 aa 040000 4310 07 fld 16384,dl 001047 aa 6 00044 3701 20 epp4 pr6|36,* 001050 la 4 00042 3521 20 epp2 pr4|34,* imp_attach_read 001051 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 254 if P_error_code ^= 0 then return; 001052 aa 6 00146 2361 20 ldq pr6|102,* P_error_code 001053 aa 0 00631 6011 00 tnz pr0|409 return STATEMENT 1 ON LINE 256 call imp_read_order (link_indx, IMP_ORDER_set_byte_size, addr (byte_size), status, (0)); 001054 aa 6 00100 3735 00 epp7 pr6|64 byte_size 001055 aa 6 00302 6535 00 spri7 pr6|194 001056 aa 6 00256 4501 00 stz pr6|174 001057 aa 6 00105 3521 00 epp2 pr6|69 link_indx 001060 aa 6 00262 2521 00 spri2 pr6|178 001061 aa 776740 3520 04 epp2 -544,ic 000021 = 000000000017 001062 aa 6 00264 2521 00 spri2 pr6|180 001063 aa 6 00302 3521 00 epp2 pr6|194 001064 aa 6 00266 2521 00 spri2 pr6|182 001065 aa 6 00114 3521 00 epp2 pr6|76 status 001066 aa 6 00270 2521 00 spri2 pr6|184 001067 aa 6 00256 3521 00 epp2 pr6|174 001070 aa 6 00272 2521 00 spri2 pr6|186 001071 aa 6 00260 6211 00 eax1 pr6|176 001072 aa 024000 4310 07 fld 10240,dl 001073 aa 6 00044 3701 20 epp4 pr6|36,* 001074 la 4 00056 3521 20 epp2 pr4|46,* imp_read_order 001075 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 257 end; STATEMENT 1 ON LINE 259 socket_ptr -> socket.impdim_index = link_indx; 001076 aa 6 00105 2361 00 ldq pr6|69 link_indx 001077 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 001100 aa 7 00016 5521 14 stbq pr7|14,14 socket.impdim_index STATEMENT 1 ON LINE 260 socket_ptr -> socket.bit_allocation = 0; 001101 aa 7 00007 4501 00 stz pr7|7 socket.bit_allocation STATEMENT 1 ON LINE 261 socket_ptr -> socket.msg_allocation = 0; 001102 aa 7 00010 4501 00 stz pr7|8 socket.msg_allocation STATEMENT 1 ON LINE 263 return; 001103 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO unassign_link STATEMENT 1 ON LINE 267 unassign_link: entry (P_sock_ptr, P_error_code); 001104 ta 000444000000 001105 da 000431300000 001106 aa 000560 6270 00 eax7 368 001107 aa 7 00034 3521 20 epp2 pr7|28,* 001110 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001111 aa 000004000000 001112 aa 000000000000 001113 aa 6 00032 3735 20 epp7 pr6|26,* 001114 aa 7 00004 3715 20 epp5 pr7|4,* 001115 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 270 P_error_code = 0; 001116 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 272 socket_ptr = P_sock_ptr; 001117 aa 6 00032 3735 20 epp7 pr6|26,* 001120 aa 7 00002 3715 20 epp5 pr7|2,* P_sock_ptr 001121 aa 5 00000 3715 20 epp5 pr5|0,* P_sock_ptr 001122 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 274 link_num = binary (socket_ptr -> socket.link_number, 8); 001123 aa 5 00015 2351 00 lda pr5|13 socket.link_number 001124 aa 000022 7350 00 als 18 001125 aa 000066 7330 00 lrs 54 001126 aa 6 00101 7561 00 stq pr6|65 link_num STATEMENT 1 ON LINE 276 if link_num = 0 then return; 001127 aa 0 00631 6001 00 tze pr0|409 return STATEMENT 1 ON LINE 279 link_indx = socket_ptr -> socket.impdim_index; 001130 aa 5 00016 2351 00 lda pr5|14 socket.impdim_index 001131 aa 000022 7350 00 als 18 001132 aa 000066 7330 00 lrs 54 001133 aa 6 00105 7561 00 stq pr6|69 link_indx STATEMENT 1 ON LINE 280 socket_ptr -> socket.impdim_index = 0; 001134 aa 000000 2350 03 lda 0,du 001135 aa 5 00016 5511 14 stba pr5|14,14 socket.impdim_index STATEMENT 1 ON LINE 282 if link_indx ^= 0 then do; 001136 aa 6 00105 2361 00 ldq pr6|69 link_indx 001137 aa 000051 6000 04 tze 41,ic 001210 STATEMENT 1 ON LINE 284 if socket_ptr -> socket.send_gender = WRITE_GENDER then do; 001140 aa 5 00017 2351 00 lda pr5|15 socket.send_gender 001141 aa 000016 7350 00 als 14 001142 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 001143 aa 400000 1150 03 cmpa 131072,du 001144 aa 000015 6010 04 tnz 13,ic 001161 STATEMENT 1 ON LINE 286 call imp_detach_write (link_indx, P_error_code); 001145 aa 6 00105 3521 00 epp2 pr6|69 link_indx 001146 aa 6 00246 2521 00 spri2 pr6|166 001147 aa 6 00146 3521 20 epp2 pr6|102,* P_error_code 001150 aa 6 00250 2521 00 spri2 pr6|168 001151 aa 6 00244 6211 00 eax1 pr6|164 001152 aa 010000 4310 07 fld 4096,dl 001153 aa 6 00044 3701 20 epp4 pr6|36,* 001154 la 4 00050 3521 20 epp2 pr4|40,* imp_detach_write 001155 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 287 if P_error_code ^= 0 then return; 001156 aa 6 00146 2361 20 ldq pr6|102,* P_error_code 001157 aa 0 00631 6011 00 tnz pr0|409 return STATEMENT 1 ON LINE 289 end; 001160 aa 000030 7100 04 tra 24,ic 001210 STATEMENT 1 ON LINE 290 else do; STATEMENT 1 ON LINE 291 call imp_detach_read (link_indx, P_error_code); 001161 aa 6 00105 3521 00 epp2 pr6|69 link_indx 001162 aa 6 00246 2521 00 spri2 pr6|166 001163 aa 6 00146 3521 20 epp2 pr6|102,* P_error_code 001164 aa 6 00250 2521 00 spri2 pr6|168 001165 aa 6 00244 6211 00 eax1 pr6|164 001166 aa 010000 4310 07 fld 4096,dl 001167 aa 6 00044 3701 20 epp4 pr6|36,* 001170 la 4 00046 3521 20 epp2 pr4|38,* imp_detach_read 001171 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 292 if P_error_code ^= 0 then return; 001172 aa 6 00146 2361 20 ldq pr6|102,* P_error_code 001173 aa 0 00631 6011 00 tnz pr0|409 return STATEMENT 1 ON LINE 295 hpr = addr (ncp_tables_$host_tbl); 001174 aa 6 00044 3701 20 epp4 pr6|36,* 001175 la 4 00012 3735 20 epp7 pr4|10,* ncp_tables_$host_tbl 001176 aa 6 00132 6535 00 spri7 pr6|90 hpr STATEMENT 1 ON LINE 296 host_tb_index = socket_ptr -> socket.host_entry_index; 001177 aa 6 00124 3715 20 epp5 pr6|84,* socket_ptr 001200 aa 5 00016 2351 00 lda pr5|14 socket.host_entry_index 001201 aa 000066 7330 00 lrs 54 001202 aa 6 00104 7561 00 stq pr6|68 host_tb_index STATEMENT 1 ON LINE 298 call release_link (addr (hpr -> host_array (host_tb_index)), link_num); 001203 aa 000012 4020 07 mpy 10,dl 001204 aa 7 77766 3535 06 epp3 pr7|-10,ql host_array 001205 aa 6 00302 2535 00 spri3 pr6|194 001206 aa 003510 3520 04 epp2 1864,ic 004716 = 000004000000 001207 aa 003273 6700 04 tsp4 1723,ic 004502 STATEMENT 1 ON LINE 299 end; STATEMENT 1 ON LINE 300 end; STATEMENT 1 ON LINE 302 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_ACCESS, "UNASSIGN LINK ^d for type ^d (impdim index ^d)", link_num, binary (socket_ptr -> socket.send_gender, 1), link_indx); 001210 aa 6 00044 3701 20 epp4 pr6|36,* 001211 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 001212 aa 000041 6000 04 tze 33,ic 001253 001213 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001214 aa 776763 00 0060 desc9a -525,48 000176 = 125116101123 001215 aa 6 00260 00 0060 desc9a pr6|176,48 001216 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 001217 aa 7 00017 2351 00 lda pr7|15 socket.send_gender 001220 aa 000016 7350 00 als 14 001221 aa 000107 7730 00 lrl 71 001222 aa 6 00256 7561 00 stq pr6|174 001223 aa 776575 3520 04 epp2 -643,ic 000020 = 000200000000 001224 aa 6 00312 2521 00 spri2 pr6|202 001225 aa 6 00260 3521 00 epp2 pr6|176 001226 aa 6 00314 2521 00 spri2 pr6|204 001227 aa 6 00101 3521 00 epp2 pr6|65 link_num 001230 aa 6 00316 2521 00 spri2 pr6|206 001231 aa 6 00256 3521 00 epp2 pr6|174 001232 aa 6 00320 2521 00 spri2 pr6|208 001233 aa 6 00105 3521 00 epp2 pr6|69 link_indx 001234 aa 6 00322 2521 00 spri2 pr6|210 001235 aa 776601 3520 04 epp2 -639,ic 000036 = 514000000044 001236 aa 6 00324 2521 00 spri2 pr6|212 001237 aa 776573 3520 04 epp2 -645,ic 000032 = 524000000056 001240 aa 6 00326 2521 00 spri2 pr6|214 001241 aa 776600 3520 04 epp2 -640,ic 000041 = 404000000010 001242 aa 6 00330 2521 00 spri2 pr6|216 001243 aa 776606 3520 04 epp2 -634,ic 000051 = 404000000001 001244 aa 6 00332 2521 00 spri2 pr6|218 001245 aa 776564 3520 04 epp2 -652,ic 000031 = 404000000021 001246 aa 6 00334 2521 00 spri2 pr6|220 001247 aa 6 00310 6211 00 eax1 pr6|200 001250 aa 024000 4310 07 fld 10240,dl 001251 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 001252 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 306 socket_ptr -> socket.link_number = 0; 001253 aa 000000 2350 03 lda 0,du 001254 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 001255 aa 7 00015 5511 14 stba pr7|13,14 socket.link_number STATEMENT 1 ON LINE 307 socket_ptr -> socket.impdim_index = 0; 001256 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 001257 aa 7 00016 5511 14 stba pr7|14,14 socket.impdim_index STATEMENT 1 ON LINE 309 return; 001260 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO process_RST STATEMENT 1 ON LINE 313 process_RST: entry (P_host_number, P_error_code); 001261 at 000002000046 001262 ta 000044000000 001263 ta 001261000000 001264 da 000437300000 001265 aa 000560 6270 00 eax7 368 001266 aa 7 00034 3521 20 epp2 pr7|28,* 001267 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001270 aa 000004000000 001271 aa 000000000000 001272 aa 6 00032 3735 20 epp7 pr6|26,* 001273 aa 7 00004 3715 20 epp5 pr7|4,* 001274 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 316 P_error_code = 0; 001275 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 318 host_num = P_host_number; 001276 aa 6 00032 3735 20 epp7 pr6|26,* 001277 aa 7 00002 2361 20 ldq pr7|2,* P_host_number 001300 aa 6 00103 7561 00 stq pr6|67 host_num STATEMENT 1 ON LINE 320 npr = addr (ncp_tables_$ncp_data); 001301 aa 6 00044 3701 20 epp4 pr6|36,* 001302 la 4 00016 3715 20 epp5 pr4|14,* ncp_tables_$ncp_data 001303 aa 6 00136 6515 00 spri5 pr6|94 npr STATEMENT 1 ON LINE 322 lockp = addr (npr -> ncp_dt.htbl_lock); 001304 aa 5 00014 3535 00 epp3 pr5|12 ncp_dt.htbl_lock 001305 aa 6 00122 2535 00 spri3 pr6|82 lockp STATEMENT 1 ON LINE 323 call ncp_lock_$lock_wait (lockp, (0)); 001306 aa 6 00256 4501 00 stz pr6|174 001307 aa 6 00122 3521 00 epp2 pr6|82 lockp 001310 aa 6 00246 2521 00 spri2 pr6|166 001311 aa 6 00256 3521 00 epp2 pr6|174 001312 aa 6 00250 2521 00 spri2 pr6|168 001313 aa 6 00244 6211 00 eax1 pr6|164 001314 aa 010000 4310 07 fld 4096,dl 001315 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 001316 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 325 host_ptr = find_host_slot (host_num, "0"b); 001317 aa 000000 2350 07 lda 0,dl 001320 aa 6 00256 7551 00 sta pr6|174 001321 aa 003365 3520 04 epp2 1781,ic 004706 = 000006000000 001322 aa 002030 6700 04 tsp4 1048,ic 003352 STATEMENT 1 ON LINE 326 if host_ptr = null () then do; 001323 aa 6 00126 2371 00 ldaq pr6|86 host_ptr 001324 aa 776530 6770 04 eraq -680,ic 000054 = 077777000043 000001000000 001325 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001326 aa 000017 6010 04 tnz 15,ic 001345 STATEMENT 1 ON LINE 328 call ncp_lock_$lock_unlock (lockp, (0)); 001327 aa 6 00256 4501 00 stz pr6|174 001330 aa 6 00122 3521 00 epp2 pr6|82 lockp 001331 aa 6 00246 2521 00 spri2 pr6|166 001332 aa 6 00256 3521 00 epp2 pr6|174 001333 aa 6 00250 2521 00 spri2 pr6|168 001334 aa 6 00244 6211 00 eax1 pr6|164 001335 aa 010000 4310 07 fld 4096,dl 001336 aa 6 00044 3701 20 epp4 pr6|36,* 001337 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 001340 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 330 P_error_code = error_table_$net_fhost_inactive; 001341 aa 6 00044 3701 20 epp4 pr6|36,* 001342 la 4 00032 2361 20 ldq pr4|26,* error_table_$net_fhost_inactive 001343 aa 6 00146 7561 20 stq pr6|102,* P_error_code STATEMENT 1 ON LINE 331 return; 001344 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 332 end; STATEMENT 1 ON LINE 334 call reset_host_data (host_ptr); 001345 aa 003335 3520 04 epp2 1757,ic 004702 = 000002000000 001346 aa 002456 6700 04 tsp4 1326,ic 004024 STATEMENT 1 ON LINE 336 call take_host_down (host_ptr); 001347 aa 003333 3520 04 epp2 1755,ic 004702 = 000002000000 001350 aa 002335 6700 04 tsp4 1245,ic 003705 STATEMENT 1 ON LINE 337 call bring_host_up (host_ptr); 001351 aa 003331 3520 04 epp2 1753,ic 004702 = 000002000000 001352 aa 002025 6700 04 tsp4 1045,ic 003377 STATEMENT 1 ON LINE 338 call set_host_state (host_ptr, HOST_UP); 001353 aa 003321 3520 04 epp2 1745,ic 004674 = 000004000000 001354 aa 002617 6700 04 tsp4 1423,ic 004173 STATEMENT 1 ON LINE 340 call send_RRP_control_message (host_ptr); 001355 aa 003325 3520 04 epp2 1749,ic 004702 = 000002000000 001356 aa 002563 6700 04 tsp4 1395,ic 004141 STATEMENT 1 ON LINE 342 call ncp_lock_$lock_unlock (lockp, (0)); 001357 aa 6 00256 4501 00 stz pr6|174 001360 aa 6 00122 3521 00 epp2 pr6|82 lockp 001361 aa 6 00246 2521 00 spri2 pr6|166 001362 aa 6 00256 3521 00 epp2 pr6|174 001363 aa 6 00250 2521 00 spri2 pr6|168 001364 aa 6 00244 6211 00 eax1 pr6|164 001365 aa 010000 4310 07 fld 4096,dl 001366 aa 6 00044 3701 20 epp4 pr6|36,* 001367 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 001370 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 344 return; 001371 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO process_RRP STATEMENT 1 ON LINE 348 process_RRP: entry (P_host_number, P_error_code); 001372 ta 001261000000 001373 da 000445300000 001374 aa 000560 6270 00 eax7 368 001375 aa 7 00034 3521 20 epp2 pr7|28,* 001376 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001377 aa 000004000000 001400 aa 000000000000 001401 aa 6 00032 3735 20 epp7 pr6|26,* 001402 aa 7 00004 3715 20 epp5 pr7|4,* 001403 aa 6 00146 6515 00 spri5 pr6|102 STATEMENT 1 ON LINE 351 P_error_code = 0; 001404 aa 6 00146 4501 20 stz pr6|102,* P_error_code STATEMENT 1 ON LINE 353 host_num = P_host_number; 001405 aa 6 00032 3735 20 epp7 pr6|26,* 001406 aa 7 00002 2361 20 ldq pr7|2,* P_host_number 001407 aa 6 00103 7561 00 stq pr6|67 host_num STATEMENT 1 ON LINE 355 npr = addr (ncp_tables_$ncp_data); 001410 aa 6 00044 3701 20 epp4 pr6|36,* 001411 la 4 00016 3715 20 epp5 pr4|14,* ncp_tables_$ncp_data 001412 aa 6 00136 6515 00 spri5 pr6|94 npr STATEMENT 1 ON LINE 357 lockp = addr (npr -> ncp_dt.htbl_lock); 001413 aa 5 00014 3535 00 epp3 pr5|12 ncp_dt.htbl_lock 001414 aa 6 00122 2535 00 spri3 pr6|82 lockp STATEMENT 1 ON LINE 358 call ncp_lock_$lock_wait (lockp, (0)); 001415 aa 6 00256 4501 00 stz pr6|174 001416 aa 6 00122 3521 00 epp2 pr6|82 lockp 001417 aa 6 00246 2521 00 spri2 pr6|166 001420 aa 6 00256 3521 00 epp2 pr6|174 001421 aa 6 00250 2521 00 spri2 pr6|168 001422 aa 6 00244 6211 00 eax1 pr6|164 001423 aa 010000 4310 07 fld 4096,dl 001424 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 001425 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 360 host_ptr = find_host_slot (host_num, "0"b); 001426 aa 000000 2350 07 lda 0,dl 001427 aa 6 00256 7551 00 sta pr6|174 001430 aa 003256 3520 04 epp2 1710,ic 004706 = 000006000000 001431 aa 001721 6700 04 tsp4 977,ic 003352 STATEMENT 1 ON LINE 362 if host_ptr = null () then do; 001432 aa 6 00126 2371 00 ldaq pr6|86 host_ptr 001433 aa 776421 6770 04 eraq -751,ic 000054 = 077777000043 000001000000 001434 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001435 aa 000017 6010 04 tnz 15,ic 001454 STATEMENT 1 ON LINE 364 call ncp_lock_$lock_unlock (lockp, (0)); 001436 aa 6 00256 4501 00 stz pr6|174 001437 aa 6 00122 3521 00 epp2 pr6|82 lockp 001440 aa 6 00246 2521 00 spri2 pr6|166 001441 aa 6 00256 3521 00 epp2 pr6|174 001442 aa 6 00250 2521 00 spri2 pr6|168 001443 aa 6 00244 6211 00 eax1 pr6|164 001444 aa 010000 4310 07 fld 4096,dl 001445 aa 6 00044 3701 20 epp4 pr6|36,* 001446 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 001447 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 366 P_error_code = error_table_$net_fhost_inactive; 001450 aa 6 00044 3701 20 epp4 pr6|36,* 001451 la 4 00032 2361 20 ldq pr4|26,* error_table_$net_fhost_inactive 001452 aa 6 00146 7561 20 stq pr6|102,* P_error_code STATEMENT 1 ON LINE 367 return; 001453 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 368 end; STATEMENT 1 ON LINE 370 call set_host_state (host_ptr, HOST_UP); 001454 aa 003220 3520 04 epp2 1680,ic 004674 = 000004000000 001455 aa 002516 6700 04 tsp4 1358,ic 004173 STATEMENT 1 ON LINE 372 call ncp_lock_$lock_unlock (lockp, (0)); 001456 aa 6 00256 4501 00 stz pr6|174 001457 aa 6 00122 3521 00 epp2 pr6|82 lockp 001460 aa 6 00246 2521 00 spri2 pr6|166 001461 aa 6 00256 3521 00 epp2 pr6|174 001462 aa 6 00250 2521 00 spri2 pr6|168 001463 aa 6 00244 6211 00 eax1 pr6|164 001464 aa 010000 4310 07 fld 4096,dl 001465 aa 6 00044 3701 20 epp4 pr6|36,* 001466 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 001467 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 374 return; 001470 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO process_rq STATEMENT 1 ON LINE 393 process_rq: entry (P_proc_info_ptr); 001471 at 000001000043 001472 ta 001471000000 001473 da 000453300000 001474 aa 000560 6270 00 eax7 368 001475 aa 7 00034 3521 20 epp2 pr7|28,* 001476 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001477 aa 000002000000 001500 aa 000000000000 STATEMENT 1 ON LINE 397 procp = P_proc_info_ptr; 001501 aa 6 00032 3735 20 epp7 pr6|26,* 001502 aa 7 00002 3715 20 epp5 pr7|2,* P_proc_info_ptr 001503 aa 5 00000 3715 20 epp5 pr5|0,* P_proc_info_ptr 001504 aa 6 00140 6515 00 spri5 pr6|96 procp STATEMENT 1 ON LINE 398 gpr = procp -> pdt.gdtp; 001505 aa 5 00000 3535 20 epp3 pr5|0,* pdt.gdtp 001506 aa 6 00130 2535 00 spri3 pr6|88 gpr STATEMENT 1 ON LINE 400 lockp = null (); 001507 aa 776345 2370 04 ldaq -795,ic 000054 = 077777000043 000001000000 001510 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 403 gpr -> gdt.error_code = 0; 001511 aa 3 00001 4501 00 stz pr3|1 gdt.error_code STATEMENT 1 ON LINE 404 spr = addr (ncp_tables_$socket_tbl); 001512 aa 6 00044 3701 20 epp4 pr6|36,* 001513 la 4 00020 3515 20 epp1 pr4|16,* ncp_tables_$socket_tbl 001514 aa 6 00142 2515 00 spri1 pr6|98 spr STATEMENT 1 ON LINE 405 npr = addr (ncp_tables_$ncp_data); 001515 la 4 00016 3715 20 epp5 pr4|14,* ncp_tables_$ncp_data 001516 aa 6 00136 6515 00 spri5 pr6|94 npr STATEMENT 1 ON LINE 407 i = gpr -> gdt.request_code; 001517 aa 3 00002 2361 00 ldq pr3|2 gdt.request_code 001520 aa 6 00106 7561 00 stq pr6|70 i STATEMENT 1 ON LINE 408 if (i <= 19) | (i >= 30) then do; 001521 aa 000023 1160 07 cmpq 19,dl 001522 aa 000003 6044 04 tmoz 3,ic 001525 001523 aa 000036 1160 07 cmpq 30,dl 001524 aa 000025 6040 04 tmi 21,ic 001551 STATEMENT 1 ON LINE 410 call ncp_error_ (0, "ACCESS_bad_request"); 001525 aa 6 00256 4501 00 stz pr6|174 001526 aa 776332 2370 04 ldaq -806,ic 000060 = 101103103105 123123137142 001527 aa 6 00244 7571 00 staq pr6|164 001530 aa 776332 2370 04 ldaq -806,ic 000062 = 141144137162 145161165145 001531 aa 6 00246 7571 00 staq pr6|166 001532 aa 163164 2350 03 lda 58996,du 001533 aa 6 00250 7551 00 sta pr6|168 001534 aa 6 00256 3521 00 epp2 pr6|174 001535 aa 6 00262 2521 00 spri2 pr6|178 001536 aa 6 00244 3521 00 epp2 pr6|164 001537 aa 6 00264 2521 00 spri2 pr6|180 001540 aa 776304 3520 04 epp2 -828,ic 000044 = 404000000043 001541 aa 6 00266 2521 00 spri2 pr6|182 001542 aa 776266 3520 04 epp2 -842,ic 000030 = 524000000022 001543 aa 6 00270 2521 00 spri2 pr6|184 001544 aa 6 00260 6211 00 eax1 pr6|176 001545 aa 010000 4310 07 fld 4096,dl 001546 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 001547 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 411 return; 001550 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 412 end; STATEMENT 1 ON LINE 415 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_ACCESS, "ncp_access request ^d, host ^d", i, gpr -> gdt.gq_host_id); 001551 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 001552 aa 000030 6000 04 tze 24,ic 001602 001553 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001554 aa 776403 00 0040 desc9a -765,32 000156 = 156143160137 001555 aa 6 00244 00 0040 desc9a pr6|164,32 001556 aa 776242 3520 04 epp2 -862,ic 000020 = 000200000000 001557 aa 6 00262 2521 00 spri2 pr6|178 001560 aa 6 00244 3521 00 epp2 pr6|164 001561 aa 6 00264 2521 00 spri2 pr6|180 001562 aa 6 00106 3521 00 epp2 pr6|70 i 001563 aa 6 00266 2521 00 spri2 pr6|182 001564 aa 3 00037 3521 00 epp2 pr3|31 gdt.gq_host_id 001565 aa 6 00270 2521 00 spri2 pr6|184 001566 aa 776250 3520 04 epp2 -856,ic 000036 = 514000000044 001567 aa 6 00272 2521 00 spri2 pr6|186 001570 aa 776237 3520 04 epp2 -865,ic 000027 = 524000000036 001571 aa 6 00274 2521 00 spri2 pr6|188 001572 aa 776237 3520 04 epp2 -865,ic 000031 = 404000000021 001573 aa 6 00276 2521 00 spri2 pr6|190 001574 aa 776232 3520 04 epp2 -870,ic 000026 = 404000000040 001575 aa 6 00300 2521 00 spri2 pr6|192 001576 aa 6 00260 6211 00 eax1 pr6|176 001577 aa 020000 4310 07 fld 8192,dl 001600 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 001601 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 418 call process_request (); 001602 aa 000017 6700 04 tsp4 15,ic 001621 STATEMENT 1 ON LINE 420 if lockp ^= null () then call ncp_lock_$lock_unlock (lockp, icode); 001603 aa 6 00122 2371 00 ldaq pr6|82 lockp 001604 aa 776250 6770 04 eraq -856,ic 000054 = 077777000043 000001000000 001605 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001606 aa 000012 6000 04 tze 10,ic 001620 001607 aa 6 00122 3521 00 epp2 pr6|82 lockp 001610 aa 6 00246 2521 00 spri2 pr6|166 001611 aa 6 00111 3521 00 epp2 pr6|73 icode 001612 aa 6 00250 2521 00 spri2 pr6|168 001613 aa 6 00244 6211 00 eax1 pr6|164 001614 aa 010000 4310 07 fld 4096,dl 001615 aa 6 00044 3701 20 epp4 pr6|36,* 001616 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 001617 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 423 return; 001620 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 1037 end; BEGIN PROCEDURE process_request ENTRY TO process_request STATEMENT 1 ON LINE 427 process_request: procedure (); 001621 aa 6 00150 6501 00 spri4 pr6|104 STATEMENT 1 ON LINE 432 goto elab (i); 001622 aa 6 00106 7271 00 lxl7 pr6|70 i 001623 ta 777754 7100 17 tra -20,7 STATEMENT 1 ON LINE 436 elab (20): procid = procp -> pdt.processid; 001624 aa 6 00140 3735 20 epp7 pr6|96,* procp 001625 aa 7 00020 2351 00 lda pr7|16 pdt.processid 001626 aa 6 00116 7551 00 sta pr6|78 procid STATEMENT 1 ON LINE 438 lsoct = gpr -> gdt.fsoc; 001627 aa 6 00130 3715 20 epp5 pr6|88,* gpr 001630 aa 5 00012 2351 00 lda pr5|10 gdt.fsoc 001631 aa 5 00013 2361 00 ldq pr5|11 gdt.fsoc 001632 aa 0 00200 3771 00 anaq pr0|128 = 777777777777 777777777400 001633 aa 6 00120 7571 00 staq pr6|80 lsoct STATEMENT 1 ON LINE 439 substr (lsoct, 33, 24) = procp -> pdt.netuid; 001634 aa 7 00016 2351 00 lda pr7|14 pdt.netuid 001635 aa 000040 7730 00 lrl 32 001636 aa 6 00120 6771 00 eraq pr6|80 lsoct 001637 aa 003033 3770 04 anaq 1563,ic 004672 = 000000000017 777777600000 001640 aa 6 00120 6551 00 ersa pr6|80 lsoct 001641 aa 6 00121 6561 00 ersq pr6|81 lsoct STATEMENT 1 ON LINE 441 goto common_activate; 001642 aa 000014 7100 04 tra 12,ic 001656 STATEMENT 1 ON LINE 445 elab (21): procid = procp -> pdt.processid; 001643 aa 6 00140 3735 20 epp7 pr6|96,* procp 001644 aa 7 00020 2351 00 lda pr7|16 pdt.processid 001645 aa 6 00116 7551 00 sta pr6|78 procid STATEMENT 1 ON LINE 447 lsoct = gpr -> gdt.fsoc; 001646 aa 6 00130 3715 20 epp5 pr6|88,* gpr 001647 aa 5 00012 2351 00 lda pr5|10 gdt.fsoc 001650 aa 5 00013 2361 00 ldq pr5|11 gdt.fsoc 001651 aa 6 00120 6771 00 eraq pr6|80 lsoct 001652 aa 0 00200 3771 00 anaq pr0|128 = 777777777777 777777777400 001653 aa 6 00120 6551 00 ersa pr6|80 lsoct 001654 aa 6 00121 6561 00 ersq pr6|81 lsoct STATEMENT 1 ON LINE 448 goto common_activate; 001655 aa 000001 7100 04 tra 1,ic 001656 STATEMENT 1 ON LINE 452 common_activate: substr (lsoct, 1, 32) = bit (binary (npr -> ncp_dt.host_id, 32), 32); 001656 aa 6 00136 3735 20 epp7 pr6|94,* npr 001657 aa 7 00050 2351 00 lda pr7|40 ncp_dt.host_id 001660 aa 000002 6050 04 tpl 2,ic 001662 001661 aa 000000 5310 00 neg 0 001662 aa 000004 7350 00 als 4 001663 aa 6 00120 6751 00 era pr6|80 lsoct 001664 aa 0 00100 3751 00 ana pr0|64 = 777777777760 001665 aa 6 00120 6551 00 ersa pr6|80 lsoct STATEMENT 1 ON LINE 455 do i = 1 to npr -> ncp_dt.stbl_gent; 001666 aa 7 00012 2361 00 ldq pr7|10 ncp_dt.stbl_gent 001667 aa 6 00156 7561 00 stq pr6|110 001670 aa 000001 2360 07 ldq 1,dl 001671 aa 6 00106 7561 00 stq pr6|70 i 001672 aa 6 00106 2361 00 ldq pr6|70 i 001673 aa 6 00156 1161 00 cmpq pr6|110 001674 aa 000437 6054 04 tpnz 287,ic 002333 STATEMENT 1 ON LINE 456 if (spr -> socket_array (i).state ^= bit (binary (SOCK_UNASSIGNED, 6))) & (spr -> socket_array (i).local_socket.socket_num = substr (lsoct, 33, 32)) then do; 001675 aa 000030 4020 07 mpy 24,dl 001676 aa 000000 2350 07 lda 0,dl 001677 aa 000002 6050 04 tpl 2,ic 001701 001700 aa 000000 5310 00 neg 0 001701 aa 000036 7350 00 als 30 001702 aa 6 00336 7551 00 sta pr6|222 001703 aa 6 00142 3735 20 epp7 pr6|98,* spr 001704 aa 7 77767 2351 06 lda pr7|-9,ql socket_array.state 001705 aa 6 00337 7561 00 stq pr6|223 001706 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 001707 aa 6 00336 1151 00 cmpa pr6|222 001710 aa 000421 6000 04 tze 273,ic 002331 001711 aa 6 00120 2371 00 ldaq pr6|80 lsoct 001712 aa 000040 7370 00 lls 32 001713 aa 0 00100 3771 00 anaq pr0|64 = 777777777760 000000000000 001714 aa 6 00336 7551 00 sta pr6|222 lsoct 001715 aa 6 00337 7271 00 lxl7 pr6|223 001716 aa 7 77761 2351 17 lda pr7|-15,7 socket_array.socket_num 001717 aa 7 77762 2361 17 ldq pr7|-14,7 socket_array.socket_num 001720 aa 000040 7370 00 lls 32 001721 aa 0 00100 3771 00 anaq pr0|64 = 777777777760 000000000000 001722 aa 6 00336 1151 00 cmpa pr6|222 lsoct 001723 aa 000406 6010 04 tnz 262,ic 002331 STATEMENT 1 ON LINE 459 socket_ptr = addr (spr -> socket_array (i)); 001724 aa 7 77750 3715 17 epp5 pr7|-24,7 socket_array 001725 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 460 lockp = addr (socket_ptr -> socket.lock); 001726 aa 5 00004 3535 00 epp3 pr5|4 socket.lock 001727 aa 6 00122 2535 00 spri3 pr6|82 lockp STATEMENT 1 ON LINE 461 call ncp_lock_$lock_wait (lockp, icode); 001730 aa 6 00122 3521 00 epp2 pr6|82 lockp 001731 aa 6 00342 2521 00 spri2 pr6|226 001732 aa 6 00111 3521 00 epp2 pr6|73 icode 001733 aa 6 00344 2521 00 spri2 pr6|228 001734 aa 6 00340 6211 00 eax1 pr6|224 001735 aa 010000 4310 07 fld 4096,dl 001736 aa 6 00044 3701 20 epp4 pr6|36,* 001737 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 001740 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 463 if (socket_ptr -> socket.overseer_process_id ^= procid) & (socket_ptr -> socket.process_id ^= procid) then do; 001741 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 001742 aa 7 00006 2351 00 lda pr7|6 socket.overseer_process_id 001743 aa 6 00116 1151 00 cmpa pr6|78 procid 001744 aa 000143 6000 04 tze 99,ic 002107 001745 aa 7 00005 2351 00 lda pr7|5 socket.process_id 001746 aa 6 00116 1151 00 cmpa pr6|78 procid 001747 aa 000140 6000 04 tze 96,ic 002107 STATEMENT 1 ON LINE 465 lock_id = socket_ptr -> socket.overseer_lock_id; 001750 aa 7 00020 2351 00 lda pr7|16 socket.overseer_lock_id 001751 aa 6 00115 7551 00 sta pr6|77 lock_id STATEMENT 1 ON LINE 466 call ncp_lock_$verify_lock (addr (lock_id), icode); 001752 aa 6 00115 3715 00 epp5 pr6|77 lock_id 001753 aa 6 00346 6515 00 spri5 pr6|230 001754 aa 6 00346 3521 00 epp2 pr6|230 001755 aa 6 00342 2521 00 spri2 pr6|226 001756 aa 6 00111 3521 00 epp2 pr6|73 icode 001757 aa 6 00344 2521 00 spri2 pr6|228 001760 aa 6 00340 6211 00 eax1 pr6|224 001761 aa 010000 4310 07 fld 4096,dl 001762 aa 6 00044 3701 20 epp4 pr6|36,* 001763 la 4 00074 3521 20 epp2 pr4|60,* ncp_lock_$verify_lock 001764 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 467 if icode ^= error_table_$invalid_lock_reset then do; 001765 aa 6 00111 2361 00 ldq pr6|73 icode 001766 aa 6 00044 3701 20 epp4 pr6|36,* 001767 la 4 00030 1161 20 cmpq pr4|24,* error_table_$invalid_lock_reset 001770 aa 000006 6000 04 tze 6,ic 001776 STATEMENT 1 ON LINE 469 gpr -> gdt.ncp_idx = ""b; 001771 aa 6 00130 3735 20 epp7 pr6|88,* gpr 001772 aa 7 00003 4501 00 stz pr7|3 gdt.ncp_idx STATEMENT 1 ON LINE 470 gpr -> gdt.error_code = error_table_$bad_processid; 001773 la 4 00024 2361 20 ldq pr4|20,* error_table_$bad_processid 001774 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 471 return; 001775 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 472 end; STATEMENT 1 ON LINE 473 if binary (socket_ptr -> socket.state, 6) < SOCK_BROKEN /* socket might be connected */ then do; 001776 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 001777 aa 7 00017 2351 00 lda pr7|15 socket.state 002000 aa 000102 7730 00 lrl 66 002001 aa 000015 1160 07 cmpq 13,dl 002002 aa 000016 6050 04 tpl 14,ic 002020 STATEMENT 1 ON LINE 475 call ncp_error_$croggle_socket (socket_ptr, 1, icode); 002003 aa 000001 2360 07 ldq 1,dl 002004 aa 6 00337 7561 00 stq pr6|223 002005 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 002006 aa 6 00352 2521 00 spri2 pr6|234 002007 aa 6 00337 3521 00 epp2 pr6|223 002010 aa 6 00354 2521 00 spri2 pr6|236 002011 aa 6 00111 3521 00 epp2 pr6|73 icode 002012 aa 6 00356 2521 00 spri2 pr6|238 002013 aa 6 00350 6211 00 eax1 pr6|232 002014 aa 014000 4310 07 fld 6144,dl 002015 la 4 00066 3521 20 epp2 pr4|54,* ncp_error_$croggle_socket 002016 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 476 goto common_activate; 002017 aa 777637 7100 04 tra -97,ic 001656 STATEMENT 1 ON LINE 477 end; STATEMENT 1 ON LINE 478 else do; STATEMENT 1 ON LINE 479 call change_socket_state (socket_ptr, SOCK_ASSIGNED, (0)); 002020 aa 6 00337 4501 00 stz pr6|223 002021 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 002022 aa 6 00352 2521 00 spri2 pr6|234 002023 aa 776022 3520 04 epp2 -1006,ic 000045 = 000000000001 002024 aa 6 00354 2521 00 spri2 pr6|236 002025 aa 6 00337 3521 00 epp2 pr6|223 002026 aa 6 00356 2521 00 spri2 pr6|238 002027 aa 6 00350 6211 00 eax1 pr6|232 002030 aa 014000 4310 07 fld 6144,dl 002031 aa 776270 3520 04 epp2 -840,ic 000321 = 000560627000 002032 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 480 socket_ptr -> socket.byte_size = bit (binary (8, 8)); 002033 aa 000010 2350 07 lda 8,dl 002034 aa 000002 6050 04 tpl 2,ic 002036 002035 aa 000000 5310 00 neg 0 002036 aa 000034 7350 00 als 28 002037 aa 000006 7710 00 arl 6 002040 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002041 aa 7 00017 6751 00 era pr7|15 socket.byte_size 002042 aa 007760 3750 03 ana 4080,du 002043 aa 7 00017 6551 00 ersa pr7|15 socket.byte_size STATEMENT 1 ON LINE 481 end; STATEMENT 1 ON LINE 483 socket_ptr -> socket.overseer_lock_id = procp -> pdt.lockid; 002044 aa 6 00140 3715 20 epp5 pr6|96,* procp 002045 aa 5 00017 2351 00 lda pr5|15 pdt.lockid 002046 aa 7 00020 7551 00 sta pr7|16 socket.overseer_lock_id STATEMENT 1 ON LINE 484 socket_ptr -> socket.overseer_process_id = procid; 002047 aa 6 00116 2351 00 lda pr6|78 procid 002050 aa 7 00006 7551 00 sta pr7|6 socket.overseer_process_id STATEMENT 1 ON LINE 485 socket_ptr -> socket.overseer_event_channel = gpr -> gdt.event_chn; 002051 aa 6 00130 3535 20 epp3 pr6|88,* gpr 002052 aa 3 00026 2371 00 ldaq pr3|22 gdt.event_chn 002053 aa 7 00002 7571 00 staq pr7|2 socket.overseer_event_channel STATEMENT 1 ON LINE 486 socket_ptr -> socket.overseer_validation_level = bit (binary (level$get (), 3)); 002054 aa 6 00337 3521 00 epp2 pr6|223 002055 aa 6 00342 2521 00 spri2 pr6|226 002056 aa 6 00340 6211 00 eax1 pr6|224 002057 aa 004000 4310 07 fld 2048,dl 002060 aa 6 00044 3701 20 epp4 pr6|36,* 002061 la 4 00062 3521 20 epp2 pr4|50,* level$get 002062 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002063 aa 6 00337 2351 00 lda pr6|223 002064 aa 000002 6050 04 tpl 2,ic 002066 002065 aa 000000 5310 00 neg 0 002066 aa 000041 7350 00 als 33 002067 aa 000036 7710 00 arl 30 002070 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002071 aa 7 00017 6751 00 era pr7|15 socket.overseer_validation_level 002072 aa 000070 3750 07 ana 56,dl 002073 aa 7 00017 6551 00 ersa pr7|15 socket.overseer_validation_level STATEMENT 1 ON LINE 487 socket_ptr -> socket.validation_level = bit (binary (7, 3)); 002074 aa 000007 2350 07 lda 7,dl 002075 aa 000002 6050 04 tpl 2,ic 002077 002076 aa 000000 5310 00 neg 0 002077 aa 0 00322 3771 00 anaq pr0|210 = 000000000007 777777777777 002100 aa 7 00017 6751 00 era pr7|15 socket.validation_level 002101 aa 000007 3750 07 ana 7,dl 002102 aa 7 00017 6551 00 ersa pr7|15 socket.validation_level STATEMENT 1 ON LINE 489 socket_ptr -> socket.allow_interrupts = "0"b; 002103 aa 002565 2350 04 lda 1397,ic 004670 = 777773777777 002104 aa 7 00017 3551 00 ansa pr7|15 socket.allow_interrupts STATEMENT 1 ON LINE 490 socket_ptr -> socket.signal_event_channel = 0; 002105 aa 775745 2370 04 ldaq -1051,ic 000052 = 000000000000 000000000000 002106 aa 7 00024 7571 00 staq pr7|20 socket.signal_event_channel STATEMENT 1 ON LINE 491 end; STATEMENT 1 ON LINE 493 if (socket_ptr -> socket.overseer_process_id = procid) & (binary (socket_ptr -> socket.overseer_validation_level, 3) >= level$get ()) then do; 002107 aa 6 00337 3521 00 epp2 pr6|223 002110 aa 6 00342 2521 00 spri2 pr6|226 002111 aa 6 00340 6211 00 eax1 pr6|224 002112 aa 004000 4310 07 fld 2048,dl 002113 aa 6 00044 3701 20 epp4 pr6|36,* 002114 la 4 00062 3521 20 epp2 pr4|50,* level$get 002115 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002116 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002117 aa 7 00017 2351 00 lda pr7|15 socket.overseer_validation_level 002120 aa 000036 7350 00 als 30 002121 aa 000105 7730 00 lrl 69 002122 aa 6 00337 1161 00 cmpq pr6|223 002123 aa 0 00527 7001 00 tsx0 pr0|343 r_ge_a 002124 aa 6 00337 7551 00 sta pr6|223 002125 aa 7 00006 2351 00 lda pr7|6 socket.overseer_process_id 002126 aa 6 00116 1151 00 cmpa pr6|78 procid 002127 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 002130 aa 6 00337 3151 00 cana pr6|223 002131 aa 000031 6000 04 tze 25,ic 002162 STATEMENT 1 ON LINE 496 socket_ptr -> socket.overseer_event_channel = gpr -> gdt.event_chn; 002132 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002133 aa 5 00026 2371 00 ldaq pr5|22 gdt.event_chn 002134 aa 7 00002 7571 00 staq pr7|2 socket.overseer_event_channel STATEMENT 1 ON LINE 497 socket_ptr -> socket.overseer_validation_level = bit (binary (level$get (), 3)); 002135 aa 6 00337 3521 00 epp2 pr6|223 002136 aa 6 00342 2521 00 spri2 pr6|226 002137 aa 6 00340 6211 00 eax1 pr6|224 002140 aa 004000 4310 07 fld 2048,dl 002141 aa 6 00044 3701 20 epp4 pr6|36,* 002142 la 4 00062 3521 20 epp2 pr4|50,* level$get 002143 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002144 aa 6 00337 2351 00 lda pr6|223 002145 aa 000002 6050 04 tpl 2,ic 002147 002146 aa 000000 5310 00 neg 0 002147 aa 000041 7350 00 als 33 002150 aa 000036 7710 00 arl 30 002151 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002152 aa 7 00017 6751 00 era pr7|15 socket.overseer_validation_level 002153 aa 000070 3750 07 ana 56,dl 002154 aa 7 00017 6551 00 ersa pr7|15 socket.overseer_validation_level STATEMENT 1 ON LINE 498 socket_ptr -> socket.validation_level = socket_ptr -> socket.overseer_validation_level; 002155 aa 7 00017 2351 00 lda pr7|15 socket.overseer_validation_level 002156 aa 000003 7710 00 arl 3 002157 aa 7 00017 6751 00 era pr7|15 socket.validation_level 002160 aa 000007 3750 07 ana 7,dl 002161 aa 7 00017 6551 00 ersa pr7|15 socket.validation_level STATEMENT 1 ON LINE 499 end; STATEMENT 1 ON LINE 501 if binary (socket_ptr -> socket.validation_level) < level$get () then do; 002162 aa 6 00337 3521 00 epp2 pr6|223 002163 aa 6 00342 2521 00 spri2 pr6|226 002164 aa 6 00340 6211 00 eax1 pr6|224 002165 aa 004000 4310 07 fld 2048,dl 002166 aa 6 00044 3701 20 epp4 pr6|36,* 002167 la 4 00062 3521 20 epp2 pr4|50,* level$get 002170 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002171 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002172 aa 7 00017 2361 00 ldq pr7|15 socket.validation_level 002173 aa 0 00432 3771 00 anaq pr0|282 = 000000000000 000000000007 002174 aa 6 00346 7571 00 staq pr6|230 002175 aa 6 00337 2351 00 lda pr6|223 002176 aa 000044 7330 00 lrs 36 002177 aa 6 00346 1171 00 cmpaq pr6|230 002200 aa 000006 6044 04 tmoz 6,ic 002206 STATEMENT 1 ON LINE 503 gpr -> gdt.error_code = error_table_$bad_ring_brackets; 002201 aa 6 00044 3701 20 epp4 pr6|36,* 002202 la 4 00026 2361 20 ldq pr4|22,* error_table_$bad_ring_brackets 002203 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002204 aa 5 00001 7561 00 stq pr5|1 gdt.error_code STATEMENT 1 ON LINE 504 return; 002205 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 505 end; STATEMENT 1 ON LINE 507 socket_ptr -> socket.process_id = procid; 002206 aa 6 00116 2351 00 lda pr6|78 procid 002207 aa 7 00005 7551 00 sta pr7|5 socket.process_id STATEMENT 1 ON LINE 508 socket_ptr -> socket.event_channel = gpr -> gdt.event_chn; 002210 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002211 aa 5 00026 2371 00 ldaq pr5|22 gdt.event_chn 002212 aa 7 00000 7571 00 staq pr7|0 socket.event_channel STATEMENT 1 ON LINE 509 socket_ptr -> socket.validation_level = bit (binary (level$get (), 3)); 002213 aa 6 00337 3521 00 epp2 pr6|223 002214 aa 6 00342 2521 00 spri2 pr6|226 002215 aa 6 00340 6211 00 eax1 pr6|224 002216 aa 004000 4310 07 fld 2048,dl 002217 aa 6 00044 3701 20 epp4 pr6|36,* 002220 la 4 00062 3521 20 epp2 pr4|50,* level$get 002221 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002222 aa 6 00337 2351 00 lda pr6|223 002223 aa 000002 6050 04 tpl 2,ic 002225 002224 aa 000000 5310 00 neg 0 002225 aa 0 00322 3771 00 anaq pr0|210 = 000000000007 777777777777 002226 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002227 aa 7 00017 6751 00 era pr7|15 socket.validation_level 002230 aa 000007 3750 07 ana 7,dl 002231 aa 7 00017 6551 00 ersa pr7|15 socket.validation_level STATEMENT 1 ON LINE 511 j = socket_ptr -> socket.impdim_index; 002232 aa 7 00016 2351 00 lda pr7|14 socket.impdim_index 002233 aa 000022 7350 00 als 18 002234 aa 000066 7330 00 lrs 54 002235 aa 6 00107 7561 00 stq pr6|71 j STATEMENT 1 ON LINE 512 if j ^= 0 then do; 002236 aa 000066 6000 04 tze 54,ic 002324 STATEMENT 1 ON LINE 513 if socket_ptr -> socket.send_gender = WRITE_GENDER then call imp_reattach_write (j, gpr -> gdt.event_chn, procid, icode); 002237 aa 7 00017 2351 00 lda pr7|15 socket.send_gender 002240 aa 000016 7350 00 als 14 002241 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 002242 aa 400000 1150 03 cmpa 131072,du 002243 aa 000020 6010 04 tnz 16,ic 002263 002244 aa 6 00107 3521 00 epp2 pr6|71 j 002245 aa 6 00362 2521 00 spri2 pr6|242 002246 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002247 aa 5 00026 3521 00 epp2 pr5|22 gdt.event_chn 002250 aa 6 00364 2521 00 spri2 pr6|244 002251 aa 6 00116 3521 00 epp2 pr6|78 procid 002252 aa 6 00366 2521 00 spri2 pr6|246 002253 aa 6 00111 3521 00 epp2 pr6|73 icode 002254 aa 6 00370 2521 00 spri2 pr6|248 002255 aa 6 00360 6211 00 eax1 pr6|240 002256 aa 020000 4310 07 fld 8192,dl 002257 aa 6 00044 3701 20 epp4 pr6|36,* 002260 la 4 00054 3521 20 epp2 pr4|44,* imp_reattach_write 002261 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002262 aa 000017 7100 04 tra 15,ic 002301 STATEMENT 1 ON LINE 515 else call imp_reattach_read (j, gpr -> gdt.event_chn, procid, icode); 002263 aa 6 00107 3521 00 epp2 pr6|71 j 002264 aa 6 00362 2521 00 spri2 pr6|242 002265 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002266 aa 5 00026 3521 00 epp2 pr5|22 gdt.event_chn 002267 aa 6 00364 2521 00 spri2 pr6|244 002270 aa 6 00116 3521 00 epp2 pr6|78 procid 002271 aa 6 00366 2521 00 spri2 pr6|246 002272 aa 6 00111 3521 00 epp2 pr6|73 icode 002273 aa 6 00370 2521 00 spri2 pr6|248 002274 aa 6 00360 6211 00 eax1 pr6|240 002275 aa 020000 4310 07 fld 8192,dl 002276 aa 6 00044 3701 20 epp4 pr6|36,* 002277 la 4 00052 3521 20 epp2 pr4|42,* imp_reattach_read 002300 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 516 if icode ^= 0 then do; 002301 aa 6 00111 2361 00 ldq pr6|73 icode 002302 aa 000022 6000 04 tze 18,ic 002324 STATEMENT 1 ON LINE 517 call ncp_error_ (icode, "ACCESS_reattaching_socket"); 002303 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002304 aa 775644 00 0034 desc9a -1116,28 000147 = 101103103105 002305 aa 6 00350 00 0034 desc9a pr6|232,28 002306 aa 6 00111 3521 00 epp2 pr6|73 icode 002307 aa 6 00362 2521 00 spri2 pr6|242 002310 aa 6 00350 3521 00 epp2 pr6|232 002311 aa 6 00364 2521 00 spri2 pr6|244 002312 aa 775532 3520 04 epp2 -1190,ic 000044 = 404000000043 002313 aa 6 00366 2521 00 spri2 pr6|246 002314 aa 775511 3520 04 epp2 -1207,ic 000025 = 524000000031 002315 aa 6 00370 2521 00 spri2 pr6|248 002316 aa 6 00360 6211 00 eax1 pr6|240 002317 aa 010000 4310 07 fld 4096,dl 002320 aa 6 00044 3701 20 epp4 pr6|36,* 002321 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 002322 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 518 return; 002323 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 519 end; STATEMENT 1 ON LINE 520 end; STATEMENT 1 ON LINE 521 gpr -> gdt.ncp_idx = socket_ptr -> socket.socket_index; 002324 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002325 aa 7 00026 2351 00 lda pr7|22 socket.socket_index 002326 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002327 aa 5 00003 7551 00 sta pr5|3 gdt.ncp_idx STATEMENT 1 ON LINE 522 return; 002330 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 523 end; STATEMENT 1 ON LINE 524 end; 002331 aa 6 00106 0541 00 aos pr6|70 i 002332 aa 777340 7100 04 tra -288,ic 001672 STATEMENT 1 ON LINE 527 lockp = addr (npr -> ncp_dt.stbl_lock); 002333 aa 6 00136 3735 20 epp7 pr6|94,* npr 002334 aa 7 00016 3735 00 epp7 pr7|14 ncp_dt.stbl_lock 002335 aa 6 00122 6535 00 spri7 pr6|82 lockp STATEMENT 1 ON LINE 528 call ncp_lock_$lock_wait (lockp, icode); 002336 aa 6 00122 3521 00 epp2 pr6|82 lockp 002337 aa 6 00342 2521 00 spri2 pr6|226 002340 aa 6 00111 3521 00 epp2 pr6|73 icode 002341 aa 6 00344 2521 00 spri2 pr6|228 002342 aa 6 00340 6211 00 eax1 pr6|224 002343 aa 010000 4310 07 fld 4096,dl 002344 aa 6 00044 3701 20 epp4 pr6|36,* 002345 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 002346 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 529 do i = 1 to npr -> ncp_dt.stbl_gent; 002347 aa 6 00136 3735 20 epp7 pr6|94,* npr 002350 aa 7 00012 2361 00 ldq pr7|10 ncp_dt.stbl_gent 002351 aa 6 00157 7561 00 stq pr6|111 002352 aa 000001 2360 07 ldq 1,dl 002353 aa 6 00106 7561 00 stq pr6|70 i 002354 aa 6 00106 2361 00 ldq pr6|70 i 002355 aa 6 00157 1161 00 cmpq pr6|111 002356 aa 000010 6054 04 tpnz 8,ic 002366 STATEMENT 1 ON LINE 530 if spr -> socket_array (i).state = ""b then goto got_one; 002357 aa 000030 4020 07 mpy 24,dl 002360 aa 6 00142 3735 20 epp7 pr6|98,* spr 002361 aa 7 77767 2351 06 lda pr7|-9,ql socket_array.state 002362 aa 770000 3150 03 cana 258048,du 002363 aa 000020 6000 04 tze 16,ic 002403 STATEMENT 1 ON LINE 532 end; 002364 aa 6 00106 0541 00 aos pr6|70 i 002365 aa 777767 7100 04 tra -9,ic 002354 STATEMENT 1 ON LINE 534 i = npr -> ncp_dt.stbl_gent + 1; 002366 aa 6 00136 3735 20 epp7 pr6|94,* npr 002367 aa 7 00012 2361 00 ldq pr7|10 ncp_dt.stbl_gent 002370 aa 000001 0760 07 adq 1,dl 002371 aa 6 00106 7561 00 stq pr6|70 i STATEMENT 1 ON LINE 535 if i > npr -> ncp_dt.stbl_size then do; 002372 aa 7 00006 1161 00 cmpq pr7|6 ncp_dt.stbl_size 002373 aa 000007 6044 04 tmoz 7,ic 002402 STATEMENT 1 ON LINE 536 gpr -> gdt.ncp_idx = ""b; 002374 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002375 aa 5 00003 4501 00 stz pr5|3 gdt.ncp_idx STATEMENT 1 ON LINE 537 gpr -> gdt.error_code = error_table_$net_table_space; 002376 aa 6 00044 3701 20 epp4 pr6|36,* 002377 la 4 00036 2361 20 ldq pr4|30,* error_table_$net_table_space 002400 aa 5 00001 7561 00 stq pr5|1 gdt.error_code STATEMENT 1 ON LINE 538 return; 002401 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 539 end; STATEMENT 1 ON LINE 541 npr -> ncp_dt.stbl_gent = i; 002402 aa 7 00012 7561 00 stq pr7|10 ncp_dt.stbl_gent STATEMENT 1 ON LINE 543 got_one: mpr = addr (ncp_tables_$meter_cells); 002403 aa 6 00044 3701 20 epp4 pr6|36,* 002404 la 4 00014 3735 20 epp7 pr4|12,* ncp_tables_$meter_cells 002405 aa 6 00134 6535 00 spri7 pr6|92 mpr STATEMENT 1 ON LINE 545 mpr -> meter_dt.num_activations = mpr -> meter_dt.num_activations + 1; 002406 aa 7 00176 0541 00 aos pr7|126 meter_dt.num_activations STATEMENT 1 ON LINE 547 socket_ptr = addr (spr -> socket_array (i)); 002407 aa 6 00106 2361 00 ldq pr6|70 i 002410 aa 000030 4020 07 mpy 24,dl 002411 aa 6 00142 3715 20 epp5 pr6|98,* spr 002412 aa 5 77750 3715 06 epp5 pr5|-24,ql socket_array 002413 aa 6 00124 6515 00 spri5 pr6|84 socket_ptr STATEMENT 1 ON LINE 548 call deactivate_socket (socket_ptr, (0)); 002414 aa 6 00337 4501 00 stz pr6|223 002415 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 002416 aa 6 00342 2521 00 spri2 pr6|226 002417 aa 6 00337 3521 00 epp2 pr6|223 002420 aa 6 00344 2521 00 spri2 pr6|228 002421 aa 6 00340 6211 00 eax1 pr6|224 002422 aa 010000 4310 07 fld 4096,dl 002423 aa 776025 3520 04 epp2 -1003,ic 000450 = 000560627000 002424 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 549 socket_ptr -> socket.socket_index = bit (binary (i, 36)); 002425 aa 6 00106 2351 00 lda pr6|70 i 002426 aa 000044 7330 00 lrs 36 002427 aa 000002 6050 04 tpl 2,ic 002431 002430 aa 000000 5330 00 negl 0 002431 aa 000044 7370 00 lls 36 002432 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002433 aa 7 00026 7551 00 sta pr7|22 socket.socket_index STATEMENT 1 ON LINE 550 call change_socket_state (socket_ptr, SOCK_ASSIGNED, (0)); 002434 aa 6 00337 4501 00 stz pr6|223 002435 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 002436 aa 6 00352 2521 00 spri2 pr6|234 002437 aa 775406 3520 04 epp2 -1274,ic 000045 = 000000000001 002440 aa 6 00354 2521 00 spri2 pr6|236 002441 aa 6 00337 3521 00 epp2 pr6|223 002442 aa 6 00356 2521 00 spri2 pr6|238 002443 aa 6 00350 6211 00 eax1 pr6|232 002444 aa 014000 4310 07 fld 6144,dl 002445 aa 775654 3520 04 epp2 -1108,ic 000321 = 000560627000 002446 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 551 call ncp_lock_$lock_wait (addr (socket_ptr -> socket.lock), icode); 002447 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002450 aa 7 00004 3735 00 epp7 pr7|4 socket.lock 002451 aa 6 00346 6535 00 spri7 pr6|230 002452 aa 6 00346 3521 00 epp2 pr6|230 002453 aa 6 00342 2521 00 spri2 pr6|226 002454 aa 6 00111 3521 00 epp2 pr6|73 icode 002455 aa 6 00344 2521 00 spri2 pr6|228 002456 aa 6 00340 6211 00 eax1 pr6|224 002457 aa 010000 4310 07 fld 4096,dl 002460 aa 6 00044 3701 20 epp4 pr6|36,* 002461 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 002462 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 552 call ncp_lock_$lock_unlock (lockp, icode); 002463 aa 6 00122 3521 00 epp2 pr6|82 lockp 002464 aa 6 00342 2521 00 spri2 pr6|226 002465 aa 6 00111 3521 00 epp2 pr6|73 icode 002466 aa 6 00344 2521 00 spri2 pr6|228 002467 aa 6 00340 6211 00 eax1 pr6|224 002470 aa 010000 4310 07 fld 4096,dl 002471 aa 6 00044 3701 20 epp4 pr6|36,* 002472 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 002473 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 553 lockp = addr (socket_ptr -> socket.lock); 002474 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002475 aa 7 00004 3735 00 epp7 pr7|4 socket.lock 002476 aa 6 00122 6535 00 spri7 pr6|82 lockp STATEMENT 1 ON LINE 556 procp -> pdt.num_activations = procp -> pdt.num_activations + 1; 002477 aa 6 00140 3715 20 epp5 pr6|96,* procp 002500 aa 5 00024 0541 00 aos pr5|20 pdt.num_activations STATEMENT 1 ON LINE 557 substr (socket_ptr -> socket.socket_index, 1, 2) = "01"b; 002501 aa 200000 2350 03 lda 65536,du 002502 aa 6 00124 3535 20 epp3 pr6|84,* socket_ptr 002503 aa 3 00026 6751 00 era pr3|22 socket.socket_index 002504 aa 0 00004 3751 00 ana pr0|4 = 600000000000 002505 aa 3 00026 6551 00 ersa pr3|22 socket.socket_index STATEMENT 1 ON LINE 558 substr (socket_ptr -> socket.socket_index, 3, 4) = bit (binary (mod (npr -> ncp_dt.ncp_state_changes, 16), 4)); 002506 aa 6 00136 3515 20 epp1 pr6|94,* npr 002507 aa 1 00031 2361 00 ldq pr1|25 ncp_dt.ncp_state_changes 002510 aa 002217 3520 04 epp2 1167,ic 004727 = 000000000020 002511 aa 0 00704 7001 00 tsx0 pr0|452 mod_fx1 002512 aa 000003 6050 04 tpl 3,ic 002515 002513 aa 0 00110 6761 00 erq pr0|72 = 777777777777 002514 aa 000001 0760 07 adq 1,dl 002515 aa 000104 7370 00 lls 68 002516 aa 000002 7730 00 lrl 2 002517 aa 3 00026 6751 00 era pr3|22 socket.socket_index 002520 aa 170000 3750 03 ana 61440,du 002521 aa 3 00026 6551 00 ersa pr3|22 socket.socket_index STATEMENT 1 ON LINE 559 substr (socket_ptr -> socket.socket_index, 7, 12) = bit (binary (mod (procp -> pdt.num_activations, 4096), 12)); 002522 aa 5 00024 2361 00 ldq pr5|20 pdt.num_activations 002523 aa 002203 3520 04 epp2 1155,ic 004726 = 000000010000 002524 aa 0 00704 7001 00 tsx0 pr0|452 mod_fx1 002525 aa 000003 6050 04 tpl 3,ic 002530 002526 aa 0 00110 6761 00 erq pr0|72 = 777777777777 002527 aa 000001 0760 07 adq 1,dl 002530 aa 000074 7370 00 lls 60 002531 aa 000006 7730 00 lrl 6 002532 aa 3 00026 7511 30 stca pr3|22,30 socket.socket_index STATEMENT 1 ON LINE 561 gpr -> gdt.ncp_idx = socket_ptr -> socket.socket_index; 002533 aa 3 00026 2351 00 lda pr3|22 socket.socket_index 002534 aa 6 00130 3735 20 epp7 pr6|88,* gpr 002535 aa 7 00003 7551 00 sta pr7|3 gdt.ncp_idx STATEMENT 1 ON LINE 563 socket_ptr -> socket.overseer_event_channel, socket_ptr -> socket.event_channel = gpr -> gdt.event_chn; 002536 aa 7 00026 2371 00 ldaq pr7|22 gdt.event_chn 002537 aa 3 00002 7571 00 staq pr3|2 socket.overseer_event_channel 002540 aa 3 00000 7571 00 staq pr3|0 socket.event_channel STATEMENT 1 ON LINE 564 socket_ptr -> socket.overseer_validation_level, socket_ptr -> socket.validation_level = bit (binary (level$get (), 3)); 002541 aa 6 00337 3521 00 epp2 pr6|223 002542 aa 6 00342 2521 00 spri2 pr6|226 002543 aa 6 00340 6211 00 eax1 pr6|224 002544 aa 004000 4310 07 fld 2048,dl 002545 aa 6 00044 3701 20 epp4 pr6|36,* 002546 la 4 00062 3521 20 epp2 pr4|50,* level$get 002547 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002550 aa 6 00337 2351 00 lda pr6|223 002551 aa 000002 6050 04 tpl 2,ic 002553 002552 aa 000000 5310 00 neg 0 002553 aa 000041 7350 00 als 33 002554 aa 000036 7710 00 arl 30 002555 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002556 aa 6 00336 7551 00 sta pr6|222 002557 aa 7 00017 6751 00 era pr7|15 socket.overseer_validation_level 002560 aa 000070 3750 07 ana 56,dl 002561 aa 7 00017 6551 00 ersa pr7|15 socket.overseer_validation_level 002562 aa 6 00336 2351 00 lda pr6|222 002563 aa 000003 7710 00 arl 3 002564 aa 7 00017 6751 00 era pr7|15 socket.validation_level 002565 aa 000007 3750 07 ana 7,dl 002566 aa 7 00017 6551 00 ersa pr7|15 socket.validation_level STATEMENT 1 ON LINE 565 socket_ptr -> socket.overseer_process_id, socket_ptr -> socket.process_id = procid; 002567 aa 6 00116 2351 00 lda pr6|78 procid 002570 aa 7 00006 7551 00 sta pr7|6 socket.overseer_process_id 002571 aa 7 00005 7551 00 sta pr7|5 socket.process_id STATEMENT 1 ON LINE 566 socket_ptr -> socket.overseer_lock_id = procp -> pdt.lockid; 002572 aa 6 00140 3715 20 epp5 pr6|96,* procp 002573 aa 5 00017 2351 00 lda pr5|15 pdt.lockid 002574 aa 7 00020 7551 00 sta pr7|16 socket.overseer_lock_id STATEMENT 1 ON LINE 567 string (socket_ptr -> socket.local_socket) = lsoct; 002575 aa 6 00120 2371 00 ldaq pr6|80 lsoct 002576 aa 0 00200 3771 00 anaq pr0|128 = 777777777777 777777777400 002577 aa 7 00011 7551 00 sta pr7|9 002600 aa 7 00012 7561 00 stq pr7|10 STATEMENT 1 ON LINE 568 socket_ptr -> socket.send_gender = substr (lsoct, 64, 1); 002601 aa 6 00121 2351 00 lda pr6|81 lsoct 002602 aa 000015 7350 00 als 13 002603 aa 7 00017 6751 00 era pr7|15 socket.send_gender 002604 aa 000010 3750 03 ana 8,du 002605 aa 7 00017 6551 00 ersa pr7|15 socket.send_gender STATEMENT 1 ON LINE 569 socket_ptr -> socket.byte_size = bit (binary (8, 8)); 002606 aa 000010 2350 07 lda 8,dl 002607 aa 000002 6050 04 tpl 2,ic 002611 002610 aa 000000 5310 00 neg 0 002611 aa 000034 7350 00 als 28 002612 aa 000006 7710 00 arl 6 002613 aa 7 00017 6751 00 era pr7|15 socket.byte_size 002614 aa 007760 3750 03 ana 4080,du 002615 aa 7 00017 6551 00 ersa pr7|15 socket.byte_size STATEMENT 1 ON LINE 570 return; 002616 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 576 elab (22): nidx = binary (gpr -> gdt.ncp_idx & SOCK_INDX_MASK, 18); 002617 aa 6 00130 3735 20 epp7 pr6|88,* gpr 002620 aa 7 00003 2351 00 lda pr7|3 gdt.ncp_idx 002621 aa 777777 3750 07 ana 262143,dl 002622 aa 000044 7730 00 lrl 36 002623 aa 6 00110 7561 00 stq pr6|72 nidx STATEMENT 1 ON LINE 578 if (nidx <= 0) | (nidx > npr -> ncp_dt.stbl_gent) then do; 002624 aa 6 00110 2361 00 ldq pr6|72 nidx 002625 aa 000004 6044 04 tmoz 4,ic 002631 002626 aa 6 00136 3715 20 epp5 pr6|94,* npr 002627 aa 5 00012 1161 00 cmpq pr5|10 ncp_dt.stbl_gent 002630 aa 000006 6044 04 tmoz 6,ic 002636 STATEMENT 1 ON LINE 580 np_inv: gpr -> gdt.error_code = error_table_$bad_index; 002631 aa 6 00044 3701 20 epp4 pr6|36,* 002632 la 4 00022 2361 20 ldq pr4|18,* error_table_$bad_index 002633 aa 6 00130 3735 20 epp7 pr6|88,* gpr 002634 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 581 return; 002635 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 582 end; STATEMENT 1 ON LINE 584 procid = procp -> pdt.processid; 002636 aa 6 00140 3535 20 epp3 pr6|96,* procp 002637 aa 3 00020 2351 00 lda pr3|16 pdt.processid 002640 aa 6 00116 7551 00 sta pr6|78 procid STATEMENT 1 ON LINE 585 socket_ptr = addr (spr -> socket_array (nidx)); 002641 aa 000030 4020 07 mpy 24,dl 002642 aa 6 00142 3515 20 epp1 pr6|98,* spr 002643 aa 1 77750 3515 06 epp1 pr1|-24,ql socket_array 002644 aa 6 00124 2515 00 spri1 pr6|84 socket_ptr STATEMENT 1 ON LINE 586 if socket_ptr -> socket.state = bit (binary (SOCK_UNASSIGNED, 6)) then goto np_inv; 002645 aa 000000 2350 07 lda 0,dl 002646 aa 000002 6050 04 tpl 2,ic 002650 002647 aa 000000 5310 00 neg 0 002650 aa 000036 7350 00 als 30 002651 aa 6 00336 7551 00 sta pr6|222 002652 aa 1 00017 2351 00 lda pr1|15 socket.state 002653 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 002654 aa 6 00336 1151 00 cmpa pr6|222 002655 aa 777754 6000 04 tze -20,ic 002631 STATEMENT 1 ON LINE 588 lockp = addr (socket_ptr -> socket.lock); 002656 aa 1 00004 3735 00 epp7 pr1|4 socket.lock 002657 aa 6 00122 6535 00 spri7 pr6|82 lockp STATEMENT 1 ON LINE 589 call ncp_lock_$lock_wait (lockp, icode); 002660 aa 6 00122 3521 00 epp2 pr6|82 lockp 002661 aa 6 00342 2521 00 spri2 pr6|226 002662 aa 6 00111 3521 00 epp2 pr6|73 icode 002663 aa 6 00344 2521 00 spri2 pr6|228 002664 aa 6 00340 6211 00 eax1 pr6|224 002665 aa 010000 4310 07 fld 4096,dl 002666 aa 6 00044 3701 20 epp4 pr6|36,* 002667 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 002670 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 590 if socket_ptr -> socket.overseer_process_id ^= procid then if socket_ptr -> socket.process_id ^= procid then do; 002671 aa 6 00124 3735 20 epp7 pr6|84,* socket_ptr 002672 aa 7 00006 2351 00 lda pr7|6 socket.overseer_process_id 002673 aa 6 00116 1151 00 cmpa pr6|78 procid 002674 aa 000011 6000 04 tze 9,ic 002705 002675 aa 7 00005 2351 00 lda pr7|5 socket.process_id 002676 aa 6 00116 1151 00 cmpa pr6|78 procid 002677 aa 000006 6000 04 tze 6,ic 002705 STATEMENT 1 ON LINE 591 gpr -> gdt.error_code = error_table_$bad_index; 002700 aa 6 00044 3701 20 epp4 pr6|36,* 002701 la 4 00022 2361 20 ldq pr4|18,* error_table_$bad_index 002702 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002703 aa 5 00001 7561 00 stq pr5|1 gdt.error_code STATEMENT 1 ON LINE 592 return; 002704 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 593 end; STATEMENT 1 ON LINE 595 if socket_ptr -> socket.socket_index ^= gpr -> gdt.ncp_idx then do; 002705 aa 7 00026 2351 00 lda pr7|22 socket.socket_index 002706 aa 6 00130 3715 20 epp5 pr6|88,* gpr 002707 aa 5 00003 1151 00 cmpa pr5|3 gdt.ncp_idx 002710 aa 000005 6000 04 tze 5,ic 002715 STATEMENT 1 ON LINE 597 gpr -> gdt.error_code = error_table_$bad_index; 002711 aa 6 00044 3701 20 epp4 pr6|36,* 002712 la 4 00022 2361 20 ldq pr4|18,* error_table_$bad_index 002713 aa 5 00001 7561 00 stq pr5|1 gdt.error_code STATEMENT 1 ON LINE 598 return; 002714 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 599 end; STATEMENT 1 ON LINE 601 socket_ptr -> socket.allow_interrupts = "0"b; 002715 aa 001753 2350 04 lda 1003,ic 004670 = 777773777777 002716 aa 7 00017 3551 00 ansa pr7|15 socket.allow_interrupts STATEMENT 1 ON LINE 602 socket_ptr -> socket.signal_event_channel = 0; 002717 aa 775133 2370 04 ldaq -1445,ic 000052 = 000000000000 000000000000 002720 aa 7 00024 7571 00 staq pr7|20 socket.signal_event_channel STATEMENT 1 ON LINE 604 socket_ptr -> socket.event_channel = 0; 002721 aa 7 00000 7571 00 staq pr7|0 socket.event_channel STATEMENT 1 ON LINE 605 socket_ptr -> socket.validation_level = bit (binary (7, 3)); 002722 aa 000007 2350 07 lda 7,dl 002723 aa 000002 6050 04 tpl 2,ic 002725 002724 aa 000000 5310 00 neg 0 002725 aa 0 00322 3771 00 anaq pr0|210 = 000000000007 777777777777 002726 aa 7 00017 6751 00 era pr7|15 socket.validation_level 002727 aa 000007 3750 07 ana 7,dl 002730 aa 7 00017 6551 00 ersa pr7|15 socket.validation_level STATEMENT 1 ON LINE 607 socket_ptr -> socket.process_id = gpr -> gdt.proc_id_arg; 002731 aa 5 00021 2351 00 lda pr5|17 gdt.proc_id_arg 002732 aa 7 00005 7551 00 sta pr7|5 socket.process_id STATEMENT 1 ON LINE 609 call signal_process (socket_ptr, 1, (0)); 002733 aa 000001 2360 07 ldq 1,dl 002734 aa 6 00336 7561 00 stq pr6|222 002735 aa 6 00337 4501 00 stz pr6|223 002736 aa 6 00124 3521 00 epp2 pr6|84 socket_ptr 002737 aa 6 00352 2521 00 spri2 pr6|234 002740 aa 6 00336 3521 00 epp2 pr6|222 002741 aa 6 00354 2521 00 spri2 pr6|236 002742 aa 6 00337 3521 00 epp2 pr6|223 002743 aa 6 00356 2521 00 spri2 pr6|238 002744 aa 6 00350 6211 00 eax1 pr6|232 002745 aa 014000 4310 07 fld 6144,dl 002746 aa 775257 3520 04 epp2 -1361,ic 000225 = 000560627000 002747 aa 0 00621 7001 00 tsx0 pr0|401 call_ext_in STATEMENT 1 ON LINE 611 return; 002750 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 616 elab (23): host_code = gpr -> gdt.gq_host_id; 002751 aa 6 00130 3735 20 epp7 pr6|88,* gpr 002752 aa 7 00037 2361 00 ldq pr7|31 gdt.gq_host_id 002753 aa 6 00102 7561 00 stq pr6|66 host_code STATEMENT 1 ON LINE 618 lockp = null (); 002754 aa 775100 2370 04 ldaq -1472,ic 000054 = 077777000043 000001000000 002755 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 620 lockp = addr (npr -> ncp_dt.htbl_lock); 002756 aa 6 00136 3715 20 epp5 pr6|94,* npr 002757 aa 5 00014 3715 00 epp5 pr5|12 ncp_dt.htbl_lock 002760 aa 6 00122 6515 00 spri5 pr6|82 lockp STATEMENT 1 ON LINE 621 call ncp_lock_$lock_wait (lockp, icode); 002761 aa 6 00122 3521 00 epp2 pr6|82 lockp 002762 aa 6 00342 2521 00 spri2 pr6|226 002763 aa 6 00111 3521 00 epp2 pr6|73 icode 002764 aa 6 00344 2521 00 spri2 pr6|228 002765 aa 6 00340 6211 00 eax1 pr6|224 002766 aa 010000 4310 07 fld 4096,dl 002767 aa 6 00044 3701 20 epp4 pr6|36,* 002770 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 002771 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 623 host_ptr = find_host_slot (host_code, "1"b); 002772 aa 400000 2350 03 lda 131072,du 002773 aa 6 00337 7551 00 sta pr6|223 002774 aa 001664 3520 04 epp2 948,ic 004660 = 000006000000 002775 aa 000355 6700 04 tsp4 237,ic 003352 STATEMENT 1 ON LINE 624 if host_ptr = null () then do; 002776 aa 6 00126 2371 00 ldaq pr6|86 host_ptr 002777 aa 775055 6770 04 eraq -1491,ic 000054 = 077777000043 000001000000 003000 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003001 aa 000022 6010 04 tnz 18,ic 003023 STATEMENT 1 ON LINE 626 call ncp_lock_$lock_unlock (lockp, (0)); 003002 aa 6 00337 4501 00 stz pr6|223 003003 aa 6 00122 3521 00 epp2 pr6|82 lockp 003004 aa 6 00342 2521 00 spri2 pr6|226 003005 aa 6 00337 3521 00 epp2 pr6|223 003006 aa 6 00344 2521 00 spri2 pr6|228 003007 aa 6 00340 6211 00 eax1 pr6|224 003010 aa 010000 4310 07 fld 4096,dl 003011 aa 6 00044 3701 20 epp4 pr6|36,* 003012 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 003013 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 627 lockp = null (); 003014 aa 775040 2370 04 ldaq -1504,ic 000054 = 077777000043 000001000000 003015 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 629 gpr -> gdt.error_code = error_table_$net_table_space; 003016 aa 6 00044 3701 20 epp4 pr6|36,* 003017 la 4 00036 2361 20 ldq pr4|30,* error_table_$net_table_space 003020 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003021 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 630 return; 003022 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 631 end; STATEMENT 1 ON LINE 633 if host_ptr -> host.host_state ^= bit (binary (HOST_OFF, 6)) then do; 003023 aa 000000 2350 07 lda 0,dl 003024 aa 000002 6050 04 tpl 2,ic 003026 003025 aa 000000 5310 00 neg 0 003026 aa 000036 7350 00 als 30 003027 aa 6 00337 7551 00 sta pr6|223 003030 aa 6 00126 3735 20 epp7 pr6|86,* host_ptr 003031 aa 7 00003 2351 00 lda pr7|3 host.host_state 003032 aa 000011 7350 00 als 9 003033 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 003034 aa 6 00337 1151 00 cmpa pr6|223 003035 aa 000022 6000 04 tze 18,ic 003057 STATEMENT 1 ON LINE 635 call ncp_lock_$lock_unlock (lockp, (0)); 003036 aa 6 00337 4501 00 stz pr6|223 003037 aa 6 00122 3521 00 epp2 pr6|82 lockp 003040 aa 6 00342 2521 00 spri2 pr6|226 003041 aa 6 00337 3521 00 epp2 pr6|223 003042 aa 6 00344 2521 00 spri2 pr6|228 003043 aa 6 00340 6211 00 eax1 pr6|224 003044 aa 010000 4310 07 fld 4096,dl 003045 aa 6 00044 3701 20 epp4 pr6|36,* 003046 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 003047 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 636 lockp = null (); 003050 aa 775004 2370 04 ldaq -1532,ic 000054 = 077777000043 000001000000 003051 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 638 gpr -> gdt.error_code = error_table_$net_invalid_state; 003052 aa 6 00044 3701 20 epp4 pr6|36,* 003053 la 4 00034 2361 20 ldq pr4|28,* error_table_$net_invalid_state 003054 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003055 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 639 return; 003056 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 640 end; STATEMENT 1 ON LINE 642 call bring_host_up (host_ptr); 003057 aa 001623 3520 04 epp2 915,ic 004702 = 000002000000 003060 aa 000317 6700 04 tsp4 207,ic 003377 STATEMENT 1 ON LINE 643 call send_RST_control_message (host_ptr); 003061 aa 001621 3520 04 epp2 913,ic 004702 = 000002000000 003062 aa 001026 6700 04 tsp4 534,ic 004110 STATEMENT 1 ON LINE 644 call set_host_state (host_ptr, HOST_RST); 003063 aa 001567 3520 04 epp2 887,ic 004652 = 000004000000 003064 aa 001107 6700 04 tsp4 583,ic 004173 STATEMENT 1 ON LINE 646 return; 003065 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 650 elab (24): elab (25): elab (26): elab (27): elab (28): host_code = gpr -> gdt.gq_host_id; 003066 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003067 aa 7 00037 2361 00 ldq pr7|31 gdt.gq_host_id 003070 aa 6 00102 7561 00 stq pr6|66 host_code STATEMENT 1 ON LINE 656 lockp = null (); 003071 aa 774763 2370 04 ldaq -1549,ic 000054 = 077777000043 000001000000 003072 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 658 lockp = addr (npr -> ncp_dt.htbl_lock); 003073 aa 6 00136 3715 20 epp5 pr6|94,* npr 003074 aa 5 00014 3715 00 epp5 pr5|12 ncp_dt.htbl_lock 003075 aa 6 00122 6515 00 spri5 pr6|82 lockp STATEMENT 1 ON LINE 659 call ncp_lock_$lock_wait (lockp, icode); 003076 aa 6 00122 3521 00 epp2 pr6|82 lockp 003077 aa 6 00342 2521 00 spri2 pr6|226 003100 aa 6 00111 3521 00 epp2 pr6|73 icode 003101 aa 6 00344 2521 00 spri2 pr6|228 003102 aa 6 00340 6211 00 eax1 pr6|224 003103 aa 010000 4310 07 fld 4096,dl 003104 aa 6 00044 3701 20 epp4 pr6|36,* 003105 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 003106 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 661 host_ptr = find_host_slot (host_code, "0"b); 003107 aa 000000 2350 07 lda 0,dl 003110 aa 6 00337 7551 00 sta pr6|223 003111 aa 001547 3520 04 epp2 871,ic 004660 = 000006000000 003112 aa 000240 6700 04 tsp4 160,ic 003352 STATEMENT 1 ON LINE 662 if host_ptr = null () then goto nhc_host_disabled; 003113 aa 6 00126 2371 00 ldaq pr6|86 host_ptr 003114 aa 774740 6770 04 eraq -1568,ic 000054 = 077777000043 000001000000 003115 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003116 aa 000017 6000 04 tze 15,ic 003135 STATEMENT 1 ON LINE 665 if host_ptr -> host.host_state = bit (binary (HOST_OFF, 6)) then goto nhc_host_disabled; 003117 aa 000000 2350 07 lda 0,dl 003120 aa 000002 6050 04 tpl 2,ic 003122 003121 aa 000000 5310 00 neg 0 003122 aa 000036 7350 00 als 30 003123 aa 6 00337 7551 00 sta pr6|223 003124 aa 6 00126 3735 20 epp7 pr6|86,* host_ptr 003125 aa 7 00003 2351 00 lda pr7|3 host.host_state 003126 aa 000011 7350 00 als 9 003127 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 003130 aa 6 00337 1151 00 cmpa pr6|223 003131 aa 000004 6000 04 tze 4,ic 003135 STATEMENT 1 ON LINE 668 goto flab (gpr -> gdt.request_code); 003132 aa 6 00130 3715 20 epp5 pr6|88,* gpr 003133 aa 5 00002 7271 00 lxl7 pr5|2 gdt.request_code 003134 ta 777762 7100 17 tra -14,7 STATEMENT 1 ON LINE 670 nhc_host_disabled: gpr -> gdt.error_code = error_table_$net_fhost_inactive; 003135 aa 6 00044 3701 20 epp4 pr6|36,* 003136 la 4 00032 2361 20 ldq pr4|26,* error_table_$net_fhost_inactive 003137 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003140 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 672 return; 003141 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 678 flab (28): call set_host_state (host_ptr, HOST_UP); 003142 aa 001532 3520 04 epp2 858,ic 004674 = 000004000000 003143 aa 001030 6700 04 tsp4 536,ic 004173 STATEMENT 1 ON LINE 681 return; 003144 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 685 flab (24): flab (25): flab (26): flab (27): call reset_host_data (host_ptr); 003145 aa 001535 3520 04 epp2 861,ic 004702 = 000002000000 003146 aa 000656 6700 04 tsp4 430,ic 004024 STATEMENT 1 ON LINE 692 if gpr -> gdt.request_code = 24 then do; 003147 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003150 aa 7 00002 2361 00 ldq pr7|2 gdt.request_code 003151 aa 000030 1160 07 cmpq 24,dl 003152 aa 000006 6010 04 tnz 6,ic 003160 STATEMENT 1 ON LINE 694 call take_host_down (host_ptr); 003153 aa 001527 3520 04 epp2 855,ic 004702 = 000002000000 003154 aa 000531 6700 04 tsp4 345,ic 003705 STATEMENT 1 ON LINE 695 call set_host_state (host_ptr, HOST_OFF); 003155 aa 001467 3520 04 epp2 823,ic 004644 = 000004000000 003156 aa 001015 6700 04 tsp4 525,ic 004173 STATEMENT 1 ON LINE 696 end; 003157 aa 000100 7100 04 tra 64,ic 003257 STATEMENT 1 ON LINE 697 else do; STATEMENT 1 ON LINE 698 call imp_read_order ((host_ptr -> host.rcv_link_index), IMP_ORDER_abort_transfer, null (), status, icode); 003160 aa 6 00126 3715 20 epp5 pr6|86,* host_ptr 003161 aa 5 00001 2351 00 lda pr5|1 host.rcv_link_index 003162 aa 000066 7330 00 lrs 54 003163 aa 6 00337 7561 00 stq pr6|223 003164 aa 774670 3534 24 epp3 -1608,ic* 003165 aa 6 00346 2535 00 spri3 pr6|230 003166 aa 6 00337 3521 00 epp2 pr6|223 003167 aa 6 00374 2521 00 spri2 pr6|252 003170 aa 774655 3520 04 epp2 -1619,ic 000045 = 000000000001 003171 aa 6 00376 2521 00 spri2 pr6|254 003172 aa 6 00346 3521 00 epp2 pr6|230 003173 aa 6 00400 2521 00 spri2 pr6|256 003174 aa 6 00114 3521 00 epp2 pr6|76 status 003175 aa 6 00402 2521 00 spri2 pr6|258 003176 aa 6 00111 3521 00 epp2 pr6|73 icode 003177 aa 6 00404 2521 00 spri2 pr6|260 003200 aa 6 00372 6211 00 eax1 pr6|250 003201 aa 024000 4310 07 fld 10240,dl 003202 aa 6 00044 3701 20 epp4 pr6|36,* 003203 la 4 00056 3521 20 epp2 pr4|46,* imp_read_order 003204 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 699 call imp_write_order ((host_ptr -> host.xmit_link_index), IMP_ORDER_abort_transfer, null (), status, icode); 003205 aa 6 00126 3735 20 epp7 pr6|86,* host_ptr 003206 aa 7 00001 2351 00 lda pr7|1 host.xmit_link_index 003207 aa 000022 7350 00 als 18 003210 aa 000066 7330 00 lrs 54 003211 aa 6 00337 7561 00 stq pr6|223 003212 aa 774642 3714 24 epp5 -1630,ic* 003213 aa 6 00346 6515 00 spri5 pr6|230 003214 aa 6 00337 3521 00 epp2 pr6|223 003215 aa 6 00374 2521 00 spri2 pr6|252 003216 aa 774627 3520 04 epp2 -1641,ic 000045 = 000000000001 003217 aa 6 00376 2521 00 spri2 pr6|254 003220 aa 6 00346 3521 00 epp2 pr6|230 003221 aa 6 00400 2521 00 spri2 pr6|256 003222 aa 6 00114 3521 00 epp2 pr6|76 status 003223 aa 6 00402 2521 00 spri2 pr6|258 003224 aa 6 00111 3521 00 epp2 pr6|73 icode 003225 aa 6 00404 2521 00 spri2 pr6|260 003226 aa 6 00372 6211 00 eax1 pr6|250 003227 aa 024000 4310 07 fld 10240,dl 003230 aa 6 00044 3701 20 epp4 pr6|36,* 003231 la 4 00060 3521 20 epp2 pr4|48,* imp_write_order 003232 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 700 if gpr -> gdt.request_code = 27 then do; 003233 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003234 aa 7 00002 2361 00 ldq pr7|2 gdt.request_code 003235 aa 000033 1160 07 cmpq 27,dl 003236 aa 000010 6010 04 tnz 8,ic 003246 STATEMENT 1 ON LINE 702 call take_host_down (host_ptr); 003237 aa 001443 3520 04 epp2 803,ic 004702 = 000002000000 003240 aa 000445 6700 04 tsp4 293,ic 003705 STATEMENT 1 ON LINE 703 call bring_host_up (host_ptr); 003241 aa 001441 3520 04 epp2 801,ic 004702 = 000002000000 003242 aa 000135 6700 04 tsp4 93,ic 003377 STATEMENT 1 ON LINE 704 call set_host_state (host_ptr, HOST_UP); 003243 aa 001431 3520 04 epp2 793,ic 004674 = 000004000000 003244 aa 000727 6700 04 tsp4 471,ic 004173 STATEMENT 1 ON LINE 705 end; 003245 aa 000012 7100 04 tra 10,ic 003257 STATEMENT 1 ON LINE 706 else do; STATEMENT 1 ON LINE 707 if gpr -> gdt.request_code = 25 then call set_host_state (host_ptr, HOST_DOWN); 003246 aa 000031 1160 07 cmpq 25,dl 003247 aa 000004 6010 04 tnz 4,ic 003253 003250 aa 001366 3520 04 epp2 758,ic 004636 = 000004000000 003251 aa 000722 6700 04 tsp4 466,ic 004173 003252 aa 000005 7100 04 tra 5,ic 003257 STATEMENT 1 ON LINE 709 else do; STATEMENT 1 ON LINE 710 call send_RST_control_message (host_ptr); 003253 aa 001427 3520 04 epp2 791,ic 004702 = 000002000000 003254 aa 000634 6700 04 tsp4 412,ic 004110 STATEMENT 1 ON LINE 711 call set_host_state (host_ptr, HOST_RST); 003255 aa 001375 3520 04 epp2 765,ic 004652 = 000004000000 003256 aa 000715 6700 04 tsp4 461,ic 004173 STATEMENT 1 ON LINE 712 end; STATEMENT 1 ON LINE 713 end; STATEMENT 1 ON LINE 714 end; STATEMENT 1 ON LINE 716 return; 003257 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 721 elab (29): host_code = gpr -> gdt.gq_host_id; 003260 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003261 aa 7 00037 2361 00 ldq pr7|31 gdt.gq_host_id 003262 aa 6 00102 7561 00 stq pr6|66 host_code STATEMENT 1 ON LINE 723 lockp = null (); 003263 aa 774571 2370 04 ldaq -1671,ic 000054 = 077777000043 000001000000 003264 aa 6 00122 7571 00 staq pr6|82 lockp STATEMENT 1 ON LINE 725 host_ptr = find_host_slot (host_code, "0"b); 003265 aa 000000 2350 07 lda 0,dl 003266 aa 6 00337 7551 00 sta pr6|223 003267 aa 001371 3520 04 epp2 761,ic 004660 = 000006000000 003270 aa 000062 6700 04 tsp4 50,ic 003352 STATEMENT 1 ON LINE 726 if host_ptr = null () then do; 003271 aa 6 00126 2371 00 ldaq pr6|86 host_ptr 003272 aa 774562 6770 04 eraq -1678,ic 000054 = 077777000043 000001000000 003273 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003274 aa 000006 6010 04 tnz 6,ic 003302 STATEMENT 1 ON LINE 728 gpr -> gdt.error_code = error_table_$net_fhost_inactive; 003275 aa 6 00044 3701 20 epp4 pr6|36,* 003276 la 4 00032 2361 20 ldq pr4|26,* error_table_$net_fhost_inactive 003277 aa 6 00130 3735 20 epp7 pr6|88,* gpr 003300 aa 7 00001 7561 00 stq pr7|1 gdt.error_code STATEMENT 1 ON LINE 729 return; 003301 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 730 end; STATEMENT 1 ON LINE 732 mpr = addr (ncp_tables_$meter_cells); 003302 aa 6 00044 3701 20 epp4 pr6|36,* 003303 la 4 00014 3735 20 epp7 pr4|12,* ncp_tables_$meter_cells 003304 aa 6 00134 6535 00 spri7 pr6|92 mpr STATEMENT 1 ON LINE 733 mpr -> meter_dt.eco_time = gpr -> gdt.entry_time; 003305 aa 6 00130 3715 20 epp5 pr6|88,* gpr 003306 aa 5 00022 2371 00 ldaq pr5|18 gdt.entry_time 003307 aa 7 00170 7571 00 staq pr7|120 meter_dt.eco_time STATEMENT 1 ON LINE 734 mpr -> meter_dt.eco_host = gpr -> gdt.gq_host_id; 003310 aa 5 00037 2361 00 ldq pr5|31 gdt.gq_host_id 003311 aa 7 00174 7561 00 stq pr7|124 meter_dt.eco_host STATEMENT 1 ON LINE 735 ctl_mess.com_code = bit (binary (17, 8)); 003312 aa 000021 2350 07 lda 17,dl 003313 aa 000002 6050 04 tpl 2,ic 003315 003314 aa 000000 5310 00 neg 0 003315 aa 000034 7350 00 als 28 003316 aa 6 00145 6751 00 era pr6|101 ctl_mess.com_code 003317 aa 0 00020 3751 00 ana pr0|16 = 776000000000 003320 aa 6 00145 6551 00 ersa pr6|101 ctl_mess.com_code STATEMENT 1 ON LINE 736 ctl_mess.arg (1) = bit (binary (gpr -> gdt.gq_host_id, 8)); 003321 aa 5 00037 2351 00 lda pr5|31 gdt.gq_host_id 003322 aa 000002 6050 04 tpl 2,ic 003324 003323 aa 000000 5310 00 neg 0 003324 aa 000034 7350 00 als 28 003325 aa 000010 7710 00 arl 8 003326 aa 6 00145 6751 00 era pr6|101 ctl_mess.arg 003327 aa 001774 3750 03 ana 1020,du 003330 aa 6 00145 6551 00 ersa pr6|101 ctl_mess.arg STATEMENT 1 ON LINE 738 call ncp_util_$send_control_message (host_ptr, addr (ctl_mess), 2, gpr -> gdt.error_code); 003331 aa 6 00145 3535 00 epp3 pr6|101 ctl_mess 003332 aa 6 00346 2535 00 spri3 pr6|230 003333 aa 000002 2360 07 ldq 2,dl 003334 aa 6 00337 7561 00 stq pr6|223 003335 aa 6 00126 3521 00 epp2 pr6|86 host_ptr 003336 aa 6 00362 2521 00 spri2 pr6|242 003337 aa 6 00346 3521 00 epp2 pr6|230 003340 aa 6 00364 2521 00 spri2 pr6|244 003341 aa 6 00337 3521 00 epp2 pr6|223 003342 aa 6 00366 2521 00 spri2 pr6|246 003343 aa 5 00001 3521 00 epp2 pr5|1 gdt.error_code 003344 aa 6 00370 2521 00 spri2 pr6|248 003345 aa 6 00360 6211 00 eax1 pr6|240 003346 aa 020000 4310 07 fld 8192,dl 003347 la 4 00102 3521 20 epp2 pr4|66,* ncp_util_$send_control_message 003350 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 740 return; 003351 aa 6 00150 6101 00 rtcd pr6|104 STATEMENT 1 ON LINE 742 end; END PROCEDURE process_request BEGIN PROCEDURE find_host_slot ENTRY TO find_host_slot STATEMENT 1 ON LINE 746 find_host_slot: procedure (p_host_num, p_create_slot) returns (ptr); 003352 aa 6 00160 6501 00 spri4 pr6|112 003353 aa 6 00162 2521 00 spri2 pr6|114 STATEMENT 1 ON LINE 764 call ncp_util_$find_host_entry (p_host_num, p_create_slot, host_entry_ptr, (0)); 003354 aa 6 00406 4501 00 stz pr6|262 003355 aa 2 00002 3521 20 epp2 pr2|2,* p_host_num 003356 aa 6 00412 2521 00 spri2 pr6|266 003357 aa 6 00162 3735 20 epp7 pr6|114,* 003360 aa 7 00004 3521 20 epp2 pr7|4,* p_create_slot 003361 aa 6 00414 2521 00 spri2 pr6|268 003362 aa 6 00166 3521 00 epp2 pr6|118 host_entry_ptr 003363 aa 6 00416 2521 00 spri2 pr6|270 003364 aa 6 00406 3521 00 epp2 pr6|262 003365 aa 6 00420 2521 00 spri2 pr6|272 003366 aa 6 00410 6211 00 eax1 pr6|264 003367 aa 020000 4310 07 fld 8192,dl 003370 aa 6 00044 3701 20 epp4 pr6|36,* 003371 la 4 00100 3521 20 epp2 pr4|64,* ncp_util_$find_host_entry 003372 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 766 return (host_entry_ptr); 003373 aa 6 00166 3735 20 epp7 pr6|118,* host_entry_ptr 003374 aa 6 00162 3715 20 epp5 pr6|114,* 003375 aa 5 00006 6535 20 spri7 pr5|6,* 003376 aa 6 00160 6101 00 rtcd pr6|112 STATEMENT 1 ON LINE 768 end; END PROCEDURE find_host_slot BEGIN PROCEDURE bring_host_up ENTRY TO bring_host_up STATEMENT 1 ON LINE 772 bring_host_up: procedure (p_host_ptr); 003377 aa 6 00170 6501 00 spri4 pr6|120 003400 aa 6 00172 2521 00 spri2 pr6|122 STATEMENT 1 ON LINE 795 host_num = binary (p_host_ptr -> host.host_number, 32); 003401 aa 2 00002 3735 20 epp7 pr2|2,* p_host_ptr 003402 aa 7 00000 3735 20 epp7 pr7|0,* p_host_ptr 003403 aa 7 00010 2361 00 ldq pr7|8 host.host_number 003404 aa 6 00177 7561 00 stq pr6|127 host_num STATEMENT 1 ON LINE 796 string (haddr) = bit (binary (host_num, 32), 32); 003405 aa 6 00177 2351 00 lda pr6|127 host_num 003406 aa 000002 6050 04 tpl 2,ic 003410 003407 aa 000000 5310 00 neg 0 003410 aa 000004 7350 00 als 4 003411 aa 6 00176 7551 00 sta pr6|126 STATEMENT 1 ON LINE 798 call reset_link_table (p_host_ptr); 003412 aa 2 00002 3521 20 epp2 pr2|2,* p_host_ptr 003413 aa 6 00424 2521 00 spri2 pr6|276 003414 aa 6 00422 3521 00 epp2 pr6|274 003415 aa 004000 4310 07 fld 2048,dl 003416 aa 2 00000 7571 00 staq pr2|0 003417 aa 001137 6700 04 tsp4 607,ic 004556 STATEMENT 1 ON LINE 800 call set_host_state (p_host_ptr, HOST_OFF); 003420 aa 6 00172 3735 20 epp7 pr6|122,* 003421 aa 7 00002 3521 20 epp2 pr7|2,* p_host_ptr 003422 aa 6 00432 2521 00 spri2 pr6|282 003423 aa 774414 3520 04 epp2 -1780,ic 000037 = 000000000000 003424 aa 6 00434 2521 00 spri2 pr6|284 003425 aa 6 00430 3521 00 epp2 pr6|280 003426 aa 010000 4310 07 fld 4096,dl 003427 aa 2 00000 7571 00 staq pr2|0 003430 aa 000543 6700 04 tsp4 355,ic 004173 STATEMENT 1 ON LINE 802 call imp_attach_read (binary (haddr.net), binary (haddr.imp), binary (haddr.host), 0, npr -> ncp_dt.ncp_procid, npr -> ncp_dt.ncp_ev_chan, link_indx, icode); 003431 aa 6 00176 2351 00 lda pr6|126 haddr.net 003432 aa 000100 7730 00 lrl 64 003433 aa 6 00440 7561 00 stq pr6|288 003434 aa 6 00176 2351 00 lda pr6|126 haddr.imp 003435 aa 000020 7350 00 als 16 003436 aa 000070 7730 00 lrl 56 003437 aa 6 00441 7561 00 stq pr6|289 003440 aa 6 00176 2351 00 lda pr6|126 haddr.host 003441 aa 000010 7350 00 als 8 003442 aa 000100 7730 00 lrl 64 003443 aa 6 00442 7561 00 stq pr6|290 003444 aa 6 00443 4501 00 stz pr6|291 003445 aa 6 00440 3521 00 epp2 pr6|288 003446 aa 6 00446 2521 00 spri2 pr6|294 003447 aa 6 00441 3521 00 epp2 pr6|289 003450 aa 6 00450 2521 00 spri2 pr6|296 003451 aa 6 00442 3521 00 epp2 pr6|290 003452 aa 6 00452 2521 00 spri2 pr6|298 003453 aa 6 00443 3521 00 epp2 pr6|291 003454 aa 6 00454 2521 00 spri2 pr6|300 003455 aa 6 00136 3735 20 epp7 pr6|94,* npr 003456 aa 7 00002 3521 00 epp2 pr7|2 ncp_dt.ncp_procid 003457 aa 6 00456 2521 00 spri2 pr6|302 003460 aa 7 00000 3521 00 epp2 pr7|0 ncp_dt.ncp_ev_chan 003461 aa 6 00460 2521 00 spri2 pr6|304 003462 aa 6 00200 3521 00 epp2 pr6|128 link_indx 003463 aa 6 00462 2521 00 spri2 pr6|306 003464 aa 6 00111 3521 00 epp2 pr6|73 icode 003465 aa 6 00464 2521 00 spri2 pr6|308 003466 aa 6 00444 6211 00 eax1 pr6|292 003467 aa 040000 4310 07 fld 16384,dl 003470 aa 6 00044 3701 20 epp4 pr6|36,* 003471 la 4 00042 3521 20 epp2 pr4|34,* imp_attach_read 003472 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 804 if icode ^= 0 then do; 003473 aa 6 00111 2361 00 ldq pr6|73 icode 003474 aa 000022 6000 04 tze 18,ic 003516 STATEMENT 1 ON LINE 806 call ncp_error_ (icode, "ACCESS_read_control_link"); 003475 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003476 aa 774412 00 0030 desc9a -1782,24 000107 = 101103103105 003477 aa 6 00422 00 0030 desc9a pr6|274,24 003500 aa 6 00111 3521 00 epp2 pr6|73 icode 003501 aa 6 00446 2521 00 spri2 pr6|294 003502 aa 6 00422 3521 00 epp2 pr6|274 003503 aa 6 00450 2521 00 spri2 pr6|296 003504 aa 774340 3520 04 epp2 -1824,ic 000044 = 404000000043 003505 aa 6 00452 2521 00 spri2 pr6|298 003506 aa 774315 3520 04 epp2 -1843,ic 000023 = 524000000030 003507 aa 6 00454 2521 00 spri2 pr6|300 003510 aa 6 00444 6211 00 eax1 pr6|292 003511 aa 010000 4310 07 fld 4096,dl 003512 aa 6 00044 3701 20 epp4 pr6|36,* 003513 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 003514 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 807 return; 003515 aa 6 00170 6101 00 rtcd pr6|120 STATEMENT 1 ON LINE 808 end; STATEMENT 1 ON LINE 809 p_host_ptr -> host.rcv_link_index = link_indx; 003516 aa 6 00200 2361 00 ldq pr6|128 link_indx 003517 aa 000066 7370 00 lls 54 003520 aa 6 00172 3735 20 epp7 pr6|122,* 003521 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 003522 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 003523 aa 5 00001 5511 60 stba pr5|1,60 host.rcv_link_index STATEMENT 1 ON LINE 811 do impdim_mode = IMP_ORDER_single_message_mode, IMP_ORDER_control_link; 003524 aa 000026 3520 04 epp2 22,ic 003552 = 000005352004 003525 aa 6 00204 2521 00 spri2 pr6|132 003526 aa 000003 2360 07 ldq 3,dl 003527 aa 6 00202 7561 00 stq pr6|130 impdim_mode STATEMENT 1 ON LINE 812 call imp_read_order (link_indx, impdim_mode, null (), status, icode); 003530 aa 774324 3734 24 epp7 -1836,ic* 003531 aa 6 00466 6535 00 spri7 pr6|310 003532 aa 6 00200 3521 00 epp2 pr6|128 link_indx 003533 aa 6 00446 2521 00 spri2 pr6|294 003534 aa 6 00202 3521 00 epp2 pr6|130 impdim_mode 003535 aa 6 00450 2521 00 spri2 pr6|296 003536 aa 6 00466 3521 00 epp2 pr6|310 003537 aa 6 00452 2521 00 spri2 pr6|298 003540 aa 6 00114 3521 00 epp2 pr6|76 status 003541 aa 6 00454 2521 00 spri2 pr6|300 003542 aa 6 00111 3521 00 epp2 pr6|73 icode 003543 aa 6 00456 2521 00 spri2 pr6|302 003544 aa 6 00444 6211 00 eax1 pr6|292 003545 aa 024000 4310 07 fld 10240,dl 003546 aa 6 00044 3701 20 epp4 pr6|36,* 003547 la 4 00056 3521 20 epp2 pr4|46,* imp_read_order 003550 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 813 end; 003551 aa 6 00204 7101 20 tra pr6|132,* 003552 aa 000005 3520 04 epp2 5,ic 003557 = 600176235100 003553 aa 6 00204 2521 00 spri2 pr6|132 003554 aa 000007 2360 07 ldq 7,dl 003555 aa 6 00202 7561 00 stq pr6|130 impdim_mode 003556 aa 777752 7100 04 tra -22,ic 003530 STATEMENT 1 ON LINE 815 call imp_attach_write (binary (haddr.net), binary (haddr.imp), binary (haddr.host), 0, npr -> ncp_dt.ncp_procid, npr -> ncp_dt.ncp_ev_chan, link_indx, icode); 003557 aa 6 00176 2351 00 lda pr6|126 haddr.net 003560 aa 000100 7730 00 lrl 64 003561 aa 6 00443 7561 00 stq pr6|291 003562 aa 6 00176 2351 00 lda pr6|126 haddr.imp 003563 aa 000020 7350 00 als 16 003564 aa 000070 7730 00 lrl 56 003565 aa 6 00442 7561 00 stq pr6|290 003566 aa 6 00176 2351 00 lda pr6|126 haddr.host 003567 aa 000010 7350 00 als 8 003570 aa 000100 7730 00 lrl 64 003571 aa 6 00441 7561 00 stq pr6|289 003572 aa 6 00440 4501 00 stz pr6|288 003573 aa 6 00443 3521 00 epp2 pr6|291 003574 aa 6 00446 2521 00 spri2 pr6|294 003575 aa 6 00442 3521 00 epp2 pr6|290 003576 aa 6 00450 2521 00 spri2 pr6|296 003577 aa 6 00441 3521 00 epp2 pr6|289 003600 aa 6 00452 2521 00 spri2 pr6|298 003601 aa 6 00440 3521 00 epp2 pr6|288 003602 aa 6 00454 2521 00 spri2 pr6|300 003603 aa 6 00136 3735 20 epp7 pr6|94,* npr 003604 aa 7 00002 3521 00 epp2 pr7|2 ncp_dt.ncp_procid 003605 aa 6 00456 2521 00 spri2 pr6|302 003606 aa 7 00000 3521 00 epp2 pr7|0 ncp_dt.ncp_ev_chan 003607 aa 6 00460 2521 00 spri2 pr6|304 003610 aa 6 00200 3521 00 epp2 pr6|128 link_indx 003611 aa 6 00462 2521 00 spri2 pr6|306 003612 aa 6 00111 3521 00 epp2 pr6|73 icode 003613 aa 6 00464 2521 00 spri2 pr6|308 003614 aa 6 00444 6211 00 eax1 pr6|292 003615 aa 040000 4310 07 fld 16384,dl 003616 aa 6 00044 3701 20 epp4 pr6|36,* 003617 la 4 00044 3521 20 epp2 pr4|36,* imp_attach_write 003620 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 817 if icode ^= 0 then do; 003621 aa 6 00111 2361 00 ldq pr6|73 icode 003622 aa 000022 6000 04 tze 18,ic 003644 STATEMENT 1 ON LINE 819 call ncp_error_ (icode, "ACCESS_write_control_link"); 003623 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003624 aa 774315 00 0034 desc9a -1843,28 000140 = 101103103105 003625 aa 6 00430 00 0034 desc9a pr6|280,28 003626 aa 6 00111 3521 00 epp2 pr6|73 icode 003627 aa 6 00446 2521 00 spri2 pr6|294 003630 aa 6 00430 3521 00 epp2 pr6|280 003631 aa 6 00450 2521 00 spri2 pr6|296 003632 aa 774212 3520 04 epp2 -1910,ic 000044 = 404000000043 003633 aa 6 00452 2521 00 spri2 pr6|298 003634 aa 774171 3520 04 epp2 -1927,ic 000025 = 524000000031 003635 aa 6 00454 2521 00 spri2 pr6|300 003636 aa 6 00444 6211 00 eax1 pr6|292 003637 aa 010000 4310 07 fld 4096,dl 003640 aa 6 00044 3701 20 epp4 pr6|36,* 003641 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 003642 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 820 return; 003643 aa 6 00170 6101 00 rtcd pr6|120 STATEMENT 1 ON LINE 821 end; STATEMENT 1 ON LINE 822 p_host_ptr -> host.xmit_link_index = link_indx; 003644 aa 6 00200 2361 00 ldq pr6|128 link_indx 003645 aa 6 00172 3735 20 epp7 pr6|122,* 003646 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 003647 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 003650 aa 5 00001 5521 14 stbq pr5|1,14 host.xmit_link_index STATEMENT 1 ON LINE 824 do impdim_mode = IMP_ORDER_single_message_mode, IMP_ORDER_control_link; 003651 aa 000026 3520 04 epp2 22,ic 003677 = 000005352004 003652 aa 6 00206 2521 00 spri2 pr6|134 003653 aa 000003 2360 07 ldq 3,dl 003654 aa 6 00202 7561 00 stq pr6|130 impdim_mode STATEMENT 1 ON LINE 825 call imp_write_order (link_indx, impdim_mode, null (), status, icode); 003655 aa 774177 3734 24 epp7 -1921,ic* 003656 aa 6 00466 6535 00 spri7 pr6|310 003657 aa 6 00200 3521 00 epp2 pr6|128 link_indx 003660 aa 6 00446 2521 00 spri2 pr6|294 003661 aa 6 00202 3521 00 epp2 pr6|130 impdim_mode 003662 aa 6 00450 2521 00 spri2 pr6|296 003663 aa 6 00466 3521 00 epp2 pr6|310 003664 aa 6 00452 2521 00 spri2 pr6|298 003665 aa 6 00114 3521 00 epp2 pr6|76 status 003666 aa 6 00454 2521 00 spri2 pr6|300 003667 aa 6 00111 3521 00 epp2 pr6|73 icode 003670 aa 6 00456 2521 00 spri2 pr6|302 003671 aa 6 00444 6211 00 eax1 pr6|292 003672 aa 024000 4310 07 fld 10240,dl 003673 aa 6 00044 3701 20 epp4 pr6|36,* 003674 la 4 00060 3521 20 epp2 pr4|48,* imp_write_order 003675 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 826 end; 003676 aa 6 00206 7101 20 tra pr6|134,* 003677 aa 000005 3520 04 epp2 5,ic 003704 = 600170610100 003700 aa 6 00206 2521 00 spri2 pr6|134 003701 aa 000007 2360 07 ldq 7,dl 003702 aa 6 00202 7561 00 stq pr6|130 impdim_mode 003703 aa 777752 7100 04 tra -22,ic 003655 STATEMENT 1 ON LINE 828 return; 003704 aa 6 00170 6101 00 rtcd pr6|120 ENTRY TO take_host_down STATEMENT 1 ON LINE 832 take_host_down: entry (p_host_ptr); 003705 aa 6 00170 6501 00 spri4 pr6|120 003706 aa 6 00172 2521 00 spri2 pr6|122 STATEMENT 1 ON LINE 835 call imp_detach_read ((p_host_ptr -> host.rcv_link_index), icode); 003707 aa 6 00172 3735 20 epp7 pr6|122,* 003710 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 003711 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 003712 aa 5 00001 2351 00 lda pr5|1 host.rcv_link_index 003713 aa 000066 7330 00 lrs 54 003714 aa 6 00440 7561 00 stq pr6|288 003715 aa 6 00440 3521 00 epp2 pr6|288 003716 aa 6 00424 2521 00 spri2 pr6|276 003717 aa 6 00111 3521 00 epp2 pr6|73 icode 003720 aa 6 00426 2521 00 spri2 pr6|278 003721 aa 6 00422 6211 00 eax1 pr6|274 003722 aa 010000 4310 07 fld 4096,dl 003723 aa 6 00044 3701 20 epp4 pr6|36,* 003724 la 4 00046 3521 20 epp2 pr4|38,* imp_detach_read 003725 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 836 if icode ^= 0 then do; 003726 aa 6 00111 2361 00 ldq pr6|73 icode 003727 aa 000022 6000 04 tze 18,ic 003751 STATEMENT 1 ON LINE 838 call ncp_error_ (icode, "ACCESS_detach_read_link"); 003730 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003731 aa 774151 00 0030 desc9a -1943,24 000101 = 101103103105 003732 aa 6 00422 00 0030 desc9a pr6|274,24 003733 aa 6 00111 3521 00 epp2 pr6|73 icode 003734 aa 6 00446 2521 00 spri2 pr6|294 003735 aa 6 00422 3521 00 epp2 pr6|274 003736 aa 6 00450 2521 00 spri2 pr6|296 003737 aa 774105 3520 04 epp2 -1979,ic 000044 = 404000000043 003740 aa 6 00452 2521 00 spri2 pr6|298 003741 aa 774073 3520 04 epp2 -1989,ic 000034 = 524000000027 003742 aa 6 00454 2521 00 spri2 pr6|300 003743 aa 6 00444 6211 00 eax1 pr6|292 003744 aa 010000 4310 07 fld 4096,dl 003745 aa 6 00044 3701 20 epp4 pr6|36,* 003746 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 003747 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 839 return; 003750 aa 6 00170 6101 00 rtcd pr6|120 STATEMENT 1 ON LINE 840 end; STATEMENT 1 ON LINE 841 p_host_ptr -> host.rcv_link_index = 0; 003751 aa 000000 2350 07 lda 0,dl 003752 aa 6 00172 3735 20 epp7 pr6|122,* 003753 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 003754 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 003755 aa 5 00001 5511 60 stba pr5|1,60 host.rcv_link_index STATEMENT 1 ON LINE 843 call imp_detach_write ((p_host_ptr -> host.xmit_link_index), icode); 003756 aa 5 00001 2351 00 lda pr5|1 host.xmit_link_index 003757 aa 000022 7350 00 als 18 003760 aa 000066 7330 00 lrs 54 003761 aa 6 00440 7561 00 stq pr6|288 003762 aa 6 00440 3521 00 epp2 pr6|288 003763 aa 6 00424 2521 00 spri2 pr6|276 003764 aa 6 00111 3521 00 epp2 pr6|73 icode 003765 aa 6 00426 2521 00 spri2 pr6|278 003766 aa 6 00422 6211 00 eax1 pr6|274 003767 aa 010000 4310 07 fld 4096,dl 003770 aa 6 00044 3701 20 epp4 pr6|36,* 003771 la 4 00050 3521 20 epp2 pr4|40,* imp_detach_write 003772 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 844 if icode ^= 0 then do; 003773 aa 6 00111 2361 00 ldq pr6|73 icode 003774 aa 000022 6000 04 tze 18,ic 004016 STATEMENT 1 ON LINE 846 call ncp_error_ (icode, "ACCESS_detach_write_link"); 003775 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003776 aa 774076 00 0030 desc9a -1986,24 000073 = 101103103105 003777 aa 6 00422 00 0030 desc9a pr6|274,24 004000 aa 6 00111 3521 00 epp2 pr6|73 icode 004001 aa 6 00446 2521 00 spri2 pr6|294 004002 aa 6 00422 3521 00 epp2 pr6|274 004003 aa 6 00450 2521 00 spri2 pr6|296 004004 aa 774040 3520 04 epp2 -2016,ic 000044 = 404000000043 004005 aa 6 00452 2521 00 spri2 pr6|298 004006 aa 774015 3520 04 epp2 -2035,ic 000023 = 524000000030 004007 aa 6 00454 2521 00 spri2 pr6|300 004010 aa 6 00444 6211 00 eax1 pr6|292 004011 aa 010000 4310 07 fld 4096,dl 004012 aa 6 00044 3701 20 epp4 pr6|36,* 004013 la 4 00064 3521 20 epp2 pr4|52,* ncp_error_ 004014 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 847 return; 004015 aa 6 00170 6101 00 rtcd pr6|120 STATEMENT 1 ON LINE 848 end; STATEMENT 1 ON LINE 849 p_host_ptr -> host.xmit_link_index = 0; 004016 aa 000000 2350 03 lda 0,du 004017 aa 6 00172 3735 20 epp7 pr6|122,* 004020 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 004021 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 004022 aa 5 00001 5511 14 stba pr5|1,14 host.xmit_link_index STATEMENT 1 ON LINE 851 return; 004023 aa 6 00170 6101 00 rtcd pr6|120 ENTRY TO reset_host_data STATEMENT 1 ON LINE 855 reset_host_data: entry (p_host_ptr); 004024 aa 6 00170 6501 00 spri4 pr6|120 004025 aa 6 00172 2521 00 spri2 pr6|122 STATEMENT 1 ON LINE 858 spr = addr (ncp_tables_$socket_tbl); 004026 aa 6 00044 3701 20 epp4 pr6|36,* 004027 la 4 00020 3735 20 epp7 pr4|16,* ncp_tables_$socket_tbl 004030 aa 6 00142 6535 00 spri7 pr6|98 spr STATEMENT 1 ON LINE 860 do sock_indx = 1 by 1 to npr -> ncp_dt.stbl_gent; 004031 aa 6 00136 3715 20 epp5 pr6|94,* npr 004032 aa 5 00012 2361 00 ldq pr5|10 ncp_dt.stbl_gent 004033 aa 6 00210 7561 00 stq pr6|136 004034 aa 000001 2360 07 ldq 1,dl 004035 aa 6 00201 7561 00 stq pr6|129 sock_indx 004036 aa 6 00201 2361 00 ldq pr6|129 sock_indx 004037 aa 6 00210 1161 00 cmpq pr6|136 004040 aa 000047 6054 04 tpnz 39,ic 004107 STATEMENT 1 ON LINE 861 if spr -> socket_array (sock_indx).host_entry_index = p_host_ptr -> host.hash_index then do; 004041 aa 000030 4020 07 mpy 24,dl 004042 aa 6 00172 3735 20 epp7 pr6|122,* 004043 aa 7 00002 3715 20 epp5 pr7|2,* p_host_ptr 004044 aa 5 00000 3715 20 epp5 pr5|0,* p_host_ptr 004045 aa 5 00007 2351 00 lda pr5|7 host.hash_index 004046 aa 000022 7350 00 als 18 004047 aa 000000 6270 06 eax7 0,ql 004050 aa 000066 7330 00 lrs 54 004051 aa 6 00441 7561 00 stq pr6|289 host.hash_index 004052 aa 6 00142 3535 20 epp3 pr6|98,* spr 004053 aa 3 77766 2351 17 lda pr3|-10,7 socket_array.host_entry_index 004054 aa 000066 7330 00 lrs 54 004055 aa 6 00441 1161 00 cmpq pr6|289 host.hash_index 004056 aa 6 00441 7471 00 stx7 pr6|289 004057 aa 000026 6010 04 tnz 22,ic 004105 STATEMENT 1 ON LINE 863 if binary (spr -> socket_array (sock_indx).state, 6) >= SOCK_RFC_SENT then if binary (spr -> socket_array (sock_indx).state, 6) < SOCK_BROKEN then call ncp_error_$croggle_socket (addr (spr -> socket_array (sock_indx)), 2, icode); 004060 aa 3 77767 2351 17 lda pr3|-9,7 socket_array.state 004061 aa 000102 7730 00 lrl 66 004062 aa 000005 1160 07 cmpq 5,dl 004063 aa 000022 6040 04 tmi 18,ic 004105 004064 aa 000015 1160 07 cmpq 13,dl 004065 aa 000020 6050 04 tpl 16,ic 004105 004066 aa 3 77750 3515 17 epp1 pr3|-24,7 socket_array 004067 aa 6 00466 2515 00 spri1 pr6|310 004070 aa 000002 2360 07 ldq 2,dl 004071 aa 6 00441 7561 00 stq pr6|289 004072 aa 6 00466 3521 00 epp2 pr6|310 004073 aa 6 00432 2521 00 spri2 pr6|282 004074 aa 6 00441 3521 00 epp2 pr6|289 004075 aa 6 00434 2521 00 spri2 pr6|284 004076 aa 6 00111 3521 00 epp2 pr6|73 icode 004077 aa 6 00436 2521 00 spri2 pr6|286 004100 aa 6 00430 6211 00 eax1 pr6|280 004101 aa 014000 4310 07 fld 6144,dl 004102 aa 6 00044 3701 20 epp4 pr6|36,* 004103 la 4 00066 3521 20 epp2 pr4|54,* ncp_error_$croggle_socket 004104 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 867 end; STATEMENT 1 ON LINE 868 end; 004105 aa 6 00201 0541 00 aos pr6|129 sock_indx 004106 aa 777730 7100 04 tra -40,ic 004036 STATEMENT 1 ON LINE 870 return; 004107 aa 6 00170 6101 00 rtcd pr6|120 STATEMENT 1 ON LINE 872 end; END PROCEDURE bring_host_up BEGIN PROCEDURE send_RST_control_message ENTRY TO send_RST_control_message STATEMENT 1 ON LINE 876 send_RST_control_message: procedure (p_host_ptr); 004110 aa 6 00212 6501 00 spri4 pr6|138 004111 aa 6 00214 2521 00 spri2 pr6|140 STATEMENT 1 ON LINE 893 reset_message = bit (binary (12, 8)); 004112 aa 000014 2350 07 lda 12,dl 004113 aa 000002 6050 04 tpl 2,ic 004115 004114 aa 000000 5310 00 neg 0 004115 aa 000034 7350 00 als 28 004116 aa 6 00220 7551 00 sta pr6|144 reset_message STATEMENT 1 ON LINE 895 call ncp_util_$send_control_message (p_host_ptr, addr (reset_message), 1, icode); 004117 aa 6 00220 3735 00 epp7 pr6|144 reset_message 004120 aa 6 00470 6535 00 spri7 pr6|312 004121 aa 000001 2360 07 ldq 1,dl 004122 aa 6 00472 7561 00 stq pr6|314 004123 aa 2 00002 3521 20 epp2 pr2|2,* p_host_ptr 004124 aa 6 00476 2521 00 spri2 pr6|318 004125 aa 6 00470 3521 00 epp2 pr6|312 004126 aa 6 00500 2521 00 spri2 pr6|320 004127 aa 6 00472 3521 00 epp2 pr6|314 004130 aa 6 00502 2521 00 spri2 pr6|322 004131 aa 6 00111 3521 00 epp2 pr6|73 icode 004132 aa 6 00504 2521 00 spri2 pr6|324 004133 aa 6 00474 6211 00 eax1 pr6|316 004134 aa 020000 4310 07 fld 8192,dl 004135 aa 6 00044 3701 20 epp4 pr6|36,* 004136 la 4 00102 3521 20 epp2 pr4|66,* ncp_util_$send_control_message 004137 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 897 return; 004140 aa 6 00212 6101 00 rtcd pr6|138 ENTRY TO send_RRP_control_message STATEMENT 1 ON LINE 901 send_RRP_control_message: entry (p_host_ptr); 004141 aa 6 00212 6501 00 spri4 pr6|138 004142 aa 6 00214 2521 00 spri2 pr6|140 STATEMENT 1 ON LINE 904 reset_message = bit (binary (13, 8)); 004143 aa 000015 2350 07 lda 13,dl 004144 aa 000002 6050 04 tpl 2,ic 004146 004145 aa 000000 5310 00 neg 0 004146 aa 000034 7350 00 als 28 004147 aa 6 00220 7551 00 sta pr6|144 reset_message STATEMENT 1 ON LINE 906 call ncp_util_$send_control_message (p_host_ptr, addr (reset_message), 1, icode); 004150 aa 6 00220 3735 00 epp7 pr6|144 reset_message 004151 aa 6 00470 6535 00 spri7 pr6|312 004152 aa 000001 2360 07 ldq 1,dl 004153 aa 6 00472 7561 00 stq pr6|314 004154 aa 6 00214 3715 20 epp5 pr6|140,* 004155 aa 5 00002 3521 20 epp2 pr5|2,* p_host_ptr 004156 aa 6 00476 2521 00 spri2 pr6|318 004157 aa 6 00470 3521 00 epp2 pr6|312 004160 aa 6 00500 2521 00 spri2 pr6|320 004161 aa 6 00472 3521 00 epp2 pr6|314 004162 aa 6 00502 2521 00 spri2 pr6|322 004163 aa 6 00111 3521 00 epp2 pr6|73 icode 004164 aa 6 00504 2521 00 spri2 pr6|324 004165 aa 6 00474 6211 00 eax1 pr6|316 004166 aa 020000 4310 07 fld 8192,dl 004167 aa 6 00044 3701 20 epp4 pr6|36,* 004170 la 4 00102 3521 20 epp2 pr4|66,* ncp_util_$send_control_message 004171 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 908 return; 004172 aa 6 00212 6101 00 rtcd pr6|138 STATEMENT 1 ON LINE 910 end; END PROCEDURE send_RST_control_message BEGIN PROCEDURE set_host_state ENTRY TO set_host_state STATEMENT 1 ON LINE 914 set_host_state: procedure (p_host_ptr, p_new_host_state); 004173 aa 6 00222 6501 00 spri4 pr6|146 004174 aa 6 00224 2521 00 spri2 pr6|148 STATEMENT 1 ON LINE 926 p_host_ptr -> host.previous_host_state = p_host_ptr -> host.host_state; 004175 aa 2 00002 3735 20 epp7 pr2|2,* p_host_ptr 004176 aa 7 00000 3735 20 epp7 pr7|0,* p_host_ptr 004177 aa 7 00003 2351 00 lda pr7|3 host.host_state 004200 aa 000006 7710 00 arl 6 004201 aa 7 00003 6751 00 era pr7|3 host.previous_host_state 004202 aa 000432 3750 04 ana 282,ic 004634 = 000007700000 004203 aa 7 00003 6551 00 ersa pr7|3 host.previous_host_state STATEMENT 1 ON LINE 927 p_host_ptr -> host.host_state = bit (binary (p_new_host_state, 6)); 004204 aa 2 00004 2351 20 lda pr2|4,* p_new_host_state 004205 aa 000002 6050 04 tpl 2,ic 004207 004206 aa 000000 5310 00 neg 0 004207 aa 000036 7350 00 als 30 004210 aa 000011 7710 00 arl 9 004211 aa 7 00003 6751 00 era pr7|3 host.host_state 004212 aa 000770 3750 03 ana 504,du 004213 aa 7 00003 6551 00 ersa pr7|3 host.host_state STATEMENT 1 ON LINE 928 p_host_ptr -> host.time_state_changed = clock (); 004214 aa 0 01435 7001 00 tsx0 pr0|797 clock 004215 aa 2 00002 3735 20 epp7 pr2|2,* p_host_ptr 004216 aa 7 00000 3735 20 epp7 pr7|0,* p_host_ptr 004217 aa 7 00004 7571 00 staq pr7|4 host.time_state_changed STATEMENT 1 ON LINE 930 if ncp_tables_$tracing_info ^= ""b then call ncp_trace_ (TRACE_NCP_ACCESS, "Host ^d changed to ^d state.", binary (p_host_ptr -> host.host_number, 16), binary (p_host_ptr -> host.host_state, 6)); 004220 aa 6 00044 3701 20 epp4 pr6|36,* 004221 la 4 00010 2351 20 lda pr4|8,* ncp_tables_$tracing_info 004222 aa 000036 6000 04 tze 30,ic 004260 004223 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004224 aa 773706 00 0034 desc9a -2106,28 000131 = 110157163164 004225 aa 6 00506 00 0034 desc9a pr6|326,28 004226 aa 7 00010 2361 00 ldq pr7|8 host.host_number 004227 aa 6 00515 7561 00 stq pr6|333 004230 aa 7 00003 2351 00 lda pr7|3 host.host_state 004231 aa 000011 7350 00 als 9 004232 aa 000102 7730 00 lrl 66 004233 aa 6 00516 7561 00 stq pr6|334 004234 aa 773564 3520 04 epp2 -2188,ic 000020 = 000200000000 004235 aa 6 00522 2521 00 spri2 pr6|338 004236 aa 6 00506 3521 00 epp2 pr6|326 004237 aa 6 00524 2521 00 spri2 pr6|340 004240 aa 6 00515 3521 00 epp2 pr6|333 004241 aa 6 00526 2521 00 spri2 pr6|342 004242 aa 6 00516 3521 00 epp2 pr6|334 004243 aa 6 00530 2521 00 spri2 pr6|344 004244 aa 773572 3520 04 epp2 -2182,ic 000036 = 514000000044 004245 aa 6 00532 2521 00 spri2 pr6|346 004246 aa 773554 3520 04 epp2 -2196,ic 000022 = 524000000034 004247 aa 6 00534 2521 00 spri2 pr6|348 004250 aa 773576 3520 04 epp2 -2178,ic 000046 = 404000000020 004251 aa 6 00536 2521 00 spri2 pr6|350 004252 aa 773575 3520 04 epp2 -2179,ic 000047 = 404000000006 004253 aa 6 00540 2521 00 spri2 pr6|352 004254 aa 6 00520 6211 00 eax1 pr6|336 004255 aa 020000 4310 07 fld 8192,dl 004256 la 4 00076 3521 20 epp2 pr4|62,* ncp_trace_ 004257 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 934 return; 004260 aa 6 00222 6101 00 rtcd pr6|146 STATEMENT 1 ON LINE 936 end; END PROCEDURE set_host_state BEGIN PROCEDURE choose_link ENTRY TO choose_link STATEMENT 1 ON LINE 940 choose_link: procedure (p_host_entry_ptr, p_err_code) returns (fixed bin (8)); 004261 aa 6 00230 6501 00 spri4 pr6|152 004262 aa 6 00232 2521 00 spri2 pr6|154 004263 aa 000001 2360 07 ldq 1,dl 004264 aa 6 00242 7561 00 stq pr6|162 STATEMENT 1 ON LINE 960 hep = p_host_entry_ptr; 004265 aa 2 00002 3735 20 epp7 pr2|2,* p_host_entry_ptr 004266 aa 7 00000 3735 20 epp7 pr7|0,* p_host_entry_ptr 004267 aa 6 00240 6535 00 spri7 pr6|160 hep STATEMENT 1 ON LINE 962 call ncp_lock_$lock_wait (addr (hep -> host.lock), p_err_code); 004270 aa 7 00000 3715 00 epp5 pr7|0 host.lock 004271 aa 6 00542 6515 00 spri5 pr6|354 004272 aa 6 00542 3521 00 epp2 pr6|354 004273 aa 6 00546 2521 00 spri2 pr6|358 004274 aa 6 00232 3535 20 epp3 pr6|154,* 004275 aa 3 00004 3521 20 epp2 pr3|4,* p_err_code 004276 aa 6 00550 2521 00 spri2 pr6|360 004277 aa 6 00544 6211 00 eax1 pr6|356 004300 aa 010000 4310 07 fld 4096,dl 004301 aa 6 00044 3701 20 epp4 pr6|36,* 004302 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 004303 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 963 if p_err_code ^= 0 then return (-1); 004304 aa 6 00232 3735 20 epp7 pr6|154,* 004305 aa 7 00004 2361 20 ldq pr7|4,* p_err_code 004306 aa 000012 6000 04 tze 10,ic 004320 004307 aa 6 00242 2361 00 ldq pr6|162 004310 aa 000005 6010 04 tnz 5,ic 004315 004311 aa 000027 7260 07 lxl6 23,dl 004312 aa 773553 3520 04 epp2 -2197,ic 000065 = 162145164165 004313 aa 0 00716 7001 00 tsx0 pr0|462 signal 004314 aa 6 00230 6101 00 rtcd pr6|152 004315 aa 000001 3360 07 lcq 1,dl 004316 aa 7 00006 7561 20 stq pr7|6,* 004317 aa 6 00230 6101 00 rtcd pr6|152 STATEMENT 1 ON LINE 966 if hep -> host.host_state = bit (binary (HOST_OFF, 6)) then do; 004320 aa 000000 2350 07 lda 0,dl 004321 aa 000002 6050 04 tpl 2,ic 004323 004322 aa 000000 5310 00 neg 0 004323 aa 000036 7350 00 als 30 004324 aa 6 00552 7551 00 sta pr6|362 004325 aa 6 00240 3715 20 epp5 pr6|160,* hep 004326 aa 5 00003 2351 00 lda pr5|3 host.host_state 004327 aa 000011 7350 00 als 9 004330 aa 0 00014 3771 00 anaq pr0|12 = 770000000000 000000000000 004331 aa 6 00552 1151 00 cmpa pr6|362 004332 aa 000032 6010 04 tnz 26,ic 004364 STATEMENT 1 ON LINE 968 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 004333 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004334 aa 6 00542 2535 00 spri3 pr6|354 004335 aa 6 00552 4501 00 stz pr6|362 004336 aa 6 00542 3521 00 epp2 pr6|354 004337 aa 6 00546 2521 00 spri2 pr6|358 004340 aa 6 00552 3521 00 epp2 pr6|362 004341 aa 6 00550 2521 00 spri2 pr6|360 004342 aa 6 00544 6211 00 eax1 pr6|356 004343 aa 010000 4310 07 fld 4096,dl 004344 aa 6 00044 3701 20 epp4 pr6|36,* 004345 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 004346 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 969 p_err_code = error_table_$net_fhost_inactive; 004347 aa 6 00044 3701 20 epp4 pr6|36,* 004350 la 4 00032 2361 20 ldq pr4|26,* error_table_$net_fhost_inactive 004351 aa 6 00232 3735 20 epp7 pr6|154,* 004352 aa 7 00004 7561 20 stq pr7|4,* p_err_code STATEMENT 1 ON LINE 970 return (-1); 004353 aa 6 00242 2361 00 ldq pr6|162 004354 aa 000005 6010 04 tnz 5,ic 004361 004355 aa 000027 7260 07 lxl6 23,dl 004356 aa 773507 3520 04 epp2 -2233,ic 000065 = 162145164165 004357 aa 0 00716 7001 00 tsx0 pr0|462 signal 004360 aa 6 00230 6101 00 rtcd pr6|152 004361 aa 000001 3360 07 lcq 1,dl 004362 aa 7 00006 7561 20 stq pr7|6,* 004363 aa 6 00230 6101 00 rtcd pr6|152 STATEMENT 1 ON LINE 971 end; STATEMENT 1 ON LINE 973 chosen_link = index (hep -> host.read_links_used, "0"b); 004364 aa 000000 2350 07 lda 0,dl 004365 aa 000040 2360 07 ldq 32,dl 004366 aa 5 00006 3521 00 epp2 pr5|6 host.read_links_used 004367 aa 0 01234 7001 00 tsx0 pr0|668 index_bs_1_eis 004370 aa 6 00236 7561 00 stq pr6|158 chosen_link STATEMENT 1 ON LINE 974 if chosen_link = 0 then do; 004371 aa 000046 6010 04 tnz 38,ic 004437 STATEMENT 1 ON LINE 976 hep -> host.read_links_used = hep -> host.read_links_assigned; 004372 aa 5 00002 2351 00 lda pr5|2 host.read_links_assigned 004373 aa 5 00006 6751 00 era pr5|6 host.read_links_used 004374 aa 0 00100 3751 00 ana pr0|64 = 777777777760 004375 aa 5 00006 6551 00 ersa pr5|6 host.read_links_used STATEMENT 1 ON LINE 977 substr (hep -> host.read_links_used, 1, 1) = "1"b; 004376 aa 400000 2350 03 lda 131072,du 004377 aa 5 00006 2551 00 orsa pr5|6 host.read_links_used STATEMENT 1 ON LINE 979 chosen_link = index (hep -> host.read_links_used, "0"b); 004400 aa 000000 2350 07 lda 0,dl 004401 aa 000040 2360 07 ldq 32,dl 004402 aa 5 00006 3521 00 epp2 pr5|6 host.read_links_used 004403 aa 0 01234 7001 00 tsx0 pr0|668 index_bs_1_eis 004404 aa 6 00236 7561 00 stq pr6|158 chosen_link STATEMENT 1 ON LINE 980 if chosen_link = 0 then do; 004405 aa 000032 6010 04 tnz 26,ic 004437 STATEMENT 1 ON LINE 982 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 004406 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004407 aa 6 00542 2535 00 spri3 pr6|354 004410 aa 6 00552 4501 00 stz pr6|362 004411 aa 6 00542 3521 00 epp2 pr6|354 004412 aa 6 00546 2521 00 spri2 pr6|358 004413 aa 6 00552 3521 00 epp2 pr6|362 004414 aa 6 00550 2521 00 spri2 pr6|360 004415 aa 6 00544 6211 00 eax1 pr6|356 004416 aa 010000 4310 07 fld 4096,dl 004417 aa 6 00044 3701 20 epp4 pr6|36,* 004420 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 004421 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 983 p_err_code = error_table_$notalloc; 004422 aa 6 00044 3701 20 epp4 pr6|36,* 004423 la 4 00040 2361 20 ldq pr4|32,* error_table_$notalloc 004424 aa 6 00232 3735 20 epp7 pr6|154,* 004425 aa 7 00004 7561 20 stq pr7|4,* p_err_code STATEMENT 1 ON LINE 984 return (-1); 004426 aa 6 00242 2361 00 ldq pr6|162 004427 aa 000005 6010 04 tnz 5,ic 004434 004430 aa 000027 7260 07 lxl6 23,dl 004431 aa 773434 3520 04 epp2 -2276,ic 000065 = 162145164165 004432 aa 0 00716 7001 00 tsx0 pr0|462 signal 004433 aa 6 00230 6101 00 rtcd pr6|152 004434 aa 000001 3360 07 lcq 1,dl 004435 aa 7 00006 7561 20 stq pr7|6,* 004436 aa 6 00230 6101 00 rtcd pr6|152 STATEMENT 1 ON LINE 985 end; STATEMENT 1 ON LINE 986 end; STATEMENT 1 ON LINE 988 substr (hep -> host.read_links_used, chosen_link, 1) = "1"b; 004437 aa 403 106 060 400 csl (),(pr,ql),fill(1),bool(move) 004440 aa 000000 00 0000 descb 0,0 004441 aa 5 00005 70 0001 descb pr5|5(35),1 host.read_links_used STATEMENT 1 ON LINE 989 substr (hep -> host.read_links_assigned, chosen_link, 1) = "1"b; 004442 aa 403 106 060 400 csl (),(pr,ql),fill(1),bool(move) 004443 aa 000000 00 0000 descb 0,0 004444 aa 5 00001 70 0001 descb pr5|1(35),1 host.read_links_assigned STATEMENT 1 ON LINE 991 hep -> host.num_connections = mod (hep -> host.num_connections + 1, 262144); 004445 aa 5 00007 2351 00 lda pr5|7 host.num_connections 004446 aa 000066 7330 00 lrs 54 004447 aa 000001 0760 07 adq 1,dl 004450 aa 000255 3520 04 epp2 173,ic 004725 = 000001000000 004451 aa 0 00704 7001 00 tsx0 pr0|452 mod_fx1 004452 aa 000066 7370 00 lls 54 004453 aa 5 00007 5511 60 stba pr5|7,60 host.num_connections STATEMENT 1 ON LINE 993 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 004454 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004455 aa 6 00542 2535 00 spri3 pr6|354 004456 aa 6 00552 4501 00 stz pr6|362 004457 aa 6 00542 3521 00 epp2 pr6|354 004460 aa 6 00546 2521 00 spri2 pr6|358 004461 aa 6 00552 3521 00 epp2 pr6|362 004462 aa 6 00550 2521 00 spri2 pr6|360 004463 aa 6 00544 6211 00 eax1 pr6|356 004464 aa 010000 4310 07 fld 4096,dl 004465 aa 6 00044 3701 20 epp4 pr6|36,* 004466 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 004467 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 995 return (chosen_link); 004470 aa 6 00242 2361 00 ldq pr6|162 004471 aa 000005 6010 04 tnz 5,ic 004476 004472 aa 000027 7260 07 lxl6 23,dl 004473 aa 773372 3520 04 epp2 -2310,ic 000065 = 162145164165 004474 aa 0 00716 7001 00 tsx0 pr0|462 signal 004475 aa 6 00230 6101 00 rtcd pr6|152 004476 aa 6 00236 2361 00 ldq pr6|158 chosen_link 004477 aa 6 00232 3735 20 epp7 pr6|154,* 004500 aa 7 00006 7561 20 stq pr7|6,* 004501 aa 6 00230 6101 00 rtcd pr6|152 ENTRY TO release_link STATEMENT 1 ON LINE 999 release_link: entry (p_host_entry_ptr, p_link_num); 004502 aa 6 00230 6501 00 spri4 pr6|152 004503 aa 6 00232 2521 00 spri2 pr6|154 004504 aa 6 00242 4501 00 stz pr6|162 STATEMENT 1 ON LINE 1002 hep = p_host_entry_ptr; 004505 aa 6 00232 3735 20 epp7 pr6|154,* 004506 aa 7 00002 3715 20 epp5 pr7|2,* p_host_entry_ptr 004507 aa 5 00000 3715 20 epp5 pr5|0,* p_host_entry_ptr 004510 aa 6 00240 6515 00 spri5 pr6|160 hep STATEMENT 1 ON LINE 1004 call ncp_lock_$lock_wait (addr (hep -> host.lock), (0)); 004511 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004512 aa 6 00542 2535 00 spri3 pr6|354 004513 aa 6 00552 4501 00 stz pr6|362 004514 aa 6 00542 3521 00 epp2 pr6|354 004515 aa 6 00546 2521 00 spri2 pr6|358 004516 aa 6 00552 3521 00 epp2 pr6|362 004517 aa 6 00550 2521 00 spri2 pr6|360 004520 aa 6 00544 6211 00 eax1 pr6|356 004521 aa 010000 4310 07 fld 4096,dl 004522 aa 6 00044 3701 20 epp4 pr6|36,* 004523 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 004524 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1006 substr (hep -> host.read_links_assigned, p_link_num, 1) = "0"b; 004525 aa 6 00232 3735 20 epp7 pr6|154,* 004526 aa 7 00004 7271 20 lxl7 pr7|4,* p_link_num 004527 aa 6 00240 3715 20 epp5 pr6|160,* hep 004530 aa 003 117 060 400 csl (),(pr,x7),fill(0),bool(move) 004531 aa 000000 00 0000 descb 0,0 004532 aa 5 00001 70 0001 descb pr5|1(35),1 host.read_links_assigned STATEMENT 1 ON LINE 1008 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 004533 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004534 aa 6 00542 2535 00 spri3 pr6|354 004535 aa 6 00552 4501 00 stz pr6|362 004536 aa 6 00542 3521 00 epp2 pr6|354 004537 aa 6 00546 2521 00 spri2 pr6|358 004540 aa 6 00552 3521 00 epp2 pr6|362 004541 aa 6 00550 2521 00 spri2 pr6|360 004542 aa 6 00544 6211 00 eax1 pr6|356 004543 aa 010000 4310 07 fld 4096,dl 004544 aa 6 00044 3701 20 epp4 pr6|36,* 004545 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 004546 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1010 return; 004547 aa 6 00242 2361 00 ldq pr6|162 004550 aa 000002 6010 04 tnz 2,ic 004552 004551 aa 6 00230 6101 00 rtcd pr6|152 004552 aa 000027 7260 07 lxl6 23,dl 004553 aa 773312 3520 04 epp2 -2358,ic 000065 = 162145164165 004554 aa 0 00716 7001 00 tsx0 pr0|462 signal 004555 aa 6 00230 6101 00 rtcd pr6|152 ENTRY TO reset_link_table STATEMENT 1 ON LINE 1014 reset_link_table: entry (p_host_entry_ptr); 004556 aa 6 00230 6501 00 spri4 pr6|152 004557 aa 6 00232 2521 00 spri2 pr6|154 004560 aa 6 00242 4501 00 stz pr6|162 STATEMENT 1 ON LINE 1017 hep = p_host_entry_ptr; 004561 aa 6 00232 3735 20 epp7 pr6|154,* 004562 aa 7 00002 3715 20 epp5 pr7|2,* p_host_entry_ptr 004563 aa 5 00000 3715 20 epp5 pr5|0,* p_host_entry_ptr 004564 aa 6 00240 6515 00 spri5 pr6|160 hep STATEMENT 1 ON LINE 1019 call ncp_lock_$lock_wait (addr (hep -> host.lock), (0)); 004565 aa 5 00000 3535 00 epp3 pr5|0 host.lock 004566 aa 6 00542 2535 00 spri3 pr6|354 004567 aa 6 00552 4501 00 stz pr6|362 004570 aa 6 00542 3521 00 epp2 pr6|354 004571 aa 6 00546 2521 00 spri2 pr6|358 004572 aa 6 00552 3521 00 epp2 pr6|362 004573 aa 6 00550 2521 00 spri2 pr6|360 004574 aa 6 00544 6211 00 eax1 pr6|356 004575 aa 010000 4310 07 fld 4096,dl 004576 aa 6 00044 3701 20 epp4 pr6|36,* 004577 la 4 00072 3521 20 epp2 pr4|58,* ncp_lock_$lock_wait 004600 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1022 hep -> host.read_links_assigned = ""b; 004601 aa 000017 2350 07 lda 15,dl 004602 aa 6 00240 3735 20 epp7 pr6|160,* hep 004603 aa 7 00002 3551 00 ansa pr7|2 host.read_links_assigned STATEMENT 1 ON LINE 1023 hep -> host.read_links_used = (32)"1"b; 004604 aa 000027 2350 04 lda 23,ic 004633 = 777777777760 004605 aa 7 00006 2551 00 orsa pr7|6 host.read_links_used STATEMENT 1 ON LINE 1026 substr (hep -> host.read_links_used, 1, 1) = "1"b; 004606 aa 400000 2350 03 lda 131072,du 004607 aa 7 00006 2551 00 orsa pr7|6 host.read_links_used STATEMENT 1 ON LINE 1029 call ncp_lock_$lock_unlock (addr (hep -> host.lock), (0)); 004610 aa 7 00000 3715 00 epp5 pr7|0 host.lock 004611 aa 6 00542 6515 00 spri5 pr6|354 004612 aa 6 00552 4501 00 stz pr6|362 004613 aa 6 00542 3521 00 epp2 pr6|354 004614 aa 6 00546 2521 00 spri2 pr6|358 004615 aa 6 00552 3521 00 epp2 pr6|362 004616 aa 6 00550 2521 00 spri2 pr6|360 004617 aa 6 00544 6211 00 eax1 pr6|356 004620 aa 010000 4310 07 fld 4096,dl 004621 aa 6 00044 3701 20 epp4 pr6|36,* 004622 la 4 00070 3521 20 epp2 pr4|56,* ncp_lock_$lock_unlock 004623 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1031 return; 004624 aa 6 00242 2361 00 ldq pr6|162 004625 aa 000002 6010 04 tnz 2,ic 004627 004626 aa 6 00230 6101 00 rtcd pr6|152 004627 aa 000027 7260 07 lxl6 23,dl 004630 aa 773235 3520 04 epp2 -2403,ic 000065 = 162145164165 004631 aa 0 00716 7001 00 tsx0 pr0|462 signal 004632 aa 6 00230 6101 00 rtcd pr6|152 STATEMENT 1 ON LINE 1033 end; END PROCEDURE choose_link END PROCEDURE ncp_access_ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved