1 /* BEGIN INCLUDE FILE ... lct.incl.pl1 */ 2 3 /* Created by J. Stern 7/26/78 */ 4 /* Metering information added by C. Hornig, March 1980. */ 5 /* Unwired saved meters added by Robert Coren, December 1980 */ 6 7 dcl lctp ptr; /* ptr to logical channel table */ 8 dcl lctep ptr; /* ptr to logical channel table entry */ 9 dcl lct_size fixed bin; /* size of lcte_array when allocated */ 10 11 dcl 1 lct aligned based (lctp), /* logical channel table */ 12 2 max_no_lctes fixed bin, /* maximum number of lct entries */ 13 2 cur_no_lctes fixed bin, /* current number of lct entries used */ 14 2 lcnt_ptr ptr, /* ptr to logical channel name table */ 15 2 queue_lock bit (36), /* lock used to serialize queueing operations */ 16 2 pad (11) fixed bin, 17 2 lcte_array (lct_size refer (lct.max_no_lctes)) like lcte; /* lct entries */ 18 19 20 dcl 1 lcte aligned based (lctep), /* logical channel table entry */ 21 2 lock bit (36), /* channel lock */ 22 2 data_base_ptr ptr unal, /* ptr to channel data base */ 23 2 channel_type fixed bin (8) unal, /* identifies channel manager program */ 24 2 flags unal, 25 3 entry_in_use bit (1) unal, /* ON if this entry in use */ 26 3 initialized bit (1) unal, /* ON if this channel initialized */ 27 3 notify_reqd bit (1) unal, /* ON if must notify when unlocking this channel */ 28 3 locked_for_interrupt bit (1) unal, /* ON if lock set by interrupt handler */ 29 3 space_needed bit (1) unal, /* ON if this channel needs buffer space */ 30 3 special_lock bit (1) unal, /* ON if lock is managed by multiplexer */ 31 3 trace_force bit (1) unal, /* ON to trace based on next bit only */ 32 /* OFF to XOR next bit with tty_buf.default_tracing */ 33 3 trace bit (1) unal, /* ON to trace this channel */ 34 3 unused bit (1) unal, 35 2 physical_channel_devx fixed bin (17) unal, /* devx of physical chan from which logical chan is derived */ 36 2 major_channel_info, 37 3 major_channel_devx fixed bin unal, /* major channel device index */ 38 3 subchannel fixed bin (17) unal, /* subchannel id (or data ptr) wrt major channel */ 39 2 queue_entries, 40 3 queue_head bit (18) unal, /* ptr to first queue entry for this channel */ 41 3 queue_tail bit (18) unal, /* ptr to last queue entry for this channel */ 42 2 word_counts, 43 3 input_words fixed bin (17) unal, /* number of input words charged to this channel */ 44 3 output_words fixed bin (17) unal, /* number of output words charged to this channel */ 45 46 2 meters, 47 3 in_bytes fixed bin (35), 48 3 out_bytes fixed bin (35), 49 3 in, 50 4 calls fixed bin (35), 51 4 interrupts fixed bin (35), 52 4 call_time fixed bin (71), 53 4 interrupt_time fixed bin (71), 54 3 out like lcte.meters.in, 55 3 control like lcte.meters.in, 56 2 saved_meters_ptr ptr, /* pointer to unwired copy of meters saved at last dialup */ 57 58 2 timer_offset bit (18) aligned, /* Head of list of timers for this channel */ 59 60 2 pad (3) fixed bin (35); 61 62 63 dcl lcntp ptr; /* ptr to logical channel name table */ 64 65 dcl 1 lcnt aligned based (lcntp), /* logical channel name table */ 66 2 names (lct.max_no_lctes) char (32) unal; /* channel names */ 67 68 dcl 1 saved_meters aligned based like lcte.meters; /* meters saved at dialup, allocated in tty_area */ 69 70 71 /* END INCLUDE FILE ... lct.incl.pl1 */