#include "fileio.h"
int hwclock_get_time(struct tm *tm) {
- int fd;
- int err = 0;
+ _cleanup_close_ int fd = -1;
assert(tm);
/* This leaves the timezone fields of struct tm
* uninitialized! */
if (ioctl(fd, RTC_RD_TIME, tm) < 0)
- err = -errno;
+ return -errno;
/* We don't know daylight saving, so we reset this in order not
- * to confused mktime(). */
+ * to confuse mktime(). */
tm->tm_isdst = -1;
- close_nointr_nofail(fd);
-
- return err;
+ return 0;
}
int hwclock_set_time(const struct tm *tm) {
- int fd;
- int err = 0;
+ _cleanup_close_ int fd = -1;
assert(tm);
return -errno;
if (ioctl(fd, RTC_SET_TIME, tm) < 0)
- err = -errno;
-
- close_nointr_nofail(fd);
+ return -errno;
- return err;
+ return 0;
}
int hwclock_is_localtime(void) {
/*
* The very first time we set the kernel's timezone, it will warp
* the clock. Do a dummy call here, so the time warping is sealed
- * and we set only the time zone with next call.
+ * and we set only the timezone with next call.
*/
if (settimeofday(tv_null, &tz) < 0)
return -errno;