}
}
-// Search the bootdevices list for the given glob pattern.
-static BootDevice *
-bootdevice_find(const char *glob)
-{
- dprintf(1, "Searching bootdevices for: %s\n", glob);
- int i;
- for (i = 0; i < BootDeviceCount; i++)
- if (glob_prefix(glob, BootDevices[i].name))
- return &BootDevices[i];
- return NULL;
-}
-
-static BootDevice *
-bootdevice_find_pci_device(struct pci_device *pci)
-{
- // Find pci device - for example: /pci@i0cf8/ethernet@5
- char desc[256];
- build_pci_path(desc, sizeof(desc), "*", pci);
- return bootdevice_find(desc);
-}
-
-static BootDevice *
-bootdevice_find_scsi_device(struct pci_device *pci, int target, int lun)
-{
- if (!pci)
- // support only pci machine for now
- return NULL;
- // Find scsi drive - for example: /pci@i0cf8/scsi@5/channel@0/disk@1,0
- char desc[256], *p;
- p = build_pci_path(desc, sizeof(desc), "*", pci);
- snprintf(p, desc+sizeof(desc)-p, "/*@0/*@%x,%x", target, lun);
- return bootdevice_find(desc);
-}
-
-static BootDevice *
-bootdevice_find_ata_device(struct pci_device *pci, int chanid, int slave)
-{
- if (!pci)
- // support only pci machine for now
- return NULL;
- // Find ata drive - for example: /pci@i0cf8/ide@1,1/drive@1/disk@0
- char desc[256], *p;
- p = build_pci_path(desc, sizeof(desc), "*", pci);
- snprintf(p, desc+sizeof(desc)-p, "/drive@%x/disk@%x", chanid, slave);
- return bootdevice_find(desc);
-}
-
-int boot_lchs_find_pci_device(struct pci_device *pci, struct chs_s *chs)
-{
- BootDevice *b = bootdevice_find_pci_device(pci);
- if (!b)
- return -1;
- chs->cylinder = (u16)b->lcyls;
- chs->head = (u16)b->lheads;
- chs->sector = (u16)b->lsecs;
- return 0;
-}
-
-int boot_lchs_find_scsi_device(struct pci_device *pci, int target, int lun,
- struct chs_s *chs)
-{
- BootDevice *b = bootdevice_find_scsi_device(pci, target, lun);
- if (!b)
- return -1;
- chs->cylinder = (u16)b->lcyls;
- chs->head = (u16)b->lheads;
- chs->sector = (u16)b->lsecs;
- return 0;
-}
-
-int boot_lchs_find_ata_device(struct pci_device *pci, int chanid, int slave,
- struct chs_s *chs)
-{
- BootDevice *b = bootdevice_find_ata_device(pci, chanid, slave);
- if (!b)
- return -1;
- chs->cylinder = (u16)b->lcyls;
- chs->head = (u16)b->lheads;
- chs->sector = (u16)b->lsecs;
- return 0;
-}
-
/****************************************************************
* Boot priority ordering
int bootprio_find_usb(struct usbdevice_s *usbdev, int lun);
int get_keystroke_full(int msec);
int get_keystroke(int msec);
-struct chs_s;
-int boot_lchs_find_pci_device(struct pci_device *pci, struct chs_s *chs);
-int boot_lchs_find_scsi_device(struct pci_device *pci, int target, int lun,
- struct chs_s *chs);
-int boot_lchs_find_ata_device(struct pci_device *pci, int chanid, int slave,
- struct chs_s *chs);
// bootsplash.c
void enable_vga_console(void);