/* * Copyright (c) 2022 Bjarki Arge Andreasen * * SPDX-License-Identifier: Apache-2.0 */ #include #include static inline int z_vrfy_rtc_set_time(const struct device *dev, const struct rtc_time *timeptr) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, set_time)); K_OOPS(K_SYSCALL_MEMORY_READ(timeptr, sizeof(struct rtc_time))); return z_impl_rtc_set_time(dev, timeptr); } #include static inline int z_vrfy_rtc_get_time(const struct device *dev, struct rtc_time *timeptr) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, get_time)); K_OOPS(K_SYSCALL_MEMORY_WRITE(timeptr, sizeof(struct rtc_time))); return z_impl_rtc_get_time(dev, timeptr); } #include #ifdef CONFIG_RTC_ALARM static inline int z_vrfy_rtc_alarm_get_supported_fields(const struct device *dev, uint16_t id, uint16_t *mask) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, alarm_get_supported_fields)); K_OOPS(K_SYSCALL_MEMORY_WRITE(mask, sizeof(uint16_t))); return z_impl_rtc_alarm_get_supported_fields(dev, id, mask); } #include static inline int z_vrfy_rtc_alarm_set_time(const struct device *dev, uint16_t id, uint16_t mask, const struct rtc_time *timeptr) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, alarm_set_time)); K_OOPS(K_SYSCALL_MEMORY_READ(timeptr, sizeof(struct rtc_time))); return z_impl_rtc_alarm_set_time(dev, id, mask, timeptr); } #include static inline int z_vrfy_rtc_alarm_get_time(const struct device *dev, uint16_t id, uint16_t *mask, struct rtc_time *timeptr) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, alarm_get_time)); K_OOPS(K_SYSCALL_MEMORY_WRITE(mask, sizeof(uint16_t))); K_OOPS(K_SYSCALL_MEMORY_WRITE(timeptr, sizeof(struct rtc_time))); return z_impl_rtc_alarm_get_time(dev, id, mask, timeptr); } #include static inline int z_vrfy_rtc_alarm_is_pending(const struct device *dev, uint16_t id) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, alarm_is_pending)); return z_impl_rtc_alarm_is_pending(dev, id); } #include #endif /* CONFIG_RTC_ALARM */ #ifdef CONFIG_RTC_CALIBRATION static inline int z_vrfy_rtc_set_calibration(const struct device *dev, int32_t calibration) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, set_calibration)); return z_impl_rtc_set_calibration(dev, calibration); } #include static inline int z_vrfy_rtc_get_calibration(const struct device *dev, int32_t *calibration) { K_OOPS(K_SYSCALL_DRIVER_RTC(dev, get_calibration)); K_OOPS(K_SYSCALL_MEMORY_WRITE(calibration, sizeof(int32_t))); return z_impl_rtc_get_calibration(dev, calibration); } #include #endif /* CONFIG_RTC_CALIBRATION */