static int hpet_start_timer(struct qemu_alarm_timer *t)

{

    struct hpet_info info;

    int r, fd;



    fd = open("/dev/hpet", O_RDONLY);

    if (fd < 0)

        return -1;



    /* Set frequency */

    r = ioctl(fd, HPET_IRQFREQ, RTC_FREQ);

    if (r < 0) {

        fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n"

                "error, but for better emulation accuracy type:\n"

                "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n");

        goto fail;

    }



    /* Check capabilities */

    r = ioctl(fd, HPET_INFO, &info);

    if (r < 0)

        goto fail;



    /* Enable periodic mode */

    r = ioctl(fd, HPET_EPI, 0);

    if (info.hi_flags && (r < 0))

        goto fail;



    /* Enable interrupt */

    r = ioctl(fd, HPET_IE_ON, 0);

    if (r < 0)

        goto fail;



    enable_sigio_timer(fd);

    t->priv = (void *)(long)fd;



    return 0;

fail:

    close(fd);

    return -1;

}

static int hpet_start_timer(struct qemu_alarm_timer *t)

{

    struct hpet_info info;

    int r, fd;



    fd = open("/dev/hpet", O_RDONLY);

    if (fd < 0)

        return -1;



    

    r = ioctl(fd, HPET_IRQFREQ, RTC_FREQ);

    if (r < 0) {

        fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n"

                "error, but for better emulation accuracy type:\n"

                "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n");

        goto fail;

    }



    

    r = ioctl(fd, HPET_INFO, &info);

    if (r < 0)

        goto fail;



    

    r = ioctl(fd, HPET_EPI, 0);

    if (info.hi_flags && (r < 0))

        goto fail;



    

    r = ioctl(fd, HPET_IE_ON, 0);

    if (r < 0)

        goto fail;



    enable_sigio_timer(fd);

    t->priv = (void *)(long)fd;



    return 0;

fail:

    close(fd);

    return -1;

}

    fd = open("/dev/hpet", O_RDONLY);
static int FUNC_0(struct qemu_alarm_timer *VAR_0)

{

    struct hpet_info VAR_1;

    int VAR_2, VAR_3;



    VAR_3 = open("/dev/hpet", O_RDONLY);

    if (VAR_3 < 0)

        return -1;



    

    VAR_2 = ioctl(VAR_3, HPET_IRQFREQ, RTC_FREQ);

    if (VAR_2 < 0) {

        fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n"

                "error, but for better emulation accuracy type:\n"

                "'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n");

        goto fail;

    }



    

    VAR_2 = ioctl(VAR_3, HPET_INFO, &VAR_1);

    if (VAR_2 < 0)

        goto fail;



    

    VAR_2 = ioctl(VAR_3, HPET_EPI, 0);

    if (VAR_1.hi_flags && (VAR_2 < 0))

        goto fail;



    

    VAR_2 = ioctl(VAR_3, HPET_IE_ON, 0);

    if (VAR_2 < 0)

        goto fail;



    enable_sigio_timer(VAR_3);

    VAR_0->priv = (void *)(long)VAR_3;



    return 0;

fail:

    close(VAR_3);

    return -1;

}

static int FUNC_0(struct qemu_alarm_timer *VAR_0)
{ struct hpet_info VAR_1; int VAR_2, VAR_3; VAR_3 = open("/dev/hpet", O_RDONLY); if (VAR_3 < 0)
return -1; VAR_2 = ioctl(VAR_3, HPET_IRQFREQ, RTC_FREQ); if (VAR_2 < 0) { fprintf(stderr, "Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal\n"
"error, but for better emulation accuracy type:\n"
"'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.\n"); goto fail; } VAR_2 = ioctl(VAR_3, HPET_INFO, &VAR_1); if (VAR_2 < 0)
goto fail; VAR_2 = ioctl(VAR_3, HPET_EPI, 0); if (VAR_1.hi_flags && (VAR_2 < 0))
goto fail; VAR_2 = ioctl(VAR_3, HPET_IE_ON, 0); if (VAR_2 < 0)
goto fail; enable_sigio_timer(VAR_3); VAR_0->priv = (void *)(long)VAR_3; return 0; fail:
close(VAR_3); return -1; }