Lines Matching refs:fwdev

148 	struct fw_device *fwdev;  in fw_noderesolve_nodeid()  local
151 STAILQ_FOREACH(fwdev, &fc->devices, link) in fw_noderesolve_nodeid()
152 if (fwdev->dst == dst && fwdev->status != FWDEVINVAL) in fw_noderesolve_nodeid()
156 return fwdev; in fw_noderesolve_nodeid()
165 struct fw_device *fwdev; in fw_noderesolve_eui64() local
168 STAILQ_FOREACH(fwdev, &fc->devices, link) in fw_noderesolve_eui64()
169 if (FW_EUI64_EQUAL(fwdev->eui, *eui)) in fw_noderesolve_eui64()
173 if (fwdev == NULL) in fw_noderesolve_eui64()
175 if (fwdev->status == FWDEVINVAL) in fw_noderesolve_eui64()
177 return fwdev; in fw_noderesolve_eui64()
510 struct fw_device *fwdev, *fwdev_next; in firewire_detach() local
536 for (fwdev = STAILQ_FIRST(&fc->devices); fwdev != NULL; in firewire_detach()
537 fwdev = fwdev_next) { in firewire_detach()
538 fwdev_next = STAILQ_NEXT(fwdev, link); in firewire_detach()
539 free(fwdev, M_FW); in firewire_detach()
1403 struct fw_device *fwdev; in fw_bus_probe() local
1415 STAILQ_FOREACH(fwdev, &fc->devices, link) in fw_bus_probe()
1416 if (fwdev->status != FWDEVINVAL) { in fw_bus_probe()
1417 fwdev->status = FWDEVINVAL; in fw_bus_probe()
1418 fwdev->rcnt = 0; in fw_bus_probe()
1422 __func__, fwdev->eui.hi, fwdev->eui.lo); in fw_bus_probe()
1427 __func__, fwdev->eui.hi, fwdev->eui.lo); in fw_bus_probe()
1435 fw_explore_read_quads(struct fw_device *fwdev, int offset, in fw_explore_read_quads() argument
1443 xfer = fwmem_read_quad(fwdev, NULL, -1, 0xffff, in fw_explore_read_quads()
1462 fw_explore_csrblock(struct fw_device *fwdev, int offset, int recur) in fw_explore_csrblock() argument
1468 dir = (struct csrdirectory *)&fwdev->csrrom[offset / sizeof(uint32_t)]; in fw_explore_csrblock()
1469 err = fw_explore_read_quads(fwdev, CSRROMOFF + offset, in fw_explore_csrblock()
1475 reg = (struct csrreg *)&fwdev->csrrom[offset / sizeof(uint32_t)]; in fw_explore_csrblock()
1476 err = fw_explore_read_quads(fwdev, CSRROMOFF + offset, in fw_explore_csrblock()
1484 if (fwdev->rommax < off) in fw_explore_csrblock()
1485 fwdev->rommax = off; in fw_explore_csrblock()
1503 err = fw_explore_csrblock(fwdev, off, recur); in fw_explore_csrblock()
1514 struct fw_device *fwdev, *pfwdev, *tfwdev; in fw_explore_node() local
1564 STAILQ_FOREACH(fwdev, &fc->devices, link) in fw_explore_node()
1565 if (FW_EUI64_EQUAL(fwdev->eui, binfo->eui64)) in fw_explore_node()
1567 if (fwdev == NULL) { in fw_explore_node()
1569 fwdev = malloc(sizeof(struct fw_device), M_FW, in fw_explore_node()
1571 if (fwdev == NULL) { in fw_explore_node()
1576 fwdev->fc = fc; in fw_explore_node()
1577 fwdev->eui = binfo->eui64; in fw_explore_node()
1578 fwdev->dst = dfwdev->dst; in fw_explore_node()
1579 fwdev->maxrec = dfwdev->maxrec; in fw_explore_node()
1580 fwdev->status = dfwdev->status; in fw_explore_node()
1593 fwdev->speed = fc->speed_map->speed[fc->nodeid][node]; in fw_explore_node()
1595 fwdev->speed = binfo->link_spd; in fw_explore_node()
1600 while (fwdev->speed > FWSPD_S100 /* 0 */) { in fw_explore_node()
1601 err = fw_explore_read_quads(fwdev, CSRROMOFF, in fw_explore_node()
1606 __func__, linkspeed[fwdev->speed]); in fw_explore_node()
1607 fwdev->speed--; in fw_explore_node()
1619 if (tfwdev->eui.hi > fwdev->eui.hi || in fw_explore_node()
1620 (tfwdev->eui.hi == fwdev->eui.hi && in fw_explore_node()
1621 tfwdev->eui.lo > fwdev->eui.lo)) in fw_explore_node()
1626 STAILQ_INSERT_HEAD(&fc->devices, fwdev, link); in fw_explore_node()
1628 STAILQ_INSERT_AFTER(&fc->devices, pfwdev, fwdev, link); in fw_explore_node()
1630 fwdev->dst = node; in fw_explore_node()
1631 fwdev->status = FWDEVINIT; in fw_explore_node()
1633 if (bcmp(&csr[0], &fwdev->csrrom[0], sizeof(uint32_t) * 5) == 0) { in fw_explore_node()
1641 bzero(&fwdev->csrrom[0], CROMSIZE); in fw_explore_node()
1644 bcopy(&csr[0], &fwdev->csrrom[0], sizeof(uint32_t) * 5); in fw_explore_node()
1645 fwdev->rommax = CSRROMOFF + sizeof(uint32_t) * 4; in fw_explore_node()
1647 err = fw_explore_csrblock(fwdev, 0x14, 1); /* root directory */ in fw_explore_node()
1653 fwdev->status = FWDEVINVAL; in fw_explore_node()
1654 fwdev->csrrom[0] = 0; in fw_explore_node()
1766 struct fw_device *fwdev, *next; in fw_attach_dev() local
1772 for (fwdev = STAILQ_FIRST(&fc->devices); fwdev != NULL; fwdev = next) { in fw_attach_dev()
1773 next = STAILQ_NEXT(fwdev, link); in fw_attach_dev()
1774 if (fwdev->status == FWDEVINIT) { in fw_attach_dev()
1775 fwdev->status = FWDEVATTACHED; in fw_attach_dev()
1776 } else if (fwdev->status == FWDEVINVAL) { in fw_attach_dev()
1777 fwdev->rcnt++; in fw_attach_dev()
1781 __func__, fwdev->rcnt, hold_count); in fw_attach_dev()
1782 if (fwdev->rcnt > hold_count) { in fw_attach_dev()
1787 STAILQ_REMOVE(&fc->devices, fwdev, fw_device, in fw_attach_dev()
1789 free(fwdev, M_FW); in fw_attach_dev()
2283 struct fw_device fwdev; in fw_bmr() local
2319 bzero(&fwdev, sizeof(fwdev)); in fw_bmr()
2320 fwdev.fc = fc; in fw_bmr()
2321 fwdev.dst = cmstr; in fw_bmr()
2322 fwdev.speed = 0; in fw_bmr()
2323 fwdev.maxrec = 8; /* 512 */ in fw_bmr()
2324 fwdev.status = FWDEVINIT; in fw_bmr()
2327 fwmem_write_quad(&fwdev, NULL, 0/*spd*/, in fw_bmr()