Lines Matching defs:ecppunit
110 struct ecppunit { struct
111 kmutex_t umutex; /* lock for this structure */
112 int instance; /* instance number */
113 dev_info_t *dip; /* device information */
114 ddi_iblock_cookie_t ecpp_trap_cookie; /* interrupt cookie */
115 ecpp_busy_t e_busy; /* ecpp busy flag */
116 kcondvar_t pport_cv; /* cv to signal idle state */
120 struct info_reg *i_reg; /* info registers */
121 struct fifo_reg *f_reg; /* fifo register */
122 ddi_acc_handle_t i_handle;
123 ddi_acc_handle_t f_handle;
127 ddi_dma_handle_t dma_handle; /* DMA handle */
128 ddi_dma_cookie_t dma_cookie; /* current cookie */
129 uint_t dma_cookie_count; /* # of cookies */
130 uint_t dma_nwin; /* # of DMA windows */
131 uint_t dma_curwin; /* current window number */
132 uint_t dma_dir; /* transfer direction */
136 struct ecpp_hw *hw; /* operations/attributes */
137 union { /* hw-dependent data */
143 } uh;
147 boolean_t oflag; /* instance open flag */
148 queue_t *readq; /* pointer to readq */
149 queue_t *writeq; /* pointer to writeq */
150 mblk_t *msg; /* current message block */
151 boolean_t suspended; /* driver suspended status */
155 int current_mode; /* 1284 mode */
156 uchar_t current_phase; /* 1284 phase */
157 uchar_t backchannel; /* backchannel mode supported */
158 uchar_t io_mode; /* transfer mode: PIO/DMA */
162 struct ecpp_transfer_parms xfer_parms; /* transfer parameters */
163 struct ecpp_regs regs; /* control/status registers */
164 uint8_t saved_dsr; /* store the dsr returned from TESTIO */
165 boolean_t timeout_error; /* store the timeout for GETERR */
166 uchar_t port; /* xfer type: dma/pio/tfifo */
167 struct prn_timeouts prn_timeouts; /* prnio timeouts */
171 uchar_t init_seq; /* centronics init seq */
172 uint32_t wsrv_retry; /* delay (ms) before next wsrv */
173 uint32_t wait_for_busy; /* wait for BUSY to deassert */
174 uint32_t data_setup_time; /* pio centronics handshake */
175 uint32_t strobe_pulse_width; /* pio centronics handshake */
176 uint8_t fast_centronics; /* DMA/PIO centronics */
177 uint8_t fast_compat; /* DMA/PIO 1284 compatible mode */
178 uint32_t ecp_rev_speed; /* rev xfer speed in ECP, bytes/sec */
179 uint32_t rev_watchdog; /* rev xfer watchdog period, ms */
183 timeout_id_t timeout_id; /* io transfers timer */
184 timeout_id_t fifo_timer_id; /* drain SuperIO FIFO */
185 timeout_id_t wsrv_timer_id; /* wsrv timeout */
189 ddi_softintr_t softintr_id;
190 int softintr_flags; /* flags indicating softintr task */
191 uint8_t softintr_pending;
195 caddr_t ioblock; /* transfer buffer block */
196 size_t xfercnt; /* # of bytes to transfer */
197 size_t resid; /* # of bytes not transferred */
198 caddr_t next_byte; /* next byte for PIO transfer */
199 caddr_t last_byte; /* last byte for PIO transfer */
200 uint32_t ecpp_drain_counter; /* allows fifo to drain */
201 uchar_t dma_cancelled; /* flushed while dma'ing */
202 uint8_t tfifo_intr; /* TFIFO switch interrupt workaround */
203 size_t nread; /* requested read */
204 size_t last_dmacnt; /* DMA counter value for rev watchdog */
205 uint32_t rev_timeout_cnt; /* number of watchdog invocations */
209 hrtime_t lastspur; /* last time spurious intrs started */
210 long nspur; /* spurious intrs counter */
214 kstat_t *ksp; /* kstat pointer */
215 kstat_t *intrstats; /* kstat interrupt counter */
242 _NOTE(MUTEX_PROTECTS_DATA(ecppunit::umutex, ecppunit)) argument