Example #1
0
int mass_stor_configureNextDevice(void)
{
	int i;

	XPRINTF("USBHDFSD: configuring devices... \n");

	for (i = 0; i < NUM_DEVICES; ++i)
	{
		mass_dev *dev = &g_mass_device[i];
		if (dev->devId != -1 && (dev->status & USBMASS_DEV_STAT_CONN) && !(dev->status & USBMASS_DEV_STAT_CONF))
		{
			int ret;
			usb_set_configuration(dev, dev->configId);
			usb_set_interface(dev, dev->interfaceNumber, dev->interfaceAlt);
			dev->status |= USBMASS_DEV_STAT_CONF;

			ret = mass_stor_warmup(dev);
			if (ret < 0)
			{
				printf("USBHDFSD: Error - failed to warmup device %d\n", dev->devId);
				mass_stor_release(dev);
				continue;
			}

			dev->cache = scache_init(dev, dev->sectorSize); // modified by Hermes
			if (dev->cache == NULL) {
				printf("USBHDFSD: Error - scache_init failed \n" );
				continue;
			}

			return part_connect(dev) >= 0;
		}
	}
	return 0;
}
int mass_stor_configureNextDevice()
{
	int i;

    // give the USB driver some time to detect the device
    //i = 10000;
    //while (wait_for_connect && (--i > 0))
        //DelayThread(100);
    //wait_for_connect = 0;

	XPRINTF("USBHDFSD: configuring devices... \n");

    for (i = 0; i < NUM_DEVICES; ++i)
    {
        mass_dev *dev = &g_mass_device[i];
        if (dev->devId != -1 && (dev->status & DEVICE_DETECTED) && !(dev->status & DEVICE_CONFIGURED))
        {
            int ret;
            usb_set_configuration(dev, dev->configId);
            usb_set_interface(dev, dev->interfaceNumber, dev->interfaceAlt);
            dev->status |= DEVICE_CONFIGURED;

            ret = mass_stor_warmup(dev);
            if (ret < 0)
            {
                printf("USBHDFSD: Error - failed to warmup device %d\n", dev->devId);
                mass_stor_release(dev);
                continue;
            }

            dev->cache = scache_init(dev, dev->sectorSize); // modified by Hermes
            if (dev->cache == NULL) {
                printf("USBHDFSD: Error - scache_init failed \n" );
                continue;
            }

            return part_connect(dev) >= 0;
        }
    }
    return 0;
}