aboutsummaryrefslogtreecommitdiffstats
path: root/executor/syscalls.h
Commit message (Collapse)AuthorAgeFilesLines
* sys/linux: extend xattr descriptionsDmitry Vyukov2018-09-021-0/+90
| | | | Update #533
* sys/linux: add syz_execute_funcDmitry Vyukov2018-08-301-0/+16
| | | | | | The function executes random code. Update #310
* sys/linux: add nbd descriptionsDmitry Vyukov2018-08-301-0/+85
| | | | Update #533
* sys/fuchsia: describe method response types & handles; add support for unionDokyung Song2018-08-291-34/+34
| | | | | | | | * create a response handle structure for each FIDL method * generate zx_channel_write for requests having no response * generate zx_channel_read for events (no request but just response) * translate FIDL union types to syzkaller union types (see fuchsia_io_ObjectInfoHandles)
* sys/linux: add ext4 ioctls and overlayfsDmitry Vyukov2018-08-291-5/+110
| | | | Update #533
* Add mandatory OpenBSD bits (#689)Anton Lindqvist2018-08-281-0/+234
| | | | | | | | | | | | | | | | | | all: add openbsd support squash of the following commits: * openbsd: add mandatory bits * report: add OpenBSD support * executor: skip building kvm on OpenBSD * executor: add OpenBSD support Linking against libutil is necessary due to usage of openpty(3). * executor: fix typo in fail() message * fixup! report: add OpenBSD support * fixup! openbsd: add mandatory bits * fixup! openbsd: add mandatory bits * fixup! openbsd: add mandatory bits * fixup! report: add OpenBSD support * gometalinter: skip sys/openbsd
* sys/fuchsia: description for fuchsia.io FIDL interfacesDokyung Song2018-08-271-0/+114
|
* sys/linux: add few assorted new flags/ioctlsDmitry Vyukov2018-08-261-0/+4
|
* sys/linux: treat cuse as fuseDmitry Vyukov2018-08-261-0/+5
| | | | | | It's mostly fuse. Also regenerate consts on latest kernel.
* sys/linux: add userio descriptionsDmitry Vyukov2018-08-261-0/+15
| | | | Update #533
* prog: don't add fallback signal after seccompDmitry Vyukov2018-08-191-0/+3
| | | | | seccomp filter can produce arbitrary errno values for subsequent syscalls. Don't trust anything afterwards.
* sys/fuchsia: semi-automatically generated FIDL launcher descriptionDokyung Song2018-08-171-0/+10
|
* sys/linux: add uinput supportDmitry Vyukov2018-08-151-0/+115
|
* sys/linux: add uhid supportDmitry Vyukov2018-08-151-0/+40
|
* sys/fuchsia: add syscall description for binding channels to LauncherDokyung Song2018-08-081-0/+6
|
* sys/test: add more testsDmitry Vyukov2018-08-031-0/+8
| | | | | | | | | | | | | | Add syz_errno syscall which sets errno to the argument, and add a test with different errno values. This mostly tests the testing infrastructure itself. Add syz_compare syscall which compare two blobs, this can be used for testing of argument memory layout. Implement syz_mmap and fix Makefile to allow building syz-execprog for test OS. Useful for debugging. Update #603
* sys/fuchsia: zx_log_* got replaced by zx_debuglog_*Dokyung Song2018-08-031-6/+0
|
* sys/akaros: remove /dev/consDmitry Vyukov2018-08-021-2/+0
| | | | Presumably it causes corrupted console output.
* executor: overhaulDmitry Vyukov2018-07-241-0/+14547
| | | | | | | | | | | | | | | | | Make as much code as possible shared between all OSes. In particular main is now common across all OSes. Make more code shared between executor and csource (in particular, loop function and threaded execution logic). Also make loop and threaded logic shared across all OSes. Make more posix/unix code shared across OSes (e.g. signal handling, pthread creation, etc). Plus other changes along similar lines. Also support test OS in executor (based on portable posix) and add 4 arches that cover all execution modes (fork server/no fork server, shmem/no shmem). This change paves way for testing of executor code and allows to preserve consistency across OSes and executor/csource.
* all: initial support for fuchsiaDmitry Vyukov2017-09-201-7530/+0
| | | | | | Nothing works, but builds. Update #191
* sys/linux: improve user_desc descriptionDmitry Vyukov2017-09-201-3/+3
|
* pkg/compiler: don't genererate missing syscallsDmitry Vyukov2017-09-151-281/+5
| | | | | | | | We used to generate them only because manager had no idea what arch it is testing. So syscalls numbers had to match between all arches. This is not needed anymore. Also don't generate unreferenced structs/resources.
* syz-manager, syz-fuzzer, executor: ensure that binaries are consistentDmitry Vyukov2017-09-151-0/+10
| | | | | | | Check that manager/fuzzer/executor are build on the same git revision, use the same syscall descriptions and the same target arch. Update #336
* sys: consolidate info about various targetsDmitry Vyukov2017-09-151-2988/+2988
| | | | | | | | | | | | Info about targets (like C arch/CFLAGS) is required in multiple places: extract.sh syz-extract syz-sysgen csource vm/qemu ... Consolidate it in one place and use that in syz-sysgen.
* pkg/compiler: detect resources without ctorsDmitry Vyukov2017-09-041-0/+5
| | | | Fixes #217
* sys: improve bpf descriptionsDmitry Vyukov2017-09-021-0/+35
|
* pkg/compiler: restore generation of unsupported syscallsDmitry Vyukov2017-09-021-0/+276
| | | | | | Unfortunately this is sitll needed, see the added comment. Update #191
* sys: add AF_PACKET sockets descriptionAndrey Konovalov2017-09-011-0/+99
|
* pkg/compiler: move more const-processing code to compilerDmitry Vyukov2017-08-271-519/+555
|
* pkg/compiler, sys/syz-sysgen: move const handling to pkg/compilerDmitry Vyukov2017-08-271-275/+0
| | | | Now pkg/compiler deals with consts.
* all: support i386 archDmitry Vyukov2017-08-191-0/+1521
| | | | Update #191
* sys: support arm archDmitry Vyukov2017-08-191-0/+1521
| | | | | | | Not tested, but const extraction and build works. Update #324 Update #191
* sys: describe clone/execve callsDmitry Vyukov2017-08-121-0/+9
| | | | | Update #211 Update #310
* sys: describe chroot/getcwd/chdir/fchdirDmitry Vyukov2017-08-121-0/+12
| | | | Update #211
* prog: fix encoding for exec of result argsAndrey Konovalov2017-08-011-0/+6
| | | | | | ResultArg might have const value. Also add a test.
* prog: return error instead of panic when parsingAndrey Konovalov2017-07-241-0/+3
|
* prog: allow recursion for optional pointersAndrey Konovalov2017-07-191-0/+9
| | | | | | | | When syzkaller generates arg that uses a few structs that reference each other via pointers, it can go into infinite recursion and crash. Fix this by forcing pointer args to be null when the depth of recursion reaches 3 for some struct.
* sys: add ETHTOOL ioctl in socket.txtJB Cayrou2017-06-191-0/+3
| | | | | | Add ioctl$sock_SIOCETHTOOL and ETHTOOL structures defined in uapi/linux/ethtool.h http://elixir.free-electrons.com/linux/latest/source/include/uapi/linux/ethtool.h
* sys: use consistent icmp socket syscall namesAndrey Konovalov2017-06-141-36/+30
|
* executor: fix clang-tidy warningsDmitry Vyukov2017-06-131-3/+3
| | | | | A single check is enabled for now (misc-definitions-in-headers). But it's always fixable and found 2 bugs in csource.
* sys: check in generated filesDmitry Vyukov2017-06-131-0/+4542
| | | | | | | | | | | | | | | | | | We used to have all generated files checked in. Later we removed them (now users are supposed to run make to generate them). This causes several problems: - go get does not work as it tries to build everything straight away (go get -d works, but users are confused) - users don't run make and complain that build is broken - users don't re-run make after updates and complain that build is broken - hard to integrate into other build system (even if they support building Go, they don't support running sysgen out-of-the-box) Fixes #216
* sys: remove autogenerated filesDmitry Vyukov2016-09-021-3350/+0
| | | | | | | | They were necessary when they were the source of constant values extracted from kernel code (hard to do). Now constants are checked-in separately, and these large files can be easily regenerated with 'make generate'. Now they are only a source of large uninteresting diffs in commits. Remove them.
* executor, csource: share some common code between executor and csourceDmitry Vyukov2016-08-281-3330/+3327
|
* overhaul syscall description generation processDmitry Vyukov2016-08-261-4121/+3008
| | | | | | | | | | | | | | | | | | | | | | This splits generation process into two phases: 1. Extract values of constants from linux kernel sources. 2. Generate Go code. Constant values are checked in. The advantage is that the second phase is now completely independent from linux source files, kernel version, presence of headers for particular drivers, etc. This allows to change what Go code we generate any time without access to all kernel headers (which in future won't be limited to only upstream headers). Constant extraction process does require proper kernel sources, but this can be done only once by the person who added the driver and has access to the required sources. Then the constant values are checked in for others to use. Consant extraction process is per-file/per-arch. That is, if I am adding a driver that is not present upstream and that works only on a single arch, I will check in constants only for that driver and for that arch.
* executor: add support for 386 arch (COMPAT syscalls)Dmitry Vyukov2016-06-301-0/+1113
| | | | | This is not fully working now: e.g. prog and sys packages assume that pointer size is 8. But at least it compiles and works.
* sys: update generated filesDmitry Vyukov2016-06-131-0/+207
|
* sys: fix /dev/snd/pcm descriptionDmitry Vyukov2016-02-051-3/+6
|
* sys: regenerate after tun/random supportDmitry Vyukov2016-01-261-0/+87
|
* sys: open a bunch of new devicesDmitry Vyukov2016-01-261-0/+144
|
* sysgen: use __ppc64__ || __PPC64__ || __powerpc64__ to detect ppcDmitry Vyukov2016-01-251-3/+3
| | | | Different macros are defined by different compilers...