Ejemplo n.º 1
0
static
void
chkint(struct net_data *nd)
{
	if (nd->nd_rirq || nd->nd_wirq) {
		raise_irq(nd->nd_slot);
	}
	else {
		lower_irq(nd->nd_slot);
	}
}
Ejemplo n.º 2
0
static
void
disk_update(struct disk_data *dd)
{
    disk_work(dd);

    if (dd->dd_stat & DISKBIT_COMPLETE) {
        raise_irq(dd->dd_slot);
    }
    else {
        lower_irq(dd->dd_slot);
    }
}
Ejemplo n.º 3
0
void mie_device::device_timer(emu_timer &_timer, device_timer_id id, int param, void *ptr)
{
	timer->adjust(attotime::never);
	if(control & CTRL_RXB) {
		control &= ~CTRL_RXB;
		control |= CTRL_RFB;
		raise_irq(maple_irqlevel);
	}
	if(control & (CTRL_TXB|CTRL_CTXB)) {
		reply_ready();
		lreg -= reply_size;
		if(reply_partial) {
			control &= ~CTRL_CTXB;
			control |= CTRL_EMP;
		} else {
			control &= ~(CTRL_TXB|CTRL_CTXB);
			control |= CTRL_TFB|CTRL_EMP;
		}
	}
	if(control & CTRL_HRES) {
		raise_irq(maple_irqlevel);
	}
}
Ejemplo n.º 4
0
static
void
setirq(struct ser_data *sd)
{
    int rirq = sd->sd_rirq.si_on &&
               (sd->sd_rirq.si_ready || sd->sd_rirq.si_force);
    int wirq = sd->sd_wirq.si_on &&
               (sd->sd_wirq.si_ready || sd->sd_wirq.si_force);
    if (rirq || wirq) {
        raise_irq(sd->sd_slot);
    }
    else {
        lower_irq(sd->sd_slot);
    }
}
Ejemplo n.º 5
0
static
void
dopoweroff(void *junk1, uint32_t junk2)
{
	(void)junk1;
	(void)junk2;

	/*
	 * This is never seen by the processor, but it breaks the clock
	 * module out of the idle loop.
	 *
	 * XXX this means if you mask slot 31 in IRQE or CIRQE, the
	 * system won't actually power off. This is ok as a hardware
	 * bug for the moment but it would be nice to not have such
	 * behavior.
	 */
	raise_irq(LAMEBUS_CONTROLLER_SLOT);

	main_poweroff();
}