syzkaller/sys/linux/fs_ioctl.txt
Eric Biggers a4e87d4bb6 sys/linux: update fscrypt descriptions
- For v5.4: new ioctls FS_IOC_ADD_ENCRYPTION_KEY,
  FS_IOC_REMOVE_ENCRYPTION_KEY, FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS,
  FS_IOC_GET_ENCRYPTION_KEY_STATUS, and FS_IOC_GET_ENCRYPTION_POLICY_EX.

- For v5.4: FS_IOC_SET_ENCRYPTION_POLICY now accepts an
  fscrypt_policy_v2 argument in addition to the original fscrypt_policy
  which is now called fscrypt_policy_v1.

- For v5.4: the fscrypt definitions were moved to a new header
  <linux/fscrypt.h>, and some constants were given new FSCRYPT_* names
  instead of FS_*.  Handle this, and to keep things organized similarly
  move the syzkaller descriptions to a new file fscrypt.txt.

- For v5.0: remove the removed Speck modes and add Adiantum.

- For v5.0: add the DIRECT_KEY encryption policy flag.

Also fix the argument types for FS_IOC_GET_ENCRYPTION_POLICY and
FS_IOC_GET_ENCRYPTION_PWSALT, which had been mixed up.
2019-09-19 09:38:51 +02:00

121 lines
3.2 KiB
Plaintext

# 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 <uapi/linux/fiemap.h>
include <uapi/linux/fs.h>
include <uapi/linux/fsmap.h>
include <linux/falloc.h>
ioctl$FIBMAP(fd fd, cmd const[FIBMAP], arg ptr[in, int32])
ioctl$FIGETBSZ(fd fd, cmd const[FIGETBSZ], arg ptr[out, intptr])
ioctl$FITRIM(fd fd, cmd const[FITRIM], arg ptr[in, fstrim_range])
ioctl$FICLONE(fd fd, cmd const[FICLONE], arg fd)
ioctl$FICLONERANGE(fd fd, cmd const[FICLONERANGE], arg ptr[in, file_clone_range])
ioctl$FIDEDUPERANGE(fd fd, cmd const[FIDEDUPERANGE], arg ptr[in, file_dedupe_range])
ioctl$FS_IOC_GETFLAGS(fd fd, cmd const[FS_IOC_GETFLAGS], arg ptr[out, intptr])
ioctl$FS_IOC_SETFLAGS(fd fd, cmd const[FS_IOC_SETFLAGS], arg ptr[in, intptr])
ioctl$FS_IOC_GETVERSION(fd fd, cmd const[FS_IOC_GETVERSION], arg ptr[out, intptr])
ioctl$FS_IOC_SETVERSION(fd fd, cmd const[FS_IOC_SETVERSION], arg ptr[in, intptr])
ioctl$FS_IOC_FIEMAP(fd fd, cmd const[FS_IOC_FIEMAP], v ptr[in, fiemap])
ioctl$FS_IOC_RESVSP(fd fd, cmd const[FS_IOC_RESVSP], arg ptr[in, space_resv])
ioctl$FS_IOC_FSGETXATTR(fd fd, cmd const[FS_IOC_FSGETXATTR], arg ptr[in, fsxattr])
ioctl$FS_IOC_FSSETXATTR(fd fd, cmd const[FS_IOC_FSSETXATTR], arg ptr[in, fsxattr])
ioctl$FS_IOC_GETFSLABEL(fd fd, cmd const[FS_IOC_GETFSLABEL], arg ptr[out, array[const[0, int8], FSLABEL_MAX]])
ioctl$FS_IOC_SETFSLABEL(fd fd, cmd const[FS_IOC_SETFSLABEL], arg ptr[in, array[int8, FSLABEL_MAX]])
ioctl$FS_IOC_GETFSMAP(fd fd, cmd const[FS_IOC_GETFSMAP], arg ptr[in, fsmap_head])
space_resv {
l_type const[0, int16]
l_whence flags[seek_whence, int16]
l_start int64
l_len int64
l_sysid const[0, int32]
l_pid const[0, int32]
l_pad array[const[0, int32], 4]
}
fstrim_range {
start int64
len int64
minlen int64
}
file_clone_range {
src_fd fd
pad const[0, int32]
src_offset int64
src_length int64
dest_offset int64
}
file_dedupe_range {
src_offset int64
src_length int64
dest_count len[info, int16]
reserved1 const[0, int16]
reserved2 const[0, int32]
info array[file_dedupe_range_info]
}
file_dedupe_range_info {
dest_fd fd
pad const[0, int32]
dest_offset int64
bytes_deduped const[0, int64]
status const[0, int32]
reserved const[0, int32]
}
fsxattr {
fsx_xflags int32
fsx_extsize int32
fsx_nextents int32
fsx_projid int32
fsx_cowextsize int32
fsx_pad const[0, int64]
}
fiemap {
start int64
len int64
flags flags[fiemap_flags, int32]
mapped int32
count len[extent, int32]
extent array[fiemap_extent]
}
fiemap_extent {
logical int64
phys int64
len int64
pad1 const[0, int64]
pad2 const[0, int64]
flags flags[fiemap_extent_flags, int32]
pad3 const[0, int32]
pad4 const[0, int32]
pad5 const[0, int32]
}
fsmap_head {
fmh_iflags const[0, int32]
fmh_oflags const[0, int32]
fmh_count len[fmh_recs, int32]
fmh_entries const[0, int32]
fmh_reserved array[const[0, int64], 6]
fmh_keys array[fsmap, 2]
fmh_recs array[array[const[0, int8], FSMAP_SIZE]]
}
fsmap {
fmr_device int32
fmr_flags int32
fmr_physical int64
fmr_owner int64
fmr_offset int64
fmr_length int64
fmr_reserved array[const[0, int64], 3]
}
define FSMAP_SIZE sizeof(struct fsmap)