文本文件  |  62行  |  2.17 KB

# Copyright 2018 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

include <linux/rtc.h>

resource fd_rtc[fd]

syz_open_dev$rtc(dev ptr[in, string["/dev/rtc#"]], id intptr, flags flags[open_flags]) fd_rtc

ioctl$RTC_AIE_OFF(fd fd_rtc, cmd const[RTC_AIE_OFF])
ioctl$RTC_AIE_ON(fd fd_rtc, cmd const[RTC_AIE_ON])
ioctl$RTC_PIE_OFF(fd fd_rtc, cmd const[RTC_PIE_OFF])
ioctl$RTC_PIE_ON(fd fd_rtc, cmd const[RTC_PIE_ON])
ioctl$RTC_UIE_OFF(fd fd_rtc, cmd const[RTC_UIE_OFF])
ioctl$RTC_UIE_ON(fd fd_rtc, cmd const[RTC_UIE_ON])
ioctl$RTC_WIE_ON(fd fd_rtc, cmd const[RTC_WIE_ON])
ioctl$RTC_WIE_OFF(fd fd_rtc, cmd const[RTC_WIE_OFF])
ioctl$RTC_ALM_READ(fd fd_rtc, cmd const[RTC_ALM_READ], arg ptr[out, rtc_time])
ioctl$RTC_ALM_SET(fd fd_rtc, cmd const[RTC_ALM_SET], arg ptr[in, rtc_time])
ioctl$RTC_RD_TIME(fd fd_rtc, cmd const[RTC_RD_TIME], arg ptr[out, rtc_time])
ioctl$RTC_SET_TIME(fd fd_rtc, cmd const[RTC_SET_TIME], arg ptr[in, rtc_time])
ioctl$RTC_IRQP_READ(fd fd_rtc, cmd const[RTC_IRQP_READ], arg ptr[out, intptr])
ioctl$RTC_IRQP_SET(fd fd_rtc, cmd const[RTC_IRQP_SET], arg intptr[1:RTC_MAX_FREQ])
ioctl$RTC_EPOCH_READ(fd fd_rtc, cmd const[RTC_EPOCH_READ], arg ptr[out, intptr])
ioctl$RTC_EPOCH_SET(fd fd_rtc, cmd const[RTC_EPOCH_SET], arg intptr)
ioctl$RTC_WKALM_RD(fd fd_rtc, cmd const[RTC_WKALM_RD], arg ptr[out, rtc_wkalrm])
ioctl$RTC_WKALM_SET(fd fd_rtc, cmd const[RTC_WKALM_SET], arg ptr[in, rtc_wkalrm])
ioctl$RTC_PLL_GET(fd fd_rtc, cmd const[RTC_PLL_GET], arg ptr[out, rtc_pll_info])
ioctl$RTC_PLL_SET(fd fd_rtc, cmd const[RTC_PLL_SET], arg ptr[in, rtc_pll_info])
ioctl$RTC_VL_READ(fd fd_rtc, cmd const[RTC_VL_READ], arg ptr[out, int32])
ioctl$RTC_VL_CLR(fd fd_rtc, cmd const[RTC_VL_CLR])

rtc_time {
	tm_sec		int32[0:60]
	tm_min		int32[0:59]
	tm_hour		int32[0:23]
	tm_mday		int32[1:31]
	tm_mon		int32[0:11]
	tm_year		int32
	tm_wday		int32[0:6]
	tm_yday		int32[0:365]
	tm_isdst	flags[rtc_isdst, int32]
}

rtc_wkalrm {
	enabled	bool8
	pending	bool8
	time	rtc_time
}

rtc_pll_info {
	pll_ctrl	int32
	pll_value	int32
	pll_max		int32
	pll_min		int32
	pll_posmult	int32
	pll_negmult	int32
	pll_clock	intptr
}

rtc_isdst = 0, 1, -1