Revision f6503059 hw/mc146818rtc.c

b/hw/mc146818rtc.c
392 392

  
393 393
static void rtc_set_date_from_host(RTCState *s)
394 394
{
395
    time_t ti;
396
    struct tm *tm;
395
    struct tm tm;
397 396
    int val;
398 397

  
399 398
    /* set the CMOS date */
400
    if (rtc_start_date == -1) {
401
        time(&ti);
402
        if (rtc_utc)
403
            tm = gmtime(&ti);
404
        else
405
            tm = localtime(&ti);
406
    } else {
407
        ti = rtc_start_date;
408
        tm = gmtime(&ti);
409
    }
410
    rtc_set_date(s, tm);
399
    qemu_get_timedate(&tm, 0);
400
    rtc_set_date(s, &tm);
411 401

  
412
    val = to_bcd(s, (tm->tm_year / 100) + 19);
402
    val = to_bcd(s, (tm.tm_year / 100) + 19);
413 403
    rtc_set_memory(s, REG_IBM_CENTURY_BYTE, val);
414 404
    rtc_set_memory(s, REG_IBM_PS2_CENTURY_BYTE, val);
415 405
}

Also available in: Unified diff