static void usb_host_auto_check(void *unused)

{

    struct USBHostDevice *s;

    int unconnected = 0;



    usb_host_scan(NULL, usb_host_auto_scan);



    QTAILQ_FOREACH(s, &hostdevs, next) {

        if (s->fd == -1) {

            unconnected++;

        }

    }



    if (unconnected == 0) {

        /* nothing to watch */

        if (usb_auto_timer) {

            qemu_del_timer(usb_auto_timer);

        }

        return;

    }



    if (!usb_auto_timer) {

        usb_auto_timer = qemu_new_timer(rt_clock, usb_host_auto_check, NULL);

        if (!usb_auto_timer) {

            return;

        }

    }

    qemu_mod_timer(usb_auto_timer, qemu_get_clock(rt_clock) + 2000);

}

static void usb_host_auto_check(void *unused)

{

    struct USBHostDevice *s;

    int unconnected = 0;



    usb_host_scan(NULL, usb_host_auto_scan);



    QTAILQ_FOREACH(s, &hostdevs, next) {

        if (s->fd == -1) {

            unconnected++;

        }

    }



    if (unconnected == 0) {

        

        if (usb_auto_timer) {

            qemu_del_timer(usb_auto_timer);

        }

        return;

    }



    if (!usb_auto_timer) {

        usb_auto_timer = qemu_new_timer(rt_clock, usb_host_auto_check, NULL);

        if (!usb_auto_timer) {

            return;

        }

    }

    qemu_mod_timer(usb_auto_timer, qemu_get_clock(rt_clock) + 2000);

}

static void FUNC_0(void *VAR_0)

{

    struct USBHostDevice *VAR_1;

    int VAR_2 = 0;



    usb_host_scan(NULL, usb_host_auto_scan);



    QTAILQ_FOREACH(VAR_1, &hostdevs, next) {

        if (VAR_1->fd == -1) {

            VAR_2++;

        }

    }



    if (VAR_2 == 0) {

        

        if (usb_auto_timer) {

            qemu_del_timer(usb_auto_timer);

        }

        return;

    }



    if (!usb_auto_timer) {

        usb_auto_timer = qemu_new_timer(rt_clock, FUNC_0, NULL);

        if (!usb_auto_timer) {

            return;

        }

    }

    qemu_mod_timer(usb_auto_timer, qemu_get_clock(rt_clock) + 2000);

}

static void FUNC_0(void *VAR_0)
{ struct USBHostDevice *VAR_1; int VAR_2 = 0; usb_host_scan(NULL, usb_host_auto_scan); QTAILQ_FOREACH(VAR_1, &hostdevs, next) { if (VAR_1->fd == -1) { VAR_2++; } } if (VAR_2 == 0) { if (usb_auto_timer) { qemu_del_timer(usb_auto_timer); } return; } if (!usb_auto_timer) { usb_auto_timer = qemu_new_timer(rt_clock, FUNC_0, NULL); if (!usb_auto_timer) { return; } } qemu_mod_timer(usb_auto_timer, qemu_get_clock(rt_clock) + 2000); }