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 */