Lines Matching refs:tm
68 struct tm current_tm;
287 struct tm *tm = &s->current_tm; in rtc_set_time() local
289 tm->tm_sec = rtc_from_bcd(s, s->cmos_data[RTC_SECONDS]); in rtc_set_time()
290 tm->tm_min = rtc_from_bcd(s, s->cmos_data[RTC_MINUTES]); in rtc_set_time()
291 tm->tm_hour = rtc_from_bcd(s, s->cmos_data[RTC_HOURS] & 0x7f); in rtc_set_time()
294 tm->tm_hour += 12; in rtc_set_time()
296 tm->tm_wday = rtc_from_bcd(s, s->cmos_data[RTC_DAY_OF_WEEK]) - 1; in rtc_set_time()
297 tm->tm_mday = rtc_from_bcd(s, s->cmos_data[RTC_DAY_OF_MONTH]); in rtc_set_time()
298 tm->tm_mon = rtc_from_bcd(s, s->cmos_data[RTC_MONTH]) - 1; in rtc_set_time()
299 tm->tm_year = rtc_from_bcd(s, s->cmos_data[RTC_YEAR]) + s->base_year - 1900; in rtc_set_time()
304 const struct tm *tm = &s->current_tm; in rtc_copy_date() local
307 s->cmos_data[RTC_SECONDS] = rtc_to_bcd(s, tm->tm_sec); in rtc_copy_date()
308 s->cmos_data[RTC_MINUTES] = rtc_to_bcd(s, tm->tm_min); in rtc_copy_date()
311 s->cmos_data[RTC_HOURS] = rtc_to_bcd(s, tm->tm_hour); in rtc_copy_date()
314 s->cmos_data[RTC_HOURS] = rtc_to_bcd(s, tm->tm_hour % 12); in rtc_copy_date()
315 if (tm->tm_hour >= 12) in rtc_copy_date()
318 s->cmos_data[RTC_DAY_OF_WEEK] = rtc_to_bcd(s, tm->tm_wday + 1); in rtc_copy_date()
319 s->cmos_data[RTC_DAY_OF_MONTH] = rtc_to_bcd(s, tm->tm_mday); in rtc_copy_date()
320 s->cmos_data[RTC_MONTH] = rtc_to_bcd(s, tm->tm_mon + 1); in rtc_copy_date()
321 year = (tm->tm_year - s->base_year) % 100; in rtc_copy_date()
345 static void rtc_next_second(struct tm *tm) in rtc_next_second() argument
349 tm->tm_sec++; in rtc_next_second()
350 if ((unsigned)tm->tm_sec >= 60) { in rtc_next_second()
351 tm->tm_sec = 0; in rtc_next_second()
352 tm->tm_min++; in rtc_next_second()
353 if ((unsigned)tm->tm_min >= 60) { in rtc_next_second()
354 tm->tm_min = 0; in rtc_next_second()
355 tm->tm_hour++; in rtc_next_second()
356 if ((unsigned)tm->tm_hour >= 24) { in rtc_next_second()
357 tm->tm_hour = 0; in rtc_next_second()
359 tm->tm_wday++; in rtc_next_second()
360 if ((unsigned)tm->tm_wday >= 7) in rtc_next_second()
361 tm->tm_wday = 0; in rtc_next_second()
362 days_in_month = get_days_in_month(tm->tm_mon, in rtc_next_second()
363 tm->tm_year + 1900); in rtc_next_second()
364 tm->tm_mday++; in rtc_next_second()
365 if (tm->tm_mday < 1) { in rtc_next_second()
366 tm->tm_mday = 1; in rtc_next_second()
367 } else if (tm->tm_mday > days_in_month) { in rtc_next_second()
368 tm->tm_mday = 1; in rtc_next_second()
369 tm->tm_mon++; in rtc_next_second()
370 if (tm->tm_mon >= 12) { in rtc_next_second()
371 tm->tm_mon = 0; in rtc_next_second()
372 tm->tm_year++; in rtc_next_second()
485 void rtc_set_date(RTCState *s, const struct tm *tm) in rtc_set_date() argument
487 s->current_tm = *tm; in rtc_set_date()
497 struct tm tm; in rtc_set_date_from_host() local
501 qemu_get_timedate(&tm, 0); in rtc_set_date_from_host()
502 rtc_set_date(s, &tm); in rtc_set_date_from_host()
504 val = rtc_to_bcd(s, (tm.tm_year / 100) + 19); in rtc_set_date_from_host()