aboutsummaryrefslogtreecommitdiffstats
path: root/sys/freebsd/aio.txt
blob: d5fd3cc8c0e3edac168d6b7abc1c8c2f585ef0c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Copyright 2021 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 <fcntl.h>
include <aio.h>
include <sys/uio.h>

aio_cancel(fildes fd, iocb ptr[in, aiocb])
aio_error(iocb ptr[in, aiocb])
aio_read(iocb ptr[in, aiocb])
aio_readv(iocb ptr[in, aiocb])
aio_return(iocb ptr[in, aiocb])
aio_suspend(iocbs ptr[in, array[aiocb]], niocb len[iocbs], timeout ptr[in, timespec])
aio_waitcomplete(iocbp ptr[out, ptr[in, aiocb]], timeout ptr[in, timespec])
aio_write(iocb ptr[in, aiocb])
aio_writev(iocb ptr[in, aiocb])
aio_fsync(op flags[fsync_flags], iocb ptr[in, aiocb])
aio_mlock(iocb ptr[in, aiocb])
lio_listio(mode flags[lio_mode], list ptr[in, array[aiocb]], nent len[list], sig ptr[in, sigevent])

aiocb {
	aio_fildes	fd
	aio_offset	int64
	aio_buf		ptr[in, array[int8]]
	aio_nbytes	len[aio_buf, intptr]
	spare		array[int32, 2]
	spare2		intptr
	aio_lio_opcode	flags[lio_opcodes, int32]
	aio_reqprio	int32
	aiocb_private	aiocb_private
	aio_sigevent	sigevent
}

aiocb_private {
	status		intptr
	error		intptr
	kernelinfo	ptr[in, array[int8]]
}

lio_mode = LIO_WAIT, LIO_NOWAIT
lio_opcodes = LIO_NOP, LIO_WRITE, LIO_READ, LIO_VECTORED, LIO_WRITEV, LIO_READV, LIO_SYNC, LIO_DSYNC, LIO_MLOCK
fsync_flags = O_SYNC, O_DSYNC