#include #include #include #include #include #include #include #include void ide_probe_devices(xen_disk_info_t* xdi) { int loop; unsigned int unit; xen_disk_info_t *xen_xdi = map_domain_mem(virt_to_phys(xdi)); unsigned long capacity, device; ide_drive_t *drive; for ( loop = 0; loop < MAX_HWIFS; loop++ ) { ide_hwif_t *hwif = &ide_hwifs[loop]; if ( !hwif->present ) continue; for ( unit = 0; unit < MAX_DRIVES; unit++ ) { drive = &hwif->drives[unit]; if ( !drive->present ) continue; device = MK_IDE_XENDEV((loop * MAX_DRIVES) + unit); capacity = current_capacity(drive); xen_xdi->disks[xen_xdi->count].device = device; xen_xdi->disks[xen_xdi->count].capacity = capacity; xen_xdi->count++; printk("Disk %d: IDE-XENO capacity %ldkB (%ldMB)\n", xen_xdi->count, capacity>>1, capacity>>11); } } unmap_domain_mem(xen_xdi); }