Because the hurd patch (rtc translator and RTC CMOS driver) is a bit
related to the patch for util-linux (support hwclock in Hurd), I decided
to send them together.
We will see the following functions after applying the patch:
```
Functions:
-r, --show display the RTC time
--get display drift corrected RTC time
--set set the RTC according to --date
-s, --hctosys set the system time from the RTC
-w, --systohc set the RTC from the system time
--systz send timescale configurations to the kernel
-a, --adjust adjust the RTC to account for systematic drift
--predict predict the drifted RTC time according to
--date
```
I have tested those functions, they works perfectly expect --systz. The
hwclock said the issue is `settimeofday() failed: Function not
implemented`. However, settimeofday is obsolescent[0] so I think we can
ignore it.
You will see in rtc-cmos_pioctl-ops.c RTC_UIE_ON and RTC_UIE_OFF just
return EOPNOTSUPP. Samuel mentioned a proper implementation is quite
involved; it means registering to gnumach ... etc. A solution would be
using the busy-wait method used by hwclock. However, hwclock itself will
select the busy-wait method (hwclock has a built-in one) automatically
if RTC_UIE_ON ioctl fails. Therefore, I think before there are some other
softwares want to use RTC_UIE_ON, we can just use placeholders.
BTW I'm quite interested in that proper implementation :).
About the adding of O_WRONLY in hwclock-rtc.c in the util-linux patch.
It's quite weird that hurd (in qemu) cannot set time without O_WRONLY
but linux (on my linux laptop) can.
[0]: https://www.mail-archive.com/[email protected]/msg02694.html
--
2.45.2