Lines Matching +full:dp +full:- +full:usb

1 /*-
124 if (dev->dv_type == DEVT_DISK) in efiblk_get_pdinfo_list()
126 if (dev->dv_type == DEVT_CD) in efiblk_get_pdinfo_list()
128 if (dev->dv_type == DEVT_FD) in efiblk_get_pdinfo_list()
140 pdi = efiblk_get_pdinfo_list(dev->d_dev); in efiblk_get_pdinfo()
145 if (pd->pd_unit == dev->d_unit) in efiblk_get_pdinfo()
158 status = BS->LocateDevicePath(&blkio_guid, &devp, &h); in efiblk_get_pdinfo_by_device_path()
168 return (pd->pd_handle == h || pd->pd_alias == h); in same_handle()
174 pdinfo_t *dp, *pp; in efiblk_get_pdinfo_by_handle() local
179 STAILQ_FOREACH(dp, &hdinfo, pd_link) { in efiblk_get_pdinfo_by_handle()
180 if (same_handle(dp, h)) in efiblk_get_pdinfo_by_handle()
181 return (dp); in efiblk_get_pdinfo_by_handle()
182 STAILQ_FOREACH(pp, &dp->pd_part, pd_link) { in efiblk_get_pdinfo_by_handle()
187 STAILQ_FOREACH(dp, &cdinfo, pd_link) { in efiblk_get_pdinfo_by_handle()
188 if (same_handle(dp, h)) in efiblk_get_pdinfo_by_handle()
189 return (dp); in efiblk_get_pdinfo_by_handle()
190 STAILQ_FOREACH(pp, &dp->pd_part, pd_link) { in efiblk_get_pdinfo_by_handle()
195 STAILQ_FOREACH(dp, &fdinfo, pd_link) { in efiblk_get_pdinfo_by_handle()
196 if (same_handle(dp, h)) in efiblk_get_pdinfo_by_handle()
197 return (dp); in efiblk_get_pdinfo_by_handle()
228 if (efi_devpath_match(pd->pd_devpath, parent)) in efipart_find_parent()
251 if (blkio->Media->BlockSize < 512 || in efipart_ignore_device()
252 blkio->Media->BlockSize > (1 << 16) || in efipart_ignore_device()
253 !powerof2(blkio->Media->BlockSize)) { in efipart_ignore_device()
259 if (blkio->Media->IoAlign > 1 && in efipart_ignore_device()
260 !powerof2(blkio->Media->IoAlign)) { in efipart_ignore_device()
267 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0) in efipart_ignore_device()
268 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x1) in efipart_ignore_device()
269 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x2) in efipart_ignore_device()
270 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x3) in efipart_ignore_device()
271 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x3)/CDROM.. in efipart_ignore_device()
272 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x3)/CDROM.. in efipart_ignore_device()
273 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x4) in efipart_ignore_device()
274 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x5) in efipart_ignore_device()
275 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x6) in efipart_ignore_device()
276 * PciRoot(0x0)/Pci(0x14,0x0)/USB(0x5,0)/USB(0x2,0x0)/Unit(0x7) in efipart_ignore_device()
283 * Therefore, if this node is USB, or this node is Unit (LUN) and in efipart_ignore_device()
284 * direct parent is USB and we have no media, we will ignore this in efipart_ignore_device()
288 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x1) in efipart_ignore_device()
289 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x2) in efipart_ignore_device()
290 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3) in efipart_ignore_device()
291 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3)/CD.. in efipart_ignore_device()
292 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x3)/CD.. in efipart_ignore_device()
293 * PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0)/USB(0x3,0x0)/SCSI(0x0,0x4) in efipart_ignore_device()
299 if (blkio->Media->MediaPresent) in efipart_ignore_device()
306 /* USB without media present */ in efipart_ignore_device()
333 * no media, parent is USB and devicepath is in efipart_ignore_device()
363 status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz, hin); in efipart_inithandles()
368 status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz, in efipart_inithandles()
405 STAILQ_INIT(&pd->pd_part); in efipart_inithandles()
407 pd->pd_handle = hin[i]; in efipart_inithandles()
408 pd->pd_devpath = devpath; in efipart_inithandles()
409 pd->pd_blkio = blkio; in efipart_inithandles()
417 pd->pd_parent = efipart_find_parent(&pdinfo, pd->pd_devpath); in efipart_inithandles()
447 if (acpi->HID == EISA_PNP_ID(PNP0604) || in efipart_floppy()
448 acpi->HID == EISA_PNP_ID(PNP0700) || in efipart_floppy()
449 acpi->HID == EISA_PNP_ID(PNP0701)) { in efipart_floppy()
461 node = efi_devpath_last_node(fd->pd_devpath); in efipart_testfd()
479 if ((node = efi_devpath_last_node(fd->pd_devpath)) == NULL) in efipart_initfd()
486 parent = fd->pd_parent; in efipart_initfd()
489 parent->pd_alias = fd->pd_handle; in efipart_initfd()
490 parent->pd_unit = acpi->UID; in efipart_initfd()
494 fd->pd_unit = acpi->UID; in efipart_initfd()
496 fd->pd_devsw = &efipart_fddev; in efipart_initfd()
515 parent = cd->pd_parent; in efipart_cdinfo_add()
520 if (efi_devpath_match(pd->pd_devpath, cd->pd_devpath)) { in efipart_cdinfo_add()
531 last = STAILQ_LAST(&parent->pd_part, pdinfo, pd_link); in efipart_cdinfo_add()
533 cd->pd_unit = last->pd_unit + 1; in efipart_cdinfo_add()
535 cd->pd_unit = 0; in efipart_cdinfo_add()
536 cd->pd_devsw = &efipart_cddev; in efipart_cdinfo_add()
537 STAILQ_INSERT_TAIL(&parent->pd_part, cd, pd_link); in efipart_cdinfo_add()
543 cd->pd_unit = last->pd_unit + 1; in efipart_cdinfo_add()
545 cd->pd_unit = 0; in efipart_cdinfo_add()
547 cd->pd_devsw = &efipart_cddev; in efipart_cdinfo_add()
556 node = efi_devpath_last_node(cd->pd_devpath); in efipart_testcd()
569 if (cd->pd_blkio->Media->RemovableMedia && in efipart_testcd()
570 !cd->pd_blkio->Media->MediaPresent) { in efipart_testcd()
584 if (dev->pd_parent == NULL) in efipart_testchild()
587 if (efi_devpath_match(dev->pd_parent->pd_devpath, pd->pd_devpath)) { in efipart_testchild()
622 parent = hd->pd_parent; in efipart_hdinfo_add_node()
624 * If the node is not MEDIA_HARDDRIVE_DP, it is sub-partition. in efipart_hdinfo_add_node()
629 ptr = STAILQ_LAST(&parent->pd_part, pdinfo, pd_link); in efipart_hdinfo_add_node()
631 hd->pd_unit = ptr->pd_unit + 1; in efipart_hdinfo_add_node()
633 hd->pd_unit = 0; in efipart_hdinfo_add_node()
635 hd->pd_unit = ((HARDDRIVE_DEVICE_PATH *)node)->PartitionNumber; in efipart_hdinfo_add_node()
638 hd->pd_devsw = &efipart_hddev; in efipart_hdinfo_add_node()
639 STAILQ_INSERT_TAIL(&parent->pd_part, hd, pd_link); in efipart_hdinfo_add_node()
644 * From U-Boot sources it looks like names are in the form
657 hd->pd_unit = last->pd_unit + 1; in efipart_hdinfo_add_filepath()
659 hd->pd_unit = 0; in efipart_hdinfo_add_filepath()
662 len = ucs2len(node->PathName); in efipart_hdinfo_add_filepath()
668 cpy16to8(node->PathName, pathname, len + 1); in efipart_hdinfo_add_filepath()
677 hd->pd_devsw = &efipart_hddev; in efipart_hdinfo_add_filepath()
684 hd->pd_unit = (int)strtol(p, NULL, 0); in efipart_hdinfo_add_filepath()
705 hd->pd_parent = last; in efipart_hdinfo_add_filepath()
706 hd->pd_devsw = &efipart_hddev; in efipart_hdinfo_add_filepath()
707 STAILQ_INSERT_TAIL(&last->pd_part, hd, pd_link); in efipart_hdinfo_add_filepath()
720 parent = hd->pd_parent; in efipart_hdinfo_add()
725 if (efi_devpath_match(pd->pd_devpath, hd->pd_devpath)) { in efipart_hdinfo_add()
735 if ((node = efi_devpath_last_node(hd->pd_devpath)) == NULL) in efipart_hdinfo_add()
752 hd->pd_unit = last->pd_unit + 1; in efipart_hdinfo_add()
754 hd->pd_unit = 0; in efipart_hdinfo_add()
757 hd->pd_devsw = &efipart_hddev; in efipart_hdinfo_add()
801 printf("%s devices:", dev->dv_name); in efipart_print_common()
806 h = pd->pd_handle; in efipart_print_common()
817 " %s%d", dev->dv_name, pd->pd_unit); in efipart_print_common()
822 blkio->Media->LastBlock == 0? 0: in efipart_print_common()
823 (unsigned long long) (blkio->Media->LastBlock + 1)); in efipart_print_common()
824 if (blkio->Media->LastBlock != 0) { in efipart_print_common()
825 printf(" X %u", blkio->Media->BlockSize); in efipart_print_common()
828 if (blkio->Media->MediaPresent) { in efipart_print_common()
829 if (blkio->Media->RemovableMedia) in efipart_print_common()
836 if (!blkio->Media->MediaPresent) in efipart_print_common()
839 pd->pd_blkio = blkio; in efipart_print_common()
841 pd_dev.dd.d_unit = pd->pd_unit; in efipart_print_common()
844 ret = disk_open(&pd_dev, blkio->Media->BlockSize * in efipart_print_common()
845 (blkio->Media->LastBlock + 1), in efipart_print_common()
846 blkio->Media->BlockSize); in efipart_print_common()
901 if (pd->pd_blkio == NULL) { in efipart_open()
902 status = OpenProtocolByHandle(pd->pd_handle, &blkio_guid, in efipart_open()
903 (void **)&pd->pd_blkio); in efipart_open()
908 blkio = pd->pd_blkio; in efipart_open()
909 if (!blkio->Media->MediaPresent) in efipart_open()
912 pd->pd_open++; in efipart_open()
913 if (pd->pd_bcache == NULL) in efipart_open()
914 pd->pd_bcache = bcache_allocate(); in efipart_open()
916 if (dev->dd.d_dev->dv_type == DEVT_DISK) { in efipart_open()
920 blkio->Media->BlockSize * (blkio->Media->LastBlock + 1), in efipart_open()
921 blkio->Media->BlockSize); in efipart_open()
923 pd->pd_open--; in efipart_open()
924 if (pd->pd_open == 0) { in efipart_open()
925 pd->pd_blkio = NULL; in efipart_open()
926 bcache_free(pd->pd_bcache); in efipart_open()
927 pd->pd_bcache = NULL; in efipart_open()
941 dev = (struct disk_devdesc *)(f->f_devdata); in efipart_close()
949 pd->pd_open--; in efipart_close()
950 if (pd->pd_open == 0) { in efipart_close()
951 pd->pd_blkio = NULL; in efipart_close()
952 if (dev->dd.d_dev->dv_type != DEVT_DISK) { in efipart_close()
953 bcache_free(pd->pd_bcache); in efipart_close()
954 pd->pd_bcache = NULL; in efipart_close()
957 if (dev->dd.d_dev->dv_type == DEVT_DISK) in efipart_close()
969 dev = (struct disk_devdesc *)(f->f_devdata); in efipart_ioctl()
977 if (dev->dd.d_dev->dv_type == DEVT_DISK) { in efipart_ioctl()
985 *(u_int *)data = pd->pd_blkio->Media->BlockSize; in efipart_ioctl()
988 *(uint64_t *)data = pd->pd_blkio->Media->BlockSize * in efipart_ioctl()
989 (pd->pd_blkio->Media->LastBlock + 1); in efipart_ioctl()
1001 * media-native block size. This function expects all I/O requests
1015 if (blk < 0 || blk > blkio->Media->LastBlock) in efipart_readwrite()
1017 if ((blk + nblks - 1) > blkio->Media->LastBlock) in efipart_readwrite()
1022 status = blkio->ReadBlocks(blkio, blkio->Media->MediaId, blk, in efipart_readwrite()
1023 nblks * blkio->Media->BlockSize, buf); in efipart_readwrite()
1026 if (blkio->Media->ReadOnly) in efipart_readwrite()
1028 status = blkio->WriteBlocks(blkio, blkio->Media->MediaId, blk, in efipart_readwrite()
1029 nblks * blkio->Media->BlockSize, buf); in efipart_readwrite()
1059 if (pd->pd_blkio->Media->RemovableMedia && in efipart_strategy()
1060 !pd->pd_blkio->Media->MediaPresent) in efipart_strategy()
1065 bcd.dv_cache = pd->pd_bcache; in efipart_strategy()
1067 if (dev->dd.d_dev->dv_type == DEVT_DISK) { in efipart_strategy()
1070 offset = dev->d_offset * pd->pd_blkio->Media->BlockSize; in efipart_strategy()
1100 blkio = pd->pd_blkio; in efipart_realstrategy()
1113 if (dev->dd.d_dev->dv_type == DEVT_DISK) { in efipart_realstrategy()
1116 disk_blocks /= blkio->Media->BlockSize; in efipart_realstrategy()
1118 d_offset = dev->d_offset; in efipart_realstrategy()
1121 disk_blocks = blkio->Media->LastBlock + 1 - d_offset; in efipart_realstrategy()
1124 if ((off + size) / blkio->Media->BlockSize > d_offset + disk_blocks) { in efipart_realstrategy()
1126 readstart = off / blkio->Media->BlockSize; in efipart_realstrategy()
1134 size = diskend - readstart; in efipart_realstrategy()
1135 size = size * blkio->Media->BlockSize; in efipart_realstrategy()
1140 if ((size % blkio->Media->BlockSize == 0) && in efipart_realstrategy()
1141 (off % blkio->Media->BlockSize == 0)) in efipart_realstrategy()
1145 ioalign = blkio->Media->IoAlign; in efipart_realstrategy()
1154 bio_size -= blkio->Media->BlockSize) { in efipart_realstrategy()
1171 blk = off / blkio->Media->BlockSize; in efipart_realstrategy()
1172 blkoff = off % blkio->Media->BlockSize; in efipart_realstrategy()
1177 if (x < blkio->Media->BlockSize) in efipart_realstrategy()
1180 x /= blkio->Media->BlockSize; in efipart_realstrategy()
1184 blksz = blkio->Media->BlockSize * x - blkoff; in efipart_realstrategy()
1203 blksz = blkio->Media->BlockSize - blkoff; in efipart_realstrategy()
1207 } else if (size < blkio->Media->BlockSize) { in efipart_realstrategy()
1218 blksz = blkio->Media->BlockSize * x; in efipart_realstrategy()
1241 size -= blksz; in efipart_realstrategy()
1247 *rsize -= size; in efipart_realstrategy()