include <asm/ioctl.h>
include <linux/fcntl.h>
include <linux/types.h>
include <include/linux/sched/rtg_ctrl.h>

resource fd_rtg_ctrl[fd]

openat$fd_rtg_ctrl(fd const[AT_FDCWD],file ptr[in,string["/proc/self/sched_rtg_ctrl"]],flags const[O_RDWR],mode const[0]) fd_rtg_ctrl
close$fd_rtg_ctrl(fd fd_rtg_ctrl)

ioctl$CMD_ID_SET_ENABLE(fd fd_rtg_ctrl,cmd const[CMD_ID_SET_ENABLE],arg ptr[inout,rtg_enable_data])
ioctl$CMD_ID_SET_RTG(fd fd_rtg_ctrl,cmd const[CMD_ID_SET_RTG],arg ptr[inout,rtg_grp_data])
ioctl$CMD_ID_SET_CONFIG(fd fd_rtg_ctrl,cmd const[CMD_ID_SET_CONFIG],arg ptr[inout,rtg_str_data])
ioctl$CMD_ID_SET_RTG_ATTR(fd fd_rtg_ctrl,cmd const[CMD_ID_SET_RTG_ATTR],arg ptr[inout,rtg_str_data])
ioctl$CMD_ID_BEGIN_FRAME_FREQ(fd fd_rtg_ctrl,cmd const[CMD_ID_BEGIN_FRAME_FREQ],arg ptr[inout,proc_state_data])
ioctl$CMD_ID_END_FRAME_FREQ(fd fd_rtg_ctrl,cmd const[CMD_ID_END_FRAME_FREQ],arg ptr[inout,proc_state_data])
ioctl$CMD_ID_END_SCENE(fd fd_rtg_ctrl,cmd const[CMD_ID_END_SCENE],arg ptr[inout,proc_state_data])

rtg_enable_data{
    enable int32
    len int32
    data ptr[inout, int8]
}

rtg_grp_data {
    rtg_cmd int32
    grp_id int32
    prio_type int32
    rt_cnt int32
    tid_num int32
    tids array[int32, 5]
}

rtg_str_data {
    type int32
    len int32
    data ptr[inout, int8]
}

proc_state_data {
    grp_id int32
    state_param int32
}
