On 11/29/21 21:55, Peter Maydell wrote: > softmmu/rtc.c defines two public functions: qemu_get_timedate() and > qemu_timedate_diff(). Currently we keep the prototypes for these in > qemu-common.h, but most files don't need them. Move them to their > own header, a new include/sysemu/rtc.h. > > Since the C files using these two functions did not need to include > qemu-common.h for any other reason, we can remove those include lines > when we add the include of the new rtc.h. > > The license for the .h file follows that of the softmmu/rtc.c > where both the functions are defined. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > I have added documentation comments for the two functions, but > since my understanding of them and their purpose is little shaky > review would be welcome. > --- > include/qemu-common.h | 3 --- > include/sysemu/rtc.h | 58 ++++++++++++++++++++++++++++++++++++++++ > hw/arm/omap1.c | 2 +- > hw/arm/pxa2xx.c | 2 +- > hw/arm/strongarm.c | 2 +- > hw/misc/mac_via.c | 2 +- > hw/misc/macio/cuda.c | 2 +- > hw/misc/macio/pmu.c | 2 +- > hw/ppc/spapr_rtc.c | 2 +- > hw/rtc/allwinner-rtc.c | 2 +- > hw/rtc/aspeed_rtc.c | 2 +- > hw/rtc/ds1338.c | 2 +- > hw/rtc/exynos4210_rtc.c | 2 +- > hw/rtc/goldfish_rtc.c | 2 +- > hw/rtc/m41t80.c | 2 +- > hw/rtc/m48t59.c | 2 +- > hw/rtc/mc146818rtc.c | 2 +- > hw/rtc/pl031.c | 2 +- > hw/rtc/twl92230.c | 2 +- > hw/rtc/xlnx-zynqmp-rtc.c | 2 +- > hw/s390x/tod-tcg.c | 2 +- > hw/scsi/megasas.c | 2 +- > net/dump.c | 2 +- > softmmu/rtc.c | 2 +- > 24 files changed, 80 insertions(+), 25 deletions(-) > create mode 100644 include/sysemu/rtc.h > > diff --git a/include/qemu-common.h b/include/qemu-common.h > index 73bcf763ed8..bed0b06a3d2 100644 > --- a/include/qemu-common.h > +++ b/include/qemu-common.h > @@ -26,9 +26,6 @@ > int qemu_main(int argc, char **argv, char **envp); > #endif > > -void qemu_get_timedate(struct tm *tm, int offset); > -int qemu_timedate_diff(struct tm *tm); > - > void *qemu_oom_check(void *ptr); > > ssize_t qemu_write_full(int fd, const void *buf, size_t count) > diff --git a/include/sysemu/rtc.h b/include/sysemu/rtc.h > new file mode 100644 > index 00000000000..159702b45b5 > --- /dev/null > +++ b/include/sysemu/rtc.h > @@ -0,0 +1,58 @@ > +/* > + * RTC configuration and clock read > + * > + * Copyright (c) 2003-2021 QEMU contributors > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > + * of this software and associated documentation files (the "Software"), to > deal > + * in the Software without restriction, including without limitation the > rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#ifndef SYSEMU_RTC_H > +#define SYSEMU_RTC_H > + > +/** > + * qemu_get_timedate: Get the current RTC time > + * @tm: struct tm to fill in with RTC time > + * @offset: offset in seconds to adjust the RTC time by before > + * converting to struct tm format. > + * > + * This function fills in @tm with the current RTC time, as adjusted > + * by @offset (for example, if @offset is 3600 then the returned time/date > + * will be one hour further ahead than the current RTC time). > + * > + * The usual use is by RTC device models, which should call this function > + * to find the time/date value that they should return to the guest > + * when it reads the RTC registers. > + * > + * The behaviour of the clock whose value this function returns will > + * depend on the -rtc command line option passed by the user. > + */ > +void qemu_get_timedate(struct tm *tm, int offset); > + > +/** > + * qemu_timedate_diff: Return difference between a struct tm and the RTC > + * @tm: struct tm containing the date/time to compare against > + * > + * Returns the difference in seconds between the RTC clock time > + * and the date/time specified in @tm. For example, if @tm specifies > + * a timestamp one hour further ahead than the current RTC time > + * then this function will return 3600. > + */ > +int qemu_timedate_diff(struct tm *tm);
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>