Lines Matching defs:iop

1 /*	$NetBSD: iop.c,v 1.10 2005/12/24 23:24:00 perry Exp $	*/
35 __KERNEL_RCSID(0, "$NetBSD: iop.c,v 1.10 2005/12/24 23:24:00 perry Exp $");
91 default_listener(IOP *iop, struct iop_msg *msg)
100 IOP *iop;
108 mac68k_iops[SCC_IOP].iop = (IOPHW *)
110 mac68k_iops[ISM_IOP].iop = (IOPHW *)
114 mac68k_iops[SCC_IOP].iop = (IOPHW *)
116 mac68k_iops[ISM_IOP].iop = (IOPHW *)
122 ioph = mac68k_iops[SCC_IOP].iop;
126 ioph = mac68k_iops[ISM_IOP].iop;
133 iop = &mac68k_iops[ii];
134 ioph = iop->iop;
136 SIMPLEQ_INIT(&iop->sendq[i]);
137 SIMPLEQ_INIT(&iop->recvq[i]);
138 iop->listeners[i] = default_listener;
139 iop->listener_data[i] = NULL;
153 iop = &mac68k_iops[SCC_IOP];
154 intr_establish(iopscc_hand, iop, 4);
156 iop = &mac68k_iops[ISM_IOP];
157 via2_register_irq(0, iopism_hand, iop);
166 iop = &mac68k_iops[SCC_IOP];
167 ioph = iop->iop;
169 pool_init(&iop->pool, sizeof(struct iop_msg), 0, 0, 0, "mac68k_iop1",
173 iop = &mac68k_iops[ISM_IOP];
174 ioph = iop->iop;
177 pool_init(&iop->pool, sizeof(struct iop_msg), 0, 0, 0, "mac68k_iop2",
217 ioph = mac68k_iops[iopn].iop;
238 ioph = mac68k_iops[iopn].iop;
247 IOP *iop;
253 iop = (IOP *) arg;
254 ioph = iop->iop;
275 iop_message_sent(iop, i);
289 receive_iop_message(iop, i);
310 iop_message_sent(IOP *iop, int chan)
315 ioph = iop->iop;
317 msg = SIMPLEQ_FIRST(&iop->sendq[chan]);
319 SIMPLEQ_REMOVE_HEAD(&iop->sendq[chan], iopm);
321 msg->handler(iop, msg);
323 pool_put(&iop->pool, msg);
325 if (!(msg = SIMPLEQ_FIRST(&iop->sendq[chan]))) {
333 receive_iop_message(IOP *iop, int chan)
339 ioph = iop->iop;
341 msg = SIMPLEQ_FIRST(&iop->recvq[chan]);
343 SIMPLEQ_REMOVE_HEAD(&iop->recvq[chan], iopm);
345 msg = &iop->unsolicited_msg;
347 msg->handler = iop->listeners[chan];
348 msg->user_data = iop->listener_data[chan];
355 msg->handler(iop, msg);
357 if (msg != &iop->unsolicited_msg)
358 pool_put(&iop->pool, msg);
363 if ((msg = SIMPLEQ_FIRST(&iop->recvq[chan])) != NULL) {
373 IOP *iop;
377 iop = &mac68k_iops[iopn];
378 if (!iop) return -1;
381 msg = (struct iop_msg *) pool_get(&iop->pool, PR_WAITOK);
383 printf("have msg buffer for IOP: %#x\n", (unsigned) iop->iop);
393 SIMPLEQ_INSERT_TAIL(&iop->sendq[chan], msg, iopm);
394 if (msg == SIMPLEQ_FIRST(&iop->sendq[chan])) {
396 printf("loading msg to iop: cs: 0x%x V1-%x- ", (unsigned) iop->iop->control_status, (unsigned)via_reg(VIA1, vIFR));
397 load_msg_to_iop(iop->iop, msg);
398 printf("msg loaded to iop: cs: 0x%x V1-%x- ", (unsigned) iop->iop->control_status, (unsigned)via_reg(VIA1, vIFR));
402 printf(" cs: 0x%x V1-%x- ", (unsigned) iop->iop->control_status, (unsigned)via_reg(VIA1, vIFR));
414 IOP *iop;
418 iop = &mac68k_iops[iopn];
419 if (!iop) return -1;
421 msg = (struct iop_msg *) pool_get(&iop->pool, PR_WAITOK);
430 SIMPLEQ_INSERT_TAIL(&iop->recvq[chan], msg, iopm);
431 if (msg == SIMPLEQ_FIRST(&iop->recvq[chan])) {
443 IOP *iop;
447 iop = &mac68k_iops[iopn];
448 if (!iop) return -1;
451 iop->listeners[chan] = handler;
452 iop->listener_data[chan] = user_data;