aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorNecip Fazil Yildiran <necip@google.com>2020-08-12 20:40:54 +0000
committerDmitry Vyukov <dvyukov@google.com>2020-08-13 13:50:25 +0200
commitcc59e7e4adf110e2ddd4f8ae57df8ecc7b369b38 (patch)
treef5a33e869b653be70f7141f30057d4ff26f83395 /sys
parentf5442bde55872d703f184f8617329f706bad8149 (diff)
sys/linux: use per-field directions in descriptions
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/bpf.txt50
-rw-r--r--sys/linux/dev_dri.txt127
-rw-r--r--sys/linux/dev_infiniband_rdma.txt3
-rw-r--r--sys/linux/dev_ion.txt8
-rw-r--r--sys/linux/dev_kvm.txt6
-rw-r--r--sys/linux/dev_usbmon_ppc64le.const8
-rw-r--r--sys/linux/dev_video4linux.txt6
-rw-r--r--sys/linux/fs_ioctl_fscrypt.txt3
-rw-r--r--sys/linux/io_uring.txt21
9 files changed, 129 insertions, 103 deletions
diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt
index b45df8001..b9fd9f21a 100644
--- a/sys/linux/bpf.txt
+++ b/sys/linux/bpf.txt
@@ -444,31 +444,23 @@ bpf_test_prog_arg {
}
bpf_prog_get_next_id_arg {
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
- start int32
-# Output field:
- next_id bpf_prog_id
+ start int32 (in)
+ next_id bpf_prog_id (out)
}
bpf_map_get_next_id_arg {
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
- start int32
-# Output field:
- next_id bpf_map_id
+ start int32 (in)
+ next_id bpf_map_id (out)
}
bpf_btf_get_next_id_arg {
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
- start int32
-# Output field:
- next_id bpf_btf_id
+ start int32 (in)
+ next_id bpf_btf_id (out)
}
bpf_link_get_next_id_arg {
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
- start int32
-# Output field:
- next_id bpf_link_id[opt]
+ start int32 (in)
+ next_id bpf_link_id (out)
}
bpf_prog_get_fd_by_id_arg {
@@ -535,15 +527,15 @@ bpf_map_info {
} [align[8]]
bpf_get_btf_info_arg {
- btf fd_btf
- len len[info, int32]
+ btf fd_btf (in)
+ len len[info, int32] (in)
info ptr64[inout, bpf_btf_info]
}
bpf_btf_info {
btf ptr64[out, array[int8]]
btf_size bytesize[btf, int32]
- id bpf_btf_id[opt]
+ id bpf_btf_id (out)
} [align[8]]
bpf_prog_query {
@@ -736,17 +728,15 @@ bpf_btf_strings {
bpf_btf_strings_elem = 'a', '0', '_', '.', 0
bpf_task_fd_query {
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
- pid pid
- fd fd_perf_base
- flags const[0, int32]
- buf_len bytesize[buf, int32]
- buf ptr64[in, string]
-# These are output fields:
- prog_id bpf_prog_id[opt]
- fd_type const[0, int32]
- probe_offset const[0, int64]
- probe_addr const[0, int64]
+ pid pid (in)
+ fd fd_perf_base (in)
+ flags const[0, int32] (in)
+ buf_len bytesize[buf, int32] (in)
+ buf ptr64[in, string] (in)
+ prog_id bpf_prog_id (out)
+ fd_type int32 (out)
+ probe_offset int64 (out)
+ probe_addr int64 (out)
}
bpf_map_type = BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_STACK_TRACE, BPF_MAP_TYPE_CGROUP_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, BPF_MAP_TYPE_LPM_TRIE, BPF_MAP_TYPE_ARRAY_OF_MAPS, BPF_MAP_TYPE_HASH_OF_MAPS, BPF_MAP_TYPE_DEVMAP, BPF_MAP_TYPE_SOCKMAP, BPF_MAP_TYPE_CPUMAP, BPF_MAP_TYPE_XSKMAP, BPF_MAP_TYPE_SOCKHASH, BPF_MAP_TYPE_CGROUP_STORAGE, BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, BPF_MAP_TYPE_QUEUE, BPF_MAP_TYPE_STACK, BPF_MAP_TYPE_SK_STORAGE, BPF_MAP_TYPE_DEVMAP_HASH, BPF_MAP_TYPE_STRUCT_OPS, BPF_MAP_TYPE_RINGBUF
diff --git a/sys/linux/dev_dri.txt b/sys/linux/dev_dri.txt
index a9dea610a..6e30f9e97 100644
--- a/sys/linux/dev_dri.txt
+++ b/sys/linux/dev_dri.txt
@@ -27,7 +27,7 @@ ioctl$DRM_IOCTL_VERSION(fd fd_dri, cmd const[DRM_IOCTL_VERSION], arg ptr[in, drm
ioctl$DRM_IOCTL_GET_UNIQUE(fd fd_dri, cmd const[DRM_IOCTL_GET_UNIQUE], arg ptr[in, drm_unique_out])
ioctl$DRM_IOCTL_GET_MAGIC(fd fd_dri, cmd const[DRM_IOCTL_GET_MAGIC], arg ptr[in, int32])
ioctl$DRM_IOCTL_IRQ_BUSID(fd fd_dri, cmd const[DRM_IOCTL_IRQ_BUSID], arg ptr[in, drm_irq_busid])
-ioctl$DRM_IOCTL_GET_MAP(fd fd_dri, cmd const[DRM_IOCTL_GET_MAP], arg ptr[in, drm_map])
+ioctl$DRM_IOCTL_GET_MAP(fd fd_dri, cmd const[DRM_IOCTL_GET_MAP], arg ptr[inout, drm_map$DRM_IOCTL_GET_MAP])
ioctl$DRM_IOCTL_GET_CLIENT(fd fd_dri, cmd const[DRM_IOCTL_GET_CLIENT], arg ptr[inout, drm_client])
ioctl$DRM_IOCTL_GET_STATS(fd fd_dri, cmd const[DRM_IOCTL_GET_STATS], arg buffer[out])
ioctl$DRM_IOCTL_GET_CAP(fd fd_dri, cmd const[DRM_IOCTL_GET_CAP], arg ptr[in, drm_get_cap])
@@ -35,8 +35,8 @@ ioctl$DRM_IOCTL_SET_CLIENT_CAP(fd fd_dri, cmd const[DRM_IOCTL_SET_CLIENT_CAP], a
ioctl$DRM_IOCTL_SET_VERSION(fd fd_dri, cmd const[DRM_IOCTL_SET_VERSION], arg ptr[in, drm_set_version])
ioctl$DRM_IOCTL_SET_UNIQUE(fd fd_dri, cmd const[DRM_IOCTL_SET_UNIQUE], arg ptr[in, drm_unique_in])
ioctl$DRM_IOCTL_AUTH_MAGIC(fd fd_dri, cmd const[DRM_IOCTL_AUTH_MAGIC], arg ptr[in, int32])
-ioctl$DRM_IOCTL_ADD_MAP(fd fd_dri, cmd const[DRM_IOCTL_ADD_MAP], arg ptr[in, drm_map])
-ioctl$DRM_IOCTL_RM_MAP(fd fd_dri, cmd const[DRM_IOCTL_RM_MAP], arg ptr[in, drm_map])
+ioctl$DRM_IOCTL_ADD_MAP(fd fd_dri, cmd const[DRM_IOCTL_ADD_MAP], arg ptr[inout, drm_map$DRM_IOCTL_ADD_MAP])
+ioctl$DRM_IOCTL_RM_MAP(fd fd_dri, cmd const[DRM_IOCTL_RM_MAP], arg ptr[in, drm_map$DRM_IOCTL_RM_MAP])
ioctl$DRM_IOCTL_SET_SAREA_CTX(fd fd_dri, cmd const[DRM_IOCTL_SET_SAREA_CTX], arg ptr[in, drm_ctx_priv_map])
ioctl$DRM_IOCTL_GET_SAREA_CTX(fd fd_dri, cmd const[DRM_IOCTL_GET_SAREA_CTX], arg ptr[in, drm_ctx_priv_map])
ioctl$DRM_IOCTL_SET_MASTER(fd fd_dri, cmd const[DRM_IOCTL_SET_MASTER])
@@ -60,8 +60,8 @@ ioctl$DRM_IOCTL_AGP_ACQUIRE(fd fd_dri, cmd const[DRM_IOCTL_AGP_ACQUIRE])
ioctl$DRM_IOCTL_AGP_RELEASE(fd fd_dri, cmd const[DRM_IOCTL_AGP_RELEASE])
ioctl$DRM_IOCTL_AGP_ENABLE(fd fd_dri, cmd const[DRM_IOCTL_AGP_ENABLE], arg ptr[in, int32])
ioctl$DRM_IOCTL_AGP_INFO(fd fd_dri, cmd const[DRM_IOCTL_AGP_INFO], arg buffer[out])
-ioctl$DRM_IOCTL_AGP_ALLOC(fd fd_dri, cmd const[DRM_IOCTL_AGP_ALLOC], arg ptr[inout, drm_agp_buffer])
-ioctl$DRM_IOCTL_AGP_FREE(fd fd_dri, cmd const[DRM_IOCTL_AGP_FREE], arg ptr[in, drm_agp_buffer])
+ioctl$DRM_IOCTL_AGP_ALLOC(fd fd_dri, cmd const[DRM_IOCTL_AGP_ALLOC], arg ptr[inout, drm_agp_buffer$DRM_IOCTL_AGP_ALLOC])
+ioctl$DRM_IOCTL_AGP_FREE(fd fd_dri, cmd const[DRM_IOCTL_AGP_FREE], arg ptr[in, drm_agp_buffer$DRM_IOCTL_AGP_FREE])
ioctl$DRM_IOCTL_AGP_BIND(fd fd_dri, cmd const[DRM_IOCTL_AGP_BIND], arg ptr[in, drm_agp_binding])
ioctl$DRM_IOCTL_AGP_UNBIND(fd fd_dri, cmd const[DRM_IOCTL_AGP_UNBIND], arg ptr[in, drm_agp_binding])
ioctl$DRM_IOCTL_SG_ALLOC(fd fd_dri, cmd const[DRM_IOCTL_SG_ALLOC], arg ptr[in, drm_scatter_gather])
@@ -72,8 +72,8 @@ ioctl$DRM_IOCTL_GEM_OPEN(fd fd_dri, cmd const[DRM_IOCTL_GEM_OPEN], arg ptr[inout
ioctl$DRM_IOCTL_GEM_CLOSE(fd fd_dri, cmd const[DRM_IOCTL_GEM_CLOSE], arg ptr[in, drm_gem_close])
ioctl$DRM_IOCTL_GEM_FLINK(fd fd_dri, cmd const[DRM_IOCTL_GEM_FLINK], arg ptr[inout, drm_gem_flink])
ioctl$DRM_IOCTL_MODE_GETRESOURCES(fd fd_dri, cmd const[DRM_IOCTL_MODE_GETRESOURCES], arg ptr[in, drm_mode_card_res])
-ioctl$DRM_IOCTL_PRIME_HANDLE_TO_FD(fd fd_dri, cmd const[DRM_IOCTL_PRIME_HANDLE_TO_FD], arg ptr[inout, drm_prime_handle])
-ioctl$DRM_IOCTL_PRIME_FD_TO_HANDLE(fd fd_dri, cmd const[DRM_IOCTL_PRIME_FD_TO_HANDLE], arg ptr[inout, drm_prime_handle])
+ioctl$DRM_IOCTL_PRIME_HANDLE_TO_FD(fd fd_dri, cmd const[DRM_IOCTL_PRIME_HANDLE_TO_FD], arg ptr[inout, drm_prime_handle$DRM_IOCTL_PRIME_HANDLE_TO_FD])
+ioctl$DRM_IOCTL_PRIME_FD_TO_HANDLE(fd fd_dri, cmd const[DRM_IOCTL_PRIME_FD_TO_HANDLE], arg ptr[inout, drm_prime_handle$DRM_IOCTL_PRIME_FD_TO_HANDLE])
ioctl$DRM_IOCTL_MODE_GETPLANERESOURCES(fd fd_dri, cmd const[DRM_IOCTL_MODE_GETPLANERESOURCES], arg ptr[in, drm_mode_get_plane_res])
ioctl$DRM_IOCTL_MODE_GETCRTC(fd fd_dri, cmd const[DRM_IOCTL_MODE_GETCRTC], arg ptr[in, drm_mode_crtc])
ioctl$DRM_IOCTL_MODE_SETCRTC(fd fd_dri, cmd const[DRM_IOCTL_MODE_SETCRTC], arg ptr[in, drm_mode_crtc])
@@ -249,8 +249,7 @@ drm_mode_get_blob {
drm_mode_create_blob {
data ptr64[in, array[int8]]
length len[data, int32]
-# Output:
- blob_id drm_blob_id[opt]
+ blob_id drm_blob_id (out)
}
drm_mode_destroy_blob {
@@ -318,26 +317,26 @@ drm_clip_rect {
drm_mode_fb_dirty_flags = DRM_MODE_FB_DIRTY_ANNOTATE_COPY, DRM_MODE_FB_DIRTY_ANNOTATE_FILL
ioctl$DRM_IOCTL_MODE_CREATE_DUMB(fd fd_dri, cmd const[DRM_IOCTL_MODE_CREATE_DUMB], arg ptr[inout, drm_mode_create_dumb])
-ioctl$DRM_IOCTL_MODE_MAP_DUMB(fd fd_dri, cmd const[DRM_IOCTL_MODE_MAP_DUMB], arg ptr[in, drm_mode_map_dumb])
+ioctl$DRM_IOCTL_MODE_MAP_DUMB(fd fd_dri, cmd const[DRM_IOCTL_MODE_MAP_DUMB], arg ptr[inout, drm_mode_map_dumb])
ioctl$DRM_IOCTL_MODE_DESTROY_DUMB(fd fd_dri, cmd const[DRM_IOCTL_MODE_DESTROY_DUMB], arg ptr[in, drm_mode_destroy_dumb])
resource drm_dumb_handle[int32]
drm_mode_create_dumb {
- height int32
- width int32
- bpp int32
- flags int32
-# Outputs:
- handle drm_dumb_handle[opt]
- pitch const[0, int32]
- size const[0, int64]
+ height int32 (in)
+ width int32 (in)
+ bpp int32 (in)
+# flags does not seem to be used by any driver.
+ flags const[0, int32]
+ handle drm_dumb_handle (out)
+ pitch int32 (out)
+ size int64 (out)
}
drm_mode_map_dumb {
- handle drm_dumb_handle
+ handle drm_dumb_handle (in)
pad const[0, int32]
- offset const[0, int64]
+ offset int64 (out)
}
drm_mode_destroy_dumb {
@@ -389,7 +388,7 @@ drm_mode_atomic_flags = DRM_MODE_PAGE_FLIP_EVENT, DRM_MODE_ATOMIC_TEST_ONLY, DRM
#ioctl$DRM_IOCTL_CRTC_GET_SEQUENCE(fd fd_dri, cmd const[DRM_IOCTL_CRTC_GET_SEQUENCE], arg ptr[in, XXXXX])
#ioctl$DRM_IOCTL_CRTC_QUEUE_SEQUENCE(fd fd_dri, cmd const[DRM_IOCTL_CRTC_QUEUE_SEQUENCE], arg ptr[in, XXXXX])
-ioctl$DRM_IOCTL_MODE_CREATE_LEASE(fd fd_dri, cmd const[DRM_IOCTL_MODE_CREATE_LEASE], arg ptr[in, drm_mode_create_lease])
+ioctl$DRM_IOCTL_MODE_CREATE_LEASE(fd fd_dri, cmd const[DRM_IOCTL_MODE_CREATE_LEASE], arg ptr[inout, drm_mode_create_lease])
ioctl$DRM_IOCTL_MODE_LIST_LESSEES(fd fd_dri, cmd const[DRM_IOCTL_MODE_LIST_LESSEES], arg ptr[in, drm_mode_list_lessees])
ioctl$DRM_IOCTL_MODE_GET_LEASE(fd fd_dri, cmd const[DRM_IOCTL_MODE_GET_LEASE], arg ptr[in, drm_mode_get_lease])
ioctl$DRM_IOCTL_MODE_REVOKE_LEASE(fd fd_dri, cmd const[DRM_IOCTL_MODE_REVOKE_LEASE], arg ptr[in, drm_mode_revoke_lease])
@@ -398,12 +397,11 @@ resource drm_lessee_id[int32]
drm_mode_create_lease {
# TODO: what are these "object ids"? where does one get these?
- object_ids ptr64[in, array[int32]]
- object_count len[object_ids, int32]
- flags flags[drm_mode_create_lease_flag, int32]
-# Outputs:
- lessee_id drm_lessee_id[opt]
- fd fd[opt]
+ object_ids ptr64[in, array[int32]] (in)
+ object_count len[object_ids, int32] (in)
+ flags flags[drm_mode_create_lease_flag, int32] (in)
+ lessee_id drm_lessee_id (out)
+ fd fd (out)
}
drm_mode_create_lease_flag = O_CLOEXEC, O_NONBLOCK
@@ -453,13 +451,32 @@ drm_irq_busid {
func int32
}
-drm_map {
- off vma[opt]
- size intptr
- type flags[drm_map_type, int32]
- flags flags[drm_map_flags, int32]
+drm_map$DRM_IOCTL_GET_MAP {
+ off vma (inout)
+ size intptr (out)
+ type int32 (out)
+ flags int32 (out)
+ handle vma (out)
+ mtrr int32 (out)
+}
+
+drm_map$DRM_IOCTL_ADD_MAP {
+ off vma (in)
+ size intptr (in)
+ type flags[drm_map_type, int32] (in)
+ flags flags[drm_map_flags, int32] (in)
+ handle vma (out)
+ mtrr int32 (out)
+}
+
+drm_map$DRM_IOCTL_RM_MAP {
+# Only handle is used.
+ off const[0, intptr]
+ size const[0, intptr]
+ type const[0, int32]
+ flags const[0, int32]
handle vma
- mtrr int32
+ mtrr const[0, int32]
}
drm_client {
@@ -551,11 +568,19 @@ drm_control {
irq int32
}
-drm_agp_buffer {
- size intptr
- handle drm_agp_handle[opt]
- type flags[drm_agp_mem_type, intptr]
- physic intptr
+drm_agp_buffer$DRM_IOCTL_AGP_ALLOC {
+ size intptr (in)
+ handle drm_agp_handle (out)
+ type flags[drm_agp_mem_type, intptr] (in)
+ physic intptr (out)
+}
+
+drm_agp_buffer$DRM_IOCTL_AGP_FREE {
+# Only handle is used.
+ size const[0, intptr]
+ handle drm_agp_handle
+ type const[0, intptr]
+ physic const[0, intptr]
}
drm_agp_binding {
@@ -580,11 +605,9 @@ drm_modeset_ctl {
}
drm_gem_open {
-# input:
- name drm_gem_name[opt]
-# output:
- handle drm_gem_handle[opt]
- size int64
+ name drm_gem_name (in)
+ handle drm_gem_handle (out)
+ size int64 (out)
}
drm_gem_close {
@@ -593,8 +616,8 @@ drm_gem_close {
}
drm_gem_flink {
- handle drm_gem_handle[opt]
- name drm_gem_name[opt]
+ handle drm_gem_handle (in)
+ name drm_gem_name (out)
}
drm_mode_card_res {
@@ -612,10 +635,16 @@ drm_mode_card_res {
minh const[0, int32]
}
-drm_prime_handle {
- handle drm_gem_handle[opt]
- flags flags[dup_flags, int32]
- fd fd_dri[opt]
+drm_prime_handle$DRM_IOCTL_PRIME_HANDLE_TO_FD {
+ handle drm_gem_handle (in)
+ flags flags[dup_flags, int32] (in)
+ fd fd_dri (out)
+}
+
+drm_prime_handle$DRM_IOCTL_PRIME_FD_TO_HANDLE {
+ handle drm_gem_handle (out)
+ flags const[0, int32]
+ fd fd_dri (in)
}
drm_mode_crtc {
diff --git a/sys/linux/dev_infiniband_rdma.txt b/sys/linux/dev_infiniband_rdma.txt
index a34ef6090..8375cb591 100644
--- a/sys/linux/dev_infiniband_rdma.txt
+++ b/sys/linux/dev_infiniband_rdma.txt
@@ -1331,7 +1331,10 @@ ib_uverbs_create_counters_cmd {
flags flags[ib_uverbs_attr_flags, int16]
elem_id int8
reserved2 const[0x0, int8]
+# TODO: reserved3 seems unnecessary: https://elixir.bootlin.com/linux/latest/source/include/uapi/rdma/rdma_user_ioctl_cmds.h#L58
reserved3 const[0x0, int16]
+# TODO: Is the following field really optional, or, is opt used as a workaround?
+# Now that we have per-field directions, this can be fixed if it is the second case.
vcontext_handle vcontext_handle[opt]
more_data int32
}
diff --git a/sys/linux/dev_ion.txt b/sys/linux/dev_ion.txt
index eeb942064..464107048 100644
--- a/sys/linux/dev_ion.txt
+++ b/sys/linux/dev_ion.txt
@@ -17,10 +17,10 @@ ioctl$ION_IOC_HEAP_QUERY(fd fd_ion, cmd const[ION_IOC_HEAP_QUERY], arg ptr[inout
ioctl$DMA_BUF_IOCTL_SYNC(fd fd_dma_buf, cmd const[DMA_BUF_IOCTL_SYNC], arg ptr[in, flags[dma_buf_sync_flags, int64]])
ion_allocation_data {
- len int64
- heap_id_mask flags[ion_heap_mask, int32]
- flags flags[ion_alloc_flags, int32]
- fd fd_dma_buf[opt]
+ len int64 (in)
+ heap_id_mask flags[ion_heap_mask, int32] (in)
+ flags flags[ion_alloc_flags, int32] (in)
+ fd fd_dma_buf (out)
unused const[0, int32]
}
diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt
index 290191a45..a38da6086 100644
--- a/sys/linux/dev_kvm.txt
+++ b/sys/linux/dev_kvm.txt
@@ -305,9 +305,9 @@ kvm_device_attr {
}
kvm_create_device {
- type flags[kvm_device_type, int32]
- fd fd_kvmdev[opt]
- flags flags[kvm_device_flags, int32]
+ type flags[kvm_device_type, int32] (in)
+ fd fd_kvmdev (out)
+ flags flags[kvm_device_flags, int32] (in)
}
kvm_s390_interrupt {
diff --git a/sys/linux/dev_usbmon_ppc64le.const b/sys/linux/dev_usbmon_ppc64le.const
index 2944a8b42..49db244c4 100644
--- a/sys/linux/dev_usbmon_ppc64le.const
+++ b/sys/linux/dev_usbmon_ppc64le.const
@@ -1,7 +1,7 @@
# AUTOGENERATED FILE
-BUFF_MAX = 1245184
-BUFF_MIN = 65536
-CHUNK_SIZE = 65536
+BUFF_MAX = 1228800
+BUFF_MIN = 8192
+CHUNK_SIZE = 4096
MON_IOCG_STATS = 1074303491
MON_IOCH_MFLUSH = 536908296
MON_IOCQ_RING_SIZE = 536908293
@@ -11,7 +11,7 @@ MON_IOCX_GET = 2149093894
MON_IOCX_GETX = 2149093898
MON_IOCX_MFETCH = 3222311431
MON_IOC_MAGIC = 146
-PAGE_SIZE = 65536
+PAGE_SIZE = 4096
SETUP_LEN = 8
__NR_ioctl = 54
__NR_mmap = 90
diff --git a/sys/linux/dev_video4linux.txt b/sys/linux/dev_video4linux.txt
index 138add756..e0c49e035 100644
--- a/sys/linux/dev_video4linux.txt
+++ b/sys/linux/dev_video4linux.txt
@@ -273,6 +273,8 @@ type v4l2_requestbuffers[BUF_TYPE] {
reserved const[0, int32]
}
+# TODO: The field directions needs to be defined. Recursively, v4l2_buffer_union,
+# v4l2_plane, v4l2_plane_union needs checking.
type v4l2_buffer[BUF_TYPE] {
index int32
type flags[BUF_TYPE, int32]
@@ -343,6 +345,8 @@ type v4l2_exportbuffer[BUF_TYPE] {
index int32
plane int32
flags flags[pipe_flags, int32]
+# TODO: This should've been out, look into the problem. Otherwise, the resource is
+# never used.
fd fd_dmabuf[opt]
reserved array[const[0, int32], 11]
}
@@ -499,7 +503,7 @@ v4l2_ext_controls {
ctrl_class flags[v4l2_ext_ctrl_class, int32]
count int32
error_idx int32
- request_fd fd[opt]
+ request_fd fd[opt] (in)
reserved const[0, int32]
controls ptr[inout, v4l2_ext_control]
}
diff --git a/sys/linux/fs_ioctl_fscrypt.txt b/sys/linux/fs_ioctl_fscrypt.txt
index 4e48fc2ff..3083db3d4 100644
--- a/sys/linux/fs_ioctl_fscrypt.txt
+++ b/sys/linux/fs_ioctl_fscrypt.txt
@@ -66,6 +66,7 @@ fscrypt_key_specifier {
fscrypt_key_specifier_type = FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR, FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER
+# TODO: The direction of the payload changes with regards to the key specifier type
fscrypt_key_specifier_payload [
reserved array[int8, 32]
descriptor fscrypt_key_descriptor
@@ -81,7 +82,7 @@ fscrypt_provisioning_key_payload {
fscrypt_add_key_arg {
key_spec fscrypt_key_specifier
raw_size len[raw, int32]
- key_id fscrypt_provisioning_key[opt]
+ key_id fscrypt_provisioning_key[opt] (in)
reserved array[const[0, int32], 8]
raw array[int8]
}
diff --git a/sys/linux/io_uring.txt b/sys/linux/io_uring.txt
index f4de4a0a9..86e31e251 100644
--- a/sys/linux/io_uring.txt
+++ b/sys/linux/io_uring.txt
@@ -96,20 +96,19 @@ io_uring_files_update {
fds ptr64[in, array[fd]]
}
-# NEED: part of fields are input here and part are output. We can't express this yet (#245).
io_uring_params {
-# sq_entries, cq_entries, features, wq_fd, sq_off, and cq_off are set by the kernel
- sq_entries const[0, int32]
- cq_entries int32[0:IORING_MAX_CQ_ENTRIES]
- flags flags[io_uring_setup_flags, int32]
- sq_thread_cpu int32[0:3]
- sq_thread_idle int32[0:1000]
- features const[0, int32]
- wq_fd fd_io_uring[opt]
+ sq_entries int32 (out)
+ cq_entries int32[0:IORING_MAX_CQ_ENTRIES] (inout)
+ flags flags[io_uring_setup_flags, int32] (in)
+ sq_thread_cpu int32[0:3] (in)
+ sq_thread_idle int32[0:1000] (in)
+ features int32 (out)
+ wq_fd fd_io_uring[opt] (in)
resv array[const[0, int32], 3]
# We don't really use them (they are hard-coded). Thus, just pass some memory region of their size.
- sq_off array[const[0, int32], 10]
- cq_off array[const[0, int32], 10]
+# TODO: Now that per-field directions is supported, can we avoid using hard-coded values for offsets?
+ sq_off array[int32, 10] (out)
+ cq_off array[int32, 10] (out)
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #