Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 43 additions & 3 deletions sys/linux/dev_block.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ include <uapi/linux/blkzoned.h>
include <uapi/linux/pr.h>
include <uapi/linux/hdreg.h>
include <uapi/linux/blkpg.h>
include <linux/blk-crypto.h>

resource fd_block_trace[fd]
resource fd_block[fd_block_trace]
Expand All @@ -16,7 +17,7 @@ openat$rnullb(fd const[AT_FDCWD], file ptr[in, string["/dev/rnullb0"]], flags fl
openat$md(fd const[AT_FDCWD], file ptr[in, string["/dev/md0"]], flags flags[open_flags], mode const[0]) fd_block
openat$pmem0(fd const[AT_FDCWD], file ptr[in, string["/dev/pmem0"]], flags flags[open_flags], mode const[0]) fd_block

ioctl$BLKTRACESETUP(fd fd_block_trace, cmd const[BLKTRACESETUP], arg ptr[in, blk_user_trace_setup])
ioctl$BLKTRACESETUP(fd fd_block_trace, cmd const[BLKTRACESETUP], arg ptr[inout, blk_user_trace_setup])
ioctl$BLKTRACESTART(fd fd_block_trace, cmd const[BLKTRACESTART], arg const[0])
ioctl$BLKTRACESTOP(fd fd_block_trace, cmd const[BLKTRACESTOP], arg const[0])
ioctl$BLKTRACETEARDOWN(fd fd_block_trace, cmd const[BLKTRACETEARDOWN], arg const[0])
Expand All @@ -25,18 +26,20 @@ ioctl$BLKFLSBUF(fd fd_block, cmd const[BLKFLSBUF], arg ptr[in, intptr])
ioctl$BLKROSET(fd fd_block, cmd const[BLKROSET], arg ptr[in, intptr])
ioctl$BLKDISCARD(fd fd_block, cmd const[BLKDISCARD], arg ptr[in, intptr])
ioctl$BLKSECDISCARD(fd fd_block, cmd const[BLKSECDISCARD], arg ptr[in, intptr])
ioctl$BLKDISCARDZEROES(fd fd_block, cmd const[BLKDISCARDZEROES], arg ptr[out, intptr])
ioctl$BLKZEROOUT(fd fd_block, cmd const[BLKZEROOUT], arg ptr[in, blk_zone_range])
ioctl$BLKREPORTZONE(fd fd_block, cmd const[BLKREPORTZONE], arg ptr[in, blk_zone_report])
ioctl$BLKRESETZONE(fd fd_block, cmd const[BLKRESETZONE], arg ptr[in, blk_zone_range])
ioctl$BLKRAGET(fd fd_block, cmd const[BLKRAGET], arg ptr[out, intptr])
ioctl$BLKFRAGET(fd fd_block, cmd const[BLKFRAGET], arg ptr[out, intptr])
ioctl$BLKROGET(fd fd_block, cmd const[BLKROGET], arg ptr[out, intptr])
ioctl$BLKBSZGET(fd fd_block, cmd const[BLKBSZGET], arg ptr[out, intptr])
ioctl$BLKSSZGET(fd fd_block, cmd const[BLKSSZGET], arg ptr[out, intptr])
ioctl$BLKPBSZGET(fd fd_block, cmd const[BLKPBSZGET], arg ptr[out, intptr])
ioctl$BLKIOMIN(fd fd_block, cmd const[BLKIOMIN], arg ptr[out, intptr])
ioctl$BLKIOOPT(fd fd_block, cmd const[BLKIOOPT], arg ptr[out, intptr])
ioctl$BLKALIGNOFF(fd fd_block, cmd const[BLKALIGNOFF], arg ptr[out, intptr])
ioctl$BLKSECTGET(fd fd_block, cmd const[BLKSECTGET], arg ptr[out, intptr])
ioctl$BLKROTATIONAL(fd fd_block, cmd const[BLKROTATIONAL], arg ptr[out, intptr])
ioctl$BLKRASET(fd fd_block, cmd const[BLKRASET], arg ptr[in, intptr])
ioctl$BLKFRASET(fd fd_block, cmd const[BLKFRASET], arg ptr[in, intptr])
ioctl$BLKBSZSET(fd fd_block, cmd const[BLKBSZSET], arg ptr[in, intptr])
ioctl$BLKPG(fd fd_block, cmd const[BLKPG], arg ptr[in, blkpg_ioctl_arg])
Expand All @@ -45,6 +48,21 @@ ioctl$BLKGETSIZE(fd fd_block, cmd const[BLKGETSIZE], arg ptr[out, intptr])
ioctl$BLKGETSIZE64(fd fd_block, cmd const[BLKGETSIZE64], arg ptr[out, int64])
ioctl$BLKGETDISKSEQ(fd fd_block, cmd const[BLKGETDISKSEQ], arg ptr[out, int64])

# TODO: To properly explore zones-related ioctls, figure out how to setup zoned devices.
ioctl$BLKREPORTZONE(fd fd_block, cmd const[BLKREPORTZONE], arg ptr[inout, blk_zone_report])
ioctl$BLKRESETZONE(fd fd_block, cmd const[BLKRESETZONE], arg ptr[in, blk_zone_range])
ioctl$BLKOPENZONE(fd fd_block, cmd const[BLKOPENZONE], arg ptr[in, blk_zone_range])
ioctl$BLKCLOSEZONE(fd fd_block, cmd const[BLKCLOSEZONE], arg ptr[in, blk_zone_range])
ioctl$BLKFINISHZONE(fd fd_block, cmd const[BLKFINISHZONE], arg ptr[in, blk_zone_range])
ioctl$BLKGETZONESZ(fd fd_block, cmd const[BLKGETZONESZ], arg ptr[in, int32])
ioctl$BLKGETNRZONES(fd fd_block, cmd const[BLKGETNRZONES], arg ptr[in, int32])

# TODO: These calls may fail early on current kernel testing setups due to
# uninitialized blk_crypto_profile involved in related device drivers.
ioctl$BLKCRYPTOIMPORTKEY(fd fd_block, cmd const[BLKCRYPTOIMPORTKEY], arg ptr[inout, blk_crypto_import_key_arg])
ioctl$BLKCRYPTOGENERATEKEY(fd fd_block, cmd const[BLKCRYPTOGENERATEKEY], arg ptr[inout, blk_crypto_generate_key_arg])
ioctl$BLKCRYPTOPREPAREKEY(fd fd_block, cmd const[BLKCRYPTOPREPAREKEY], arg ptr[inout, blk_crypto_prepare_key_arg])

ioctl$HDIO_GETGEO(fd fd_block, cmd const[HDIO_GETGEO], arg ptr[out, hd_geometry])

ioctl$IOC_PR_REGISTER(fd fd_block, cmd const[IOC_PR_REGISTER], arg ptr[in, pr_registration])
Expand Down Expand Up @@ -113,6 +131,28 @@ blk_user_trace_setup {
pid pid
}

blk_crypto_import_key_arg {
raw_key_ptr ptr[in, array[int8, 16:BLK_CRYPTO_MAX_RAW_KEY_SIZE]]
raw_key_size len[raw_key_ptr, int64]
lt_key_ptr ptr[out, array[int8, 1:BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE]]
lt_key_size len[lt_key_ptr, int64]
reserved array[const[0, int64], 4]
}

blk_crypto_generate_key_arg {
lt_key_ptr ptr[out, array[int8, 1:BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE]]
lt_key_size len[lt_key_ptr, int64]
reserved array[const[0, int64], 4]
}

blk_crypto_prepare_key_arg {
lt_key_ptr ptr[in, array[int8, 1:BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE]]
lt_key_size len[lt_key_ptr, int64]
eph_key_ptr ptr[out, array[int8, 1:BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE]]
eph_key_size len[eph_key_ptr, int64]
reserved array[const[0, int64], 4]
}

pr_registration {
old_key int64
new_key int64
Expand Down
16 changes: 15 additions & 1 deletion sys/linux/dev_block.txt.const
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
AT_FDCWD = ???
AT_FDCWD = 18446744073709551516
BLKALIGNOFF = 4730, mips64le:ppc64le:536875642
BLKBSZGET = 2148012656, 386:arm:2147750512, mips64le:ppc64le:1074270832
BLKBSZSET = 1074270833, 386:arm:1074008689, mips64le:ppc64le:2148012657
BLKCLOSEZONE = 1074795143, mips64le:ppc64le:2148536967
BLKCRYPTOGENERATEKEY = 3224375946
BLKCRYPTOIMPORTKEY = 3225424521
BLKCRYPTOPREPAREKEY = 3225424523
BLKDISCARD = 4727, mips64le:ppc64le:536875639
BLKDISCARDZEROES = 4732, mips64le:ppc64le:536875644
BLKFINISHZONE = 1074795144, mips64le:ppc64le:2148536968
BLKFLSBUF = 4705, mips64le:ppc64le:536875617
BLKFRAGET = 4709, mips64le:ppc64le:536875621
BLKFRASET = 4708, mips64le:ppc64le:536875620
BLKGETDISKSEQ = 2148012672, mips64le:ppc64le:1074270848
BLKGETNRZONES = 2147750533, mips64le:ppc64le:1074008709
BLKGETSIZE = 4704, mips64le:ppc64le:536875616
BLKGETSIZE64 = 2148012658, 386:arm:2147750514, mips64le:ppc64le:1074270834
BLKGETZONESZ = 2147750532, mips64le:ppc64le:1074008708
BLKIOMIN = 4728, mips64le:ppc64le:536875640
BLKIOOPT = 4729, mips64le:ppc64le:536875641
BLKOPENZONE = 1074795142, mips64le:ppc64le:2148536966
BLKPBSZGET = 4731, mips64le:ppc64le:536875643
BLKPG = 4713, mips64le:ppc64le:536875625
BLKPG_ADD_PARTITION = 1
Expand All @@ -20,6 +30,7 @@ BLKPG_DEVNAMELTH = 64
BLKPG_RESIZE_PARTITION = 3
BLKPG_VOLNAMELTH = 64
BLKRAGET = 4707, mips64le:ppc64le:536875619
BLKRASET = 4706, mips64le:ppc64le:536875618
BLKREPORTZONE = 3222278786
BLKRESETZONE = 1074795139, mips64le:ppc64le:2148536963
BLKROGET = 4702, mips64le:ppc64le:536875614
Expand All @@ -28,12 +39,15 @@ BLKROTATIONAL = 4734, mips64le:ppc64le:536875646
BLKRRPART = 4703, mips64le:ppc64le:536875615
BLKSECDISCARD = 4733, mips64le:ppc64le:536875645
BLKSECTGET = 4711, mips64le:ppc64le:536875623
BLKSSZGET = 4712, mips64le:ppc64le:536875624
BLKTRACESETUP = 3225948787, 386:3225424499
BLKTRACESTART = 4724, mips64le:ppc64le:536875636
BLKTRACESTOP = 4725, mips64le:ppc64le:536875637
BLKTRACETEARDOWN = 4726, mips64le:ppc64le:536875638
BLKTRACE_BDEV_SIZE = 32
BLKZEROOUT = 4735, mips64le:ppc64le:536875647
BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE = 128
BLK_CRYPTO_MAX_RAW_KEY_SIZE = 64
HDIO_GETGEO = 769
IOC_PR_CLEAR = 1074819277, mips64le:ppc64le:2148561101
IOC_PR_PREEMPT = 1075343563, mips64le:ppc64le:2149085387
Expand Down