github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/sys/linux/dev_msm.txt (about) 1 # Copyright 2021 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 # See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/msm_drm.h for upstream definitions 5 6 include <drm/msm_drm.h> 7 8 resource fd_msm[fd] 9 resource msm_submitqueue_id[int32] 10 resource msm_fence_id[int32] 11 12 openat$msm(fd const[AT_FDCWD], file ptr[in, string["/dev/msm"]], flags flags[open_flags], mode const[0]) fd_msm 13 14 ioctl$DRM_IOCTL_MSM_GET_PARAM(fd fd_msm, cmd const[DRM_IOCTL_MSM_GET_PARAM], arg ptr[inout, drm_msm_param$DRM_IOCTL_MSM_GET_PARAM]) 15 ioctl$DRM_IOCTL_MSM_GEM_NEW(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_NEW], arg ptr[inout, drm_msm_gem_new]) 16 ioctl$DRM_IOCTL_MSM_GEM_INFO(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_INFO], arg ptr[inout, drm_msm_gem_info]) 17 ioctl$DRM_IOCTL_MSM_GEM_CPU_PREP(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_CPU_PREP], arg ptr[in, drm_msm_gem_cpu_prep]) 18 ioctl$DRM_IOCTL_MSM_GEM_CPU_FINI(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_CPU_FINI], arg ptr[in, drm_msm_gem_cpu_fini]) 19 ioctl$DRM_IOCTL_MSM_GEM_SUBMIT(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_SUBMIT], arg ptr[inout, drm_msm_gem_submit]) 20 ioctl$DRM_IOCTL_MSM_WAIT_FENCE(fd fd_msm, cmd const[DRM_IOCTL_MSM_WAIT_FENCE], arg ptr[in, drm_msm_wait_fence]) 21 ioctl$DRM_IOCTL_MSM_GEM_MADVISE(fd fd_msm, cmd const[DRM_IOCTL_MSM_GEM_MADVISE], arg ptr[inout, drm_msm_gem_madvise]) 22 ioctl$DRM_IOCTL_MSM_SUBMITQUEUE_NEW(fd fd_msm, cmd const[DRM_IOCTL_MSM_SUBMITQUEUE_NEW], arg ptr[inout, drm_msm_submitqueue]) 23 ioctl$DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE(fd fd_msm, cmd const[DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE], arg ptr[in, msm_submitqueue_id]) 24 ioctl$DRM_IOCTL_MSM_SUBMITQUEUE_QUERY(fd fd_msm, cmd const[DRM_IOCTL_MSM_SUBMITQUEUE_QUERY], arg ptr[inout, drm_msm_submitqueue_query]) 25 ioctl$DRM_IOCTL_MSM_SET_PARAM(fd fd_msm, cmd const[DRM_IOCTL_MSM_SET_PARAM], arg ptr[in, drm_msm_param$DRM_IOCTL_MSM_SET_PARAM]) 26 27 mmap$DRM_MSM(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_msm, offset fileoff) 28 _ = __NR_mmap2 29 30 drm_msm_gem_new { 31 size int64 32 flags flags[msm_gem_new_flags, int32] 33 handle drm_gem_handle (out) 34 } 35 36 drm_msm_gem_info { 37 handle drm_gem_handle 38 info flags[msm_gem_info_flags, int32] 39 value int64 40 len len[value, int32] 41 pad const[0, int32] 42 } 43 44 drm_msm_param$DRM_IOCTL_MSM_GET_PARAM { 45 pipe flags[msm_pipe_flags, int32] 46 param flags[msm_param_flags, int32] 47 value int64 48 } 49 50 drm_msm_param$DRM_IOCTL_MSM_SET_PARAM { 51 pipe flags[msm_pipe_flags, int32] 52 param flags[msm_param_set_flags, int32] 53 vallen drm_msm_param_set_union 54 pad const[0, int32] 55 } 56 57 drm_msm_param_set_union [ 58 imm drm_msm_param_set_imm 59 ptr drm_msm_param_set_ptr 60 ] 61 62 drm_msm_param_set_imm { 63 value int64 64 len const[0, int32] 65 } 66 67 drm_msm_param_set_ptr { 68 value ptr64[in, array[int8]] 69 len len[value, int32] 70 } 71 72 drm_msm_timespec { 73 tv_sec int64 74 tv_nsec int64 75 } 76 77 drm_msm_gem_cpu_prep { 78 handle drm_gem_handle 79 op flags[msm_gem_cpu_prep_flags, int32] 80 timeout drm_msm_timespec (in) 81 } 82 83 drm_msm_gem_cpu_fini { 84 handle drm_gem_handle 85 } 86 87 drm_msm_gem_submit_reloc { 88 submit_offset int32 89 or int32 90 shift int32 91 reloc_idx int32 92 reloc_offset int64 93 } 94 95 drm_msm_gem_submit_cmd { 96 type flags[msm_gem_submit_cmd_flags, int32] 97 submit_idx int32 98 submit_offset int32 99 size int32[0:0x7fffffff, 4] 100 pad const[0, int32] 101 nr_relocs len[relocs, int32] 102 relocs ptr64[in, array[drm_msm_gem_submit_reloc]] 103 } 104 105 drm_msm_gem_submit_bo { 106 flags flags[msm_gem_submit_bo_flags, int32] 107 handle drm_gem_handle 108 presumed int64 109 } 110 111 drm_msm_gem_submit_syncobj { 112 handle drm_syncobj 113 flags flags[msm_gem_submit_syncobj_flags, int32] 114 point int64 115 } 116 117 drm_msm_gem_submit { 118 flags flags[msm_gem_submit_flags, int32] 119 fence msm_fence_id (out) 120 nr_bos len[bos, int32] 121 nr_cmds len[cmds, int32] 122 bos ptr64[in, array[drm_msm_gem_submit_bo]] 123 cmds ptr64[in, array[drm_msm_gem_submit_cmd]] 124 fence_fd fd_sync_file[opt] 125 queueid msm_submitqueue_id 126 in_syncobjs ptr64[in, array[drm_msm_gem_submit_syncobj]] 127 out_syncobjs ptr64[in, array[drm_msm_gem_submit_syncobj]] 128 nr_in_syncobjs len[in_syncobjs, int32] 129 nr_out_syncobjs len[out_syncobjs, int32] 130 syncobj_stride int32 131 pad const[0, int32] 132 } 133 134 drm_msm_wait_fence { 135 fence msm_fence_id 136 flags flags[msm_wait_fence_flags, int32] 137 timeout drm_msm_timespec 138 queueid msm_submitqueue_id 139 } 140 141 drm_msm_gem_madvise { 142 handle drm_gem_handle 143 madv flags[msm_gem_madvise_flags, int32] 144 retained int32 145 } 146 147 drm_msm_submitqueue { 148 flags flags[msm_submitqueue_flags, int32] 149 prio int32[0:3] 150 id msm_submitqueue_id (out) 151 } 152 153 drm_msm_submitqueue_query { 154 data ptr64[out, int8] 155 id msm_submitqueue_id (in) 156 param flags[msm_submitqueue_query_flags, int32] (in) 157 len len[data, int32] 158 pad const[0, int32] 159 } 160 161 msm_gem_new_flags = MSM_BO_SCANOUT, MSM_BO_GPU_READONLY, MSM_BO_CACHE_MASK, MSM_BO_CACHED, MSM_BO_WC, MSM_BO_UNCACHED 162 msm_gem_info_flags = MSM_INFO_GET_OFFSET, MSM_INFO_GET_IOVA, MSM_INFO_SET_NAME, MSM_INFO_GET_NAME, MSM_INFO_SET_IOVA 163 msm_param_flags = MSM_PARAM_GPU_ID, MSM_PARAM_GMEM_SIZE, MSM_PARAM_CHIP_ID, MSM_PARAM_MAX_FREQ, MSM_PARAM_TIMESTAMP, MSM_PARAM_GMEM_BASE, MSM_PARAM_NR_RINGS, MSM_PARAM_PP_PGTABLE, MSM_PARAM_FAULTS, MSM_PARAM_PRIORITIES, MSM_PARAM_SUSPENDS, MSM_PARAM_VA_START, MSM_PARAM_VA_SIZE 164 msm_param_set_flags = MSM_PARAM_SYSPROF, MSM_PARAM_COMM, MSM_PARAM_CMDLINE 165 msm_gem_cpu_prep_flags = MSM_PREP_READ, MSM_PREP_WRITE, MSM_PREP_NOSYNC, MSM_PREP_BOOST 166 msm_pipe_flags = MSM_PIPE_NONE, MSM_PIPE_2D0, MSM_PIPE_2D1, MSM_PIPE_3D0 167 msm_gem_submit_flags = MSM_PIPE_NONE, MSM_PIPE_2D0, MSM_PIPE_2D1, MSM_PIPE_3D0, MSM_SUBMIT_NO_IMPLICIT, MSM_SUBMIT_FENCE_FD_IN, MSM_SUBMIT_FENCE_FD_OUT, MSM_SUBMIT_SUDO, MSM_SUBMIT_SYNCOBJ_IN, MSM_SUBMIT_SYNCOBJ_OUT, MSM_SUBMIT_FENCE_SN_IN 168 msm_gem_submit_bo_flags = MSM_SUBMIT_BO_READ, MSM_SUBMIT_BO_WRITE, MSM_SUBMIT_BO_DUMP 169 msm_gem_submit_syncobj_flags = MSM_SYNCOBJ_RESET 170 msm_gem_submit_cmd_flags = MSM_SUBMIT_CMD_BUF, MSM_SUBMIT_CMD_IB_TARGET_BUF, MSM_SUBMIT_CMD_CTX_RESTORE_BUF 171 msm_gem_madvise_flags = MSM_MADV_WILLNEED, MSM_MADV_DONTNEED, __MSM_MADV_PURGED 172 msm_submitqueue_flags = MSM_SUBMITQUEUE_FLAGS 173 msm_submitqueue_query_flags = MSM_SUBMITQUEUE_PARAM_FAULTS 174 msm_wait_fence_flags = MSM_WAIT_FENCE_BOOST