1 
 2 /*        BEGIN include file "ncp_connection_dcls.incl.pl1" --                  */
 3 
 4 /*             This include file contains declarations for the structures       */
 5 /*        maintained by the NCP which contain information about Host-Host       */
 6 /*        connections.  Currently, this is the information about sockets,       */
 7 /*        hosts, and requests-for-connection.                                   */
 8 
 9 /*        Originally created by D. M. Wells, Summer, 1975.                      */
10 /*        Modified by B. Greenberg, Spring '78 for new leader support */
11 /*                Modified by C. Hornig, July 1979 for new host number format */
12 
13      declare
14           1 socket aligned based,                           /* information we keep on a per-socket basis      */
15              2 event_channel fixed binary (71),             /* event channel of using process                 */
16              2 overseer_event_channel fixed binary (71),    /* event chanel of overseer process               */
17              2 lock bit (36) aligned,                       /* lock to prevent simultaneous updating          */
18              2 process_id bit (36) aligned,                 /* process id of using process                    */
19              2 overseer_process_id bit (36) aligned,        /* process id of overseer process                 */
20              2 bit_allocation fixed binary (32),            /* bit allocation outstanding on attached link    */
21              2 msg_allocation fixed binary (16),            /* message allocation outstanding on link         */
22 
23              2 local_socket unaligned like socket.foreign_socket,     /* identification of local socket       */
24              2 foreign_socket unaligned,                    /* identification of foreign socket               */
25                 3 host,                                     /* id of this host                                */
26                   4 net bit (8),                            /* network id                                     */
27                   4 host bit (8),                           /* port on imp                                    */
28                   4 imp bit (16),                           /* imp id                                         */
29                 3 socket_num bit (32),                      /* actual socket number                           */
30                 3 pad bit (8),
31 
32              2 rfc_queue fixed binary (17) unaligned,       /* RFC table index of next block for this         */
33                                                             /* socket, 0 if queue is empty                    */
34              2 link_number fixed binary (17) unaligned,     /* number of link assigned for connection         */
35 
36              2 host_entry_index fixed binary (17) unaligned,          /* index in host table of foreign       */
37                                                                       /* host involved in connection          */
38              2 impdim_index fixed binary (17) unaligned,    /* index by which IMPDIM knows about connection   */
39              2 state bit (6) unaligned,                     /* finite-state-machine information               */
40              2 byte_size bit (8) unaligned,                 /* byte-size of connections                       */
41              2 send_gender bit (1) unaligned,               /* on iff this is a transmit socket               */
42              2 allow_interrupts bit (1) unaligned,          /* on iff INS and INR should be signalled to user */
43              2 deactivate bit (1) unaligned,                /* on iff this socket should be deactivated when  */
44                                                             /* matching network messages are finally received */
45              2 allow_rfc_queuing bit (1) unaligned,         /* on iff we should allow multiple outstanding    */
46                                                             /* RFC's for this socket                          */
47              2 extra_bits bit (12) unaligned,
48 
49              2 overseer_validation_level bit (3) unaligned,           /* ring of highest overseer control     */
50              2 validation_level bit (3) unaligned,                    /* ring of highest operator control     */
51 
52              2 overseer_lock_id bit (36) aligned,           /* lock id of the overseer process                */
53              2 umodes bit (36) aligned,                     /* 36 bits that the users can play with           */
54              2 time_state_changed fixed binary (71),        /* time that the socket state last changed        */
55              2 signal_event_channel fixed binary (71),      /* chanel to signal over when get INS or INR      */
56              2 socket_index bit (36) aligned,               /* the handle we gave user for future reference   */
57              2 history aligned,                             /* state of socket over recent past history       */
58                 3 num_state_changes fixed binary (11) unaligned,      /* small field, so only keep mod        */
59                 3 prev_state (0 : 3) fixed binary (5) unaligned;      /* past N states, kept in rotation      */
60 
61      declare
62           1 host aligned based,                             /* information we retain about a foreign host     */
63              2 lock bit (36) aligned,                       /* lock to prevent simultaneous updating          */
64              2 rcv_link_index fixed binary (17) unaligned,  /* impdim index of read link for control msgs     */
65              2 xmit_link_index fixed binary (17) unaligned, /* impdim index of write link for control msgs    */
66              2 read_links_assigned bit (32) unaligned,      /* a bit is on iff we have assigned that link     */
67              2 read_link_padd bit (4) unaligned,
68              2 xhost_number_pad bit (9) unaligned,
69              2 host_state bit (6) unaligned,                /* stae of communications with this host          */
70              2 previous_host_state bit (6) unaligned,       /* last state of this host                        */
71              2 state_pad bit (15) unaligned,
72              2 time_state_changed fixed binary (71),        /* time when host state last changed              */
73              2 read_links_used bit (32) unaligned,          /* bit is on if link has been used "recently"     */
74              2 read_link_used_pad bit (4) unaligned,
75              2 num_connections fixed binary (17) unaligned, /* times we attached links for this host          */
76              2 hash_index fixed binary (17) unaligned,      /* table index of this host entry                 */
77              2 host_number fixed bin (32) aligned,          /* host number of this host                       */
78              2 host_number_pad fixed bin (35);
79 
80      declare
81           1 rcvd_rfc aligned based,                         /* info about a rcvd Request for Connection       */
82              2 foreign_socket unaligned like socket.foreign_socket,   /* foreign socket in RFC msg            */
83              2 foreign_hosts_choice fixed binary (17) unaligned,      /* link or size that other host chose   */
84              2 next_entry fixed binary (17) unaligned,                /* next RFC entry in queue for socket   */
85              2 padding (1) fixed binary (35);
86 
87      declare
88           1 host_address based aligned,                     /* Form of a host address                         */
89              2 net bit (8) unaligned,                       /* Netwwork ID                                    */
90              2 host bit (8) unaligned,                      /* Host Port                                      */
91              2 imp bit (16) unaligned;                      /* IMP ID                                         */
92                                         /* Duplicated because of PL/I multi-like restriction */
93 
94 /*        END of include file ncp_connection_dcls.incl.pl1                      */
95