1 /* BEGIN INCLUDE FILE...driver_status.incl.pl1 */
 2 
 3 
 4 
 5 /****^  HISTORY COMMENTS:
 6   1) change(88-01-27,Brunelle), approve(), audit(), install():
 7      Ancient History
 8      Coded by Robert S. Coren August 1973
 9      Modified by J. Whitmore to structure data for the Access Isolation Mechanism
10      Modified by J. C. Whitmore, 5/78, for IO Daemon extensions
11      Modified by J. C. Whitmore, 8/79, to add the generic_type variable
12   2) change(88-08-19,Brunelle), approve(88-08-19,MCR7911),
13      audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199):
14      Upgraded for version 5 iod tables.  Changed the minor_args ftom string to
15      text_offset. Changed acct_ptr to acct_entry.  Added have_accounting bit
16      to denote accounting ^= nothing.
17                                                    END HISTORY COMMENTS */
18 
19 
20 /* status data for a logical device driver */
21 
22 /* format: style4 */
23 
24 dcl  driver_status_ptr ptr;
25 dcl  1 driver_status aligned based (driver_status_ptr),
26        2 req_type_label char (32),                          /* string to describe the request type */
27        2 dev_name_label char (32),                          /* string to describe the device */
28        2 device_id char (32),                               /* minor device name used by this logical driver */
29        2 device_class_id char (32),                         /* device class name used by this logical driver */
30        2 coord_chan fixed bin (71),                         /* ipc event channel for signals to coord. */
31        2 driver_chan fixed bin (71),                        /* ipc event channel for signals from coord. */
32        2 last_wake_time fixed bin (71),                     /* time last wakeup sent to coord */
33        2 request_pending bit (36),                          /* locking word for communication with coord */
34                                                             /* 0 = ready for a request  */
35                                                             /* driver pid = don't bug me */
36                                                             /* coord  pid = got a request */
37        2 status_flags,
38          3 attached bit (1) unal,                           /* minor device is attached for i/o */
39          3 busy bit (1) unal,                               /* driver doing request..tell coord when done */
40          3 ready bit (1) unal,                              /* driver is ready to handle requests */
41          3 acknowledge bit (1) unal,                        /* coordinator must reply to all wakeups */
42          3 have_accounting bit (1) unal,                    /* ON if accounting ^= nothing */
43          3 pad bit (31) unal,
44        2 list_index fixed bin,                              /* index of this driver in the driver ptr list */
45        2 dev_index fixed bin,                               /* index in iod_device_tab of this minor device */
46        2 maj_index fixed bin,                               /* index in iod_device_tab of the corresponding major device */
47        2 dev_class_index fixed bin,                         /* index of device_class entry */
48        2 minor_args unaligned like text_offset,             /* descriptive string for this minor device */
49        2 min_banner bit (72) aligned,                       /* min banner access class for marking output */
50        2 acct_entry entry (char (*), char (*), ptr, fixed bin (35)) variable, /* entry variable to accounting procedure */
51                                                             /* for this logical driver */
52        2 rqti_ptr ptr,                                      /* pointer to the request type info seg */
53        2 dev_out_iocbp ptr,                                 /* iocb pointer for dev_out_stream */
54        2 dev_in_iocbp ptr,                                  /* iocb pointer for dev_in_stream */
55        2 dev_out_stream char (32),                          /* output stream for minor device */
56        2 dev_in_stream char (32),                           /* input stream for minor device */
57        2 elem_size fixed bin,                               /* element size for the stream */
58        2 message_type fixed bin,                            /* expected format of user request */
59        2 form_wait_time fixed bin (71),                     /* average time needed to write ctl term msg */
60        2 forms_validation_ptr ptr,                          /* forms validation data */
61        2 dev_ptr1 ptr,                                      /* another one */
62        2 dev_fb1 fixed bin,                                 /* a spare fixed bin variable for the driver */
63        2 dev_fb2 fixed bin,                                 /* and another */
64        2 dev_fb3 fixed bin,                                 /* and another */
65        2 dev_fb4 fixed bin,                                 /* and the last spare fixed bin */
66        2 dev_fb71 fixed bin (71),                           /* a spare fixed bin  71  variable */
67        2 dev_ctl_ptr ptr,                                   /* pointer to control structure for this device */
68        2 bit_rate_est fixed bin (35),                       /* output rate estimate - bits per second */
69        2 defer_time_limit fixed bin (35),                   /* max time allowed for a request - in seconds (0 = no limit) */
70        2 generic_type char (32),                            /* generic type of this minor device */
71        2 status_pad (2) fixed bin (35),                     /* save some room for later */
72        2 descriptor like request_descriptor,                /* copy of request descriptor */
73        2 desc_pad (13) fixed bin,
74        2 message fixed bin;                                 /* place-holder for copy of request message */
75 
76 
77 /* END INCLUDE FILE...driver_status.incl.pl1 */