mirror of
https://github.com/reactos/syzkaller.git
synced 2024-11-27 05:10:43 +00:00
22535fecd5
They can't be a bitmask. This fixes important cases of "0, 1" and "0, 1, 2" flags. Fix some descriptions that added 0 to bitmasks explicitly (we should do it automatically instead).
40 lines
1.4 KiB
Plaintext
40 lines
1.4 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/aio_abi.h>
|
|
|
|
resource io_ctx[intptr]
|
|
|
|
io_setup(n int32, ctx ptr[out, io_ctx])
|
|
io_destroy(ctx io_ctx)
|
|
io_getevents(ctx io_ctx, min_nr intptr, nr len[events], events ptr[out, array[io_event]], timeout ptr[in, timespec, opt])
|
|
io_pgetevents(ctx io_ctx, min_nr intptr, nr len[events], events ptr[out, array[io_event]], timeout ptr[in, timespec, opt], usig ptr[in, sigset_size, opt])
|
|
# NEED: kernel identifies requets by address, so pointers passed to io_submit need to be forwarded to io_cancel somehow.
|
|
io_submit(ctx io_ctx, nr len[iocbpp], iocbpp ptr[in, array[ptr[in, iocb]]])
|
|
io_cancel(ctx io_ctx, iocb ptr[in, iocb], res ptr[out, io_event])
|
|
|
|
lio_opcode = IOCB_CMD_PREAD, IOCB_CMD_PWRITE, IOCB_CMD_FSYNC, IOCB_CMD_FDSYNC, IOCB_CMD_NOOP, IOCB_CMD_PREADV, IOCB_CMD_PWRITEV, IOCB_CMD_POLL
|
|
iocb_flags = IOCB_FLAG_RESFD, IOCB_FLAG_IOPRIO
|
|
|
|
io_event {
|
|
data int64
|
|
obj int64
|
|
res int64
|
|
res2 int64
|
|
}
|
|
|
|
iocb {
|
|
aio_data const[0, int64]
|
|
aio_key const[0, int32]
|
|
aio_rw_flags const[0, int32]
|
|
aio_lio_opcode flags[lio_opcode, int16]
|
|
aio_reqprio int16
|
|
aio_fildes fd
|
|
aio_buf ptr64[inout, array[int8]]
|
|
aio_nbytes len[aio_buf, int64]
|
|
aio_offset int64
|
|
aio_reserved2 const[0, int64]
|
|
aio_flags flags[iocb_flags, int32]
|
|
aio_resfd fd_event[opt]
|
|
}
|