FreeBSD/sys/dev/firewire/firewire.c
/*
 * To probe devices on the IEEE1394 bus.
 */
To probe devices on the IEEE1394 bus.
To probe devices on the IEEE1394 bus .
static void
fw_bus_probe(void *arg)
{
	struct firewire_comm *fc;
	struct fw_device *fwdev;
	int s;
	s = splfw();
	fc = arg;
	fc->status = FWBUSEXPLORE;
	if (firewire_debug)
		device_printf(fc->bdev, "%s:"
			"iterate and invalidate all nodes\n",
			__func__);
	STAILQ_FOREACH(fwdev, &fc->devices, link)
		if (fwdev->status != FWDEVINVAL) {
			fwdev->status = FWDEVINVAL;
			fwdev->rcnt = 0;
			if (firewire_debug)
				device_printf(fc->bdev, "%s:"
					"Invalidate Dev ID: %08x%08x\n",
					__func__, fwdev->eui.hi, fwdev->eui.lo);
		} else {
			if (firewire_debug)
				device_printf(fc->bdev, "%s:"
					"Dev ID: %08x%08x already invalid\n",
					__func__, fwdev->eui.hi, fwdev->eui.lo);
		}
	splx(s);
	wakeup(fc);
}
static void fw_bus_probe ( void * arg ) { struct firewire_comm * fc ; struct fw_device * fwdev ; int s ; s = splfw ( ) ; fc = arg ; fc -> status = FWBUSEXPLORE ; if ( firewire_debug ) device_printf ( fc -> bdev , " " " \n " , __func__ ) ; STAILQ_FOREACH ( fwdev , & fc -> devices , link ) if ( fwdev -> status != FWDEVINVAL ) { fwdev -> status = FWDEVINVAL ; fwdev -> rcnt = 0 ; if ( firewire_debug ) device_printf ( fc -> bdev , " " " \n " , __func__ , fwdev -> eui . hi , fwdev -> eui . lo ) ; } else { if ( firewire_debug ) device_printf ( fc -> bdev , " " " \n " , __func__ , fwdev -> eui . hi , fwdev -> eui . lo ) ; } splx ( s ) ; wakeup ( fc ) ; }
To probe devices on the IEEE1394 bus.
To probe devices on the IEEE1394 bus .
/* Invalidate all devices, just after bus reset. */