mirror of
https://github.com/reactos/syzkaller.git
synced 2024-12-18 00:58:10 +00:00
920b18be87
Mark output resources as opt in preparation for more precise constructor calculation.
150 lines
4.8 KiB
Plaintext
150 lines
4.8 KiB
Plaintext
# Copyright 2017 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.
|
|
|
|
# This file contains some subset of POSIX/libc calls.
|
|
# They should be handled by ulib/fs service rather then by the kernel,
|
|
# but still no reason to not fuzz them.
|
|
|
|
include <sys/types.h>
|
|
include <sys/stat.h>
|
|
include <sys/file.h>
|
|
include <sys/uio.h>
|
|
include <fcntl.h>
|
|
include <poll.h>
|
|
include <unistd.h>
|
|
include <utime.h>
|
|
|
|
resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
|
|
resource pid[int32]: 0, 0xffffffffffffffff
|
|
resource uid[int32]: 0, 0xffffffffffffffff
|
|
resource gid[int32]: 0, 0xffffffffffffffff
|
|
|
|
open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
|
|
openat(fd fd[opt], file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd
|
|
creat(file ptr[in, filename], mode flags[open_mode]) fd
|
|
close(fd fd)
|
|
read(fd fd, buf buffer[out], count len[buf])
|
|
readv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec])
|
|
preadv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec], off fileoff)
|
|
write(fd fd, buf buffer[in], count len[buf])
|
|
writev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec])
|
|
pwritev(fd fd, vec ptr[in, array[iovec_in]], vlen len[vec], off fileoff)
|
|
lseek(fd fd, offset fileoff, whence flags[seek_whence])
|
|
|
|
dup(oldfd fd) fd
|
|
dup2(oldfd fd, newfd fd) fd
|
|
dup3(oldfd fd, newfd fd, flags flags[dup_flags]) fd
|
|
|
|
stat(file ptr[in, filename], statbuf ptr[out, array[int8]])
|
|
lstat(file ptr[in, filename], statbuf ptr[out, array[int8]])
|
|
fstat(fd fd, statbuf ptr[out, array[int8]])
|
|
|
|
poll(fds ptr[in, array[pollfd]], nfds len[fds], timeout int32)
|
|
ppoll(fds ptr[in, array[pollfd]], nfds len[fds], tsp ptr[in, timespec], sigmask ptr[in, sigset], size len[sigmask])
|
|
select(n len[inp], inp ptr[inout, fd_set], outp ptr[inout, fd_set], exp ptr[inout, fd_set], tvp ptr[inout, timeval])
|
|
|
|
chmod(file ptr[in, filename], mode flags[open_mode])
|
|
fchmod(fd fd, mode flags[open_mode])
|
|
fchmodat(dirfd fd, file ptr[in, filename], mode flags[open_mode])
|
|
chown(file ptr[in, filename], uid uid, gid gid)
|
|
lchown(file ptr[in, filename], uid uid, gid gid)
|
|
fchown(fd fd, uid uid, gid gid)
|
|
fchownat(dirfd fd, file ptr[in, filename], uid uid, gid gid, flags flags[at_flags])
|
|
faccessat(dirfd fd, pathname ptr[in, filename], mode flags[open_mode], flags flags[faccessat_flags])
|
|
utime(filename ptr[in, filename], times ptr[in, utimbuf])
|
|
utimes(filename ptr[in, filename], times ptr[in, itimerval])
|
|
utimensat(dir fd, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags])
|
|
|
|
link(old ptr[in, filename], new ptr[in, filename])
|
|
linkat(oldfd fd, old ptr[in, filename], newfd fd, new ptr[in, filename], flags flags[linkat_flags])
|
|
symlinkat(old ptr[in, filename], newfd fd, new ptr[in, filename])
|
|
symlink(old ptr[in, filename], new ptr[in, filename])
|
|
unlink(path ptr[in, filename])
|
|
unlinkat(fd fd, path ptr[in, filename], flags flags[unlinkat_flags])
|
|
readlink(path ptr[in, filename], buf buffer[out], siz len[buf])
|
|
readlinkat(fd fd, path ptr[in, filename], buf buffer[out], siz len[buf])
|
|
rename(old ptr[in, filename], new ptr[in, filename])
|
|
renameat(oldfd fd, old ptr[in, filename], newfd fd, new ptr[in, filename])
|
|
mkdir(path ptr[in, filename], mode flags[open_mode])
|
|
mkdirat(fd fd, path ptr[in, filename], mode flags[open_mode])
|
|
rmdir(path ptr[in, filename])
|
|
truncate(file ptr[in, filename], len intptr)
|
|
ftruncate(fd fd, len intptr)
|
|
fsync(fd fd)
|
|
fdatasync(fd fd)
|
|
sync()
|
|
getcwd(buf buffer[out], size len[buf])
|
|
chdir(dir ptr[in, filename])
|
|
|
|
getgid() gid
|
|
getuid() uid
|
|
getpid() pid
|
|
|
|
open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, FASYNC, O_CLOEXEC, O_CREAT, O_DIRECT, O_DIRECTORY, O_EXCL, O_LARGEFILE, O_NOATIME, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_PATH, O_SYNC, O_TRUNC
|
|
open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
|
|
seek_whence = SEEK_SET, SEEK_CUR, SEEK_END
|
|
dup_flags = O_CLOEXEC
|
|
pollfd_events = POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL, POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND, POLLMSG, POLLRDHUP
|
|
at_flags = AT_EMPTY_PATH, AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, AT_EMPTY_PATH
|
|
utimensat_flags = 0, AT_SYMLINK_NOFOLLOW
|
|
linkat_flags = AT_EMPTY_PATH, AT_SYMLINK_FOLLOW
|
|
unlinkat_flags = 0, AT_REMOVEDIR
|
|
flock_op = LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB
|
|
faccessat_flags = 0x100, 0x200, 0x400, 0x800, 0x1000
|
|
|
|
iovec_in {
|
|
addr buffer[in]
|
|
len len[addr, intptr]
|
|
}
|
|
|
|
iovec_out {
|
|
addr buffer[out]
|
|
len len[addr, intptr]
|
|
}
|
|
|
|
sigset {
|
|
mask int64
|
|
}
|
|
|
|
sigset_size {
|
|
ss ptr[inout, sigset]
|
|
len len[ss, intptr]
|
|
}
|
|
|
|
fd_set {
|
|
mask0 int64
|
|
mask1 int64
|
|
mask2 int64
|
|
mask3 int64
|
|
mask4 int64
|
|
mask5 int64
|
|
mask6 int64
|
|
mask7 int64
|
|
}
|
|
|
|
pollfd {
|
|
fd fd
|
|
events flags[pollfd_events, int16]
|
|
revents const[0, int16]
|
|
}
|
|
|
|
timespec {
|
|
sec intptr
|
|
nsec intptr
|
|
}
|
|
|
|
timeval {
|
|
sec intptr
|
|
usec intptr
|
|
}
|
|
|
|
utimbuf {
|
|
actime intptr
|
|
modtime intptr
|
|
}
|
|
|
|
itimerval {
|
|
interv timeval
|
|
value timeval
|
|
}
|