aboutsummaryrefslogtreecommitdiffstats
path: root/sys/sys.txt
Commit message (Collapse)AuthorAgeFilesLines
* sys: move linux descriptions to sys/linuxDmitry Vyukov2017-09-151-1047/+0
|
* sys: use ptr64 type instead of ptr where necessaryDmitry Vyukov2017-09-041-3/+2
|
* sys: minor fixes for statx and sigeventDmitry Vyukov2017-09-041-3/+3
|
* pkg/compiler: detect resources without ctorsDmitry Vyukov2017-09-041-1/+0
| | | | Fixes #217
* sys: improve bpf descriptionsDmitry Vyukov2017-09-021-1/+1
|
* executor, fuzzer: change the way Syzkaller opens the KCOV deviceVictor Chibotaru2017-08-301-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have implemented a new version of KCOV, which is able to dump comparison operands' data, obtained from Clang's instrumentation hooks __sanitizer_cov_trace_cmp[1248], __sanitizer_cov_trace_const_cmp[1248] and __sanitizer_cov_trace_switch. Current KCOV implementation can work in two modes: "Dump only the PCs" or "Dump only comparisons' data". Mode selection is done by the following series of calls: fd = open(KCOV_PATH, ...); // works as previous ioctl(fd, KCOV_INIT_TRACE, ...); // works as previous mmap(fd, ...); // works as previous ioctl(fd, KCOV_ENABLE, mode); // mode = KCOV_MODE_TRACE_CMP or mode = KCOV_MODE_TRACE_PC Note that this new interface is backwards compatible, as old KCOV devices will just return -EINVAL for the last ioctl. This way we can distinguish if the KCOV device is able to dump the comparisons. Main changes in this commit: 1. Fuzzer now checks at startup which type (new/old) of KCOV device is running. 2. Executor now receives an additional flag, which indicates if executor should read the comparisons data from KCOV. The flag works on per-call basis, so executor can collect PCs or Comps for each individual syscall.
* pkg/compiler: more static error checkingDmitry Vyukov2017-08-271-7/+0
| | | | Update #217
* sys: improve tun descriptionsDmitry Vyukov2017-08-251-1/+1
|
* sys: reformat descriptionsDmitry Vyukov2017-08-181-43/+27
|
* sys: add some known xattr namesDmitry Vyukov2017-08-161-15/+0
| | | | | | Move xattr syscalls to own file and better describe xattr names. They usually have prefix+name structure and there are some known values.
* sys: describe clone/execve callsDmitry Vyukov2017-08-121-6/+7
| | | | | Update #211 Update #310
* sys: describe chroot/getcwd/chdir/fchdirDmitry Vyukov2017-08-121-4/+4
| | | | Update #211
* prog: split Arg into smaller structsAndrey Konovalov2017-07-171-9/+14
| | | | | | | | | | | | | | | | | | | | | | Right now Arg is a huge struct (160 bytes), which has many different fields used for different arg kinds. Since most of the args we see in a typical corpus are ArgConst, this results in a significant memory overuse. This change: - makes Arg an interface instead of a struct - adds a SomethingArg struct for each arg kind we have - converts all *Arg pointers into just Arg, since interface variable by itself contains a pointer to the actual data - removes ArgPageSize, now ConstArg is used instead - consolidates correspondence between arg kinds and types, see comments before each SomethingArg struct definition - now LenType args that denote the length of VmaType args are serialized as "0x1000" instead of "(0x1000)"; to preserve backwards compatibility syzkaller is able to parse the old format for now - multiple small changes all over to make the above work After this change syzkaller uses twice less memory after deserializing a typical corpus.
* statx: update flagsJess Frazelle2017-06-081-1/+1
| | | | Signed-off-by: Jess Frazelle <acidburn@google.com>
* sys: add statx syscallJess Frazelle2017-06-021-0/+33
| | | | | | | | | The statx syscall was added in Linux 4.11, check out the kernel documentation[1] for more information. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a528d35e8bfcc521d7cb70aaf03e1bd296c8493f Signed-off-by: Jess Frazelle <acidburn@google.com>
* sys: add syscall description for /dev/ion.Billy Lau2017-04-251-1/+0
|
* sys: remove UFFD_FEATURE_EVENT_EXIT constDmitry Vyukov2017-03-081-1/+1
| | | | It is going to be removed from kernel.
* sys: describe uffd api featuresDmitry Vyukov2017-03-021-1/+2
|
* prog: fix mknod sanitizationDmitry Vyukov2017-02-141-2/+2
| | | | | | mknod mode also includes ownership flags, so filter out the node type. Also allow creation of loop nodes. Remove mount$fs as it does not seem to make any sense.
* sys: split socket.txt into multiple files based on socket typeAndrey Konovalov2017-02-091-134/+0
| | | | | This just moves syscall descriptions and fixes up includes without any semantic changes.
* sys: add more filesystems and mount flagsDmitry Vyukov2017-02-051-2/+2
|
* sys: add /dev/loop descriptionDmitry Vyukov2017-02-031-1/+0
|
* sys: minor assorted improvements to descriptionsDmitry Vyukov2017-02-031-9/+12
|
* prog, sys: add tcp packets descriptionsAndrey Konovalov2017-01-301-1/+1
| | | | Also embed tcp checksums into packets.
* sys: move ipc syscalls into separate fileDmitry Vyukov2017-01-281-99/+0
|
* sys: don't imply pointer indirection for filename typeDmitry Vyukov2017-01-181-52/+52
| | | | | | | | Change all 'filename' to 'ptr[in, filename]' and don't imply pointer indirection for filename type. This is necessary because in some bases we want to embed filename directly into a struct (e.g. unix sock addr). Similar change was already done for string type for similar reasons. Generally, we want to imply as less as possible. NOTE: IF YOU HAVE PRIVATE DESCRIPTIONS, YOU NEED TO DO THE SAME REPLACEMENT.
* sys: drop kdbus descriptionDmitry Vyukov2017-01-181-1/+1
| | | | kdbus haven't been merged into mainline, unmaintained and seems to be replaced by bus1.
* sys: replace syz_open_dev with openatDmitry Vyukov2017-01-091-29/+30
| | | | | In lots of cases we don't need the special syz_open_dev call, openat will do just fine. Standard syscalls are preferrable, so use them.
* sys: detail kvm syscalls moreDmitry Vyukov2017-01-091-0/+1
|
* sys: describe new pkey_* syscallsDmitry Vyukov2016-12-161-2/+8
|
* sys: move in_addr description to templatesAndrey Konovalov2016-11-291-17/+29
|
* sys: add new bpf descriptionsDmitry Vyukov2016-11-281-2/+2
| | | | These were just added to net-next.
* sys: add proc type to denote per proccess integersAndrey Konovalov2016-11-251-2/+2
|
* sys: disable /dev/consoleDmitry Vyukov2016-11-181-1/+5
| | | | | | /dev/console known to cause problems on at least two different kernels. It can turn off all output or produce massive amounts of garbage on console. Disable it for now.
* sys: better description for eventfdDmitry Vyukov2016-11-121-3/+6
|
* sys: improve bpf descriptionsDmitry Vyukov2016-11-111-1/+1
|
* sys: add string flagsDmitry Vyukov2016-11-111-57/+56
| | | | | | | | | | Allow to define string flags in txt descriptions. E.g.: filesystem = "ext2", "ext3", "ext4" and then use it in string type: ptr[in, string[filesystem]]
* sys: don't imply pointer indirection for string argumentsDmitry Vyukov2016-11-111-17/+17
| | | | | In preparation for extending string functionality and to make it less magical.
* sys: replace FileoffType with IntType{Kind: IntFileoff}Dmitry Vyukov2016-11-111-9/+9
| | | | | FileoffType is effectively an int, no need for a separate type. Also remove fd option from fileoff as it is unused and use story is unclear.
* Rename duplicate fields in templatesAndrey Konovalov2016-10-101-10/+9
|
* sys: resolve some old TODOs in descriptionsDmitry Vyukov2016-09-051-20/+15
|
* sys: specify resources in text descriptionsDmitry Vyukov2016-08-271-70/+95
| | | | | | Currently to add a new resource one needs to modify multiple source files, which complicates descirption of new system calls. Move resource descriptions from source code to text desciptions.
* overhaul syscall description generation processDmitry Vyukov2016-08-261-39/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* sys: change int range to use ':' instead of '~'Dmitry Vyukov2016-08-131-1/+1
| | | | | We can't use '-' because '-' can denote negative numbers. Colon is used is several range notations (e.g. Go, Mathlab, Excel).
* sys: add missing includeLorenzo Stoakes2016-03-081-0/+1
| | | | | IOPRIO_WHO_PGRP, IOPRIO_WHO_USER, and IOPRIO_WHO_PROCESS are defined in linux/ioprio.h.
* sys: fix /dev/snd/pcm descriptionDmitry Vyukov2016-02-051-1/+2
|
* sys: open a bunch of new devicesDmitry Vyukov2016-01-261-0/+52
|
* sys: allow to open all devices as stopgapDmitry Vyukov2016-01-241-0/+4
|
* sys: remove resolved TODODmitry Vyukov2016-01-231-2/+0
|
* sys: use kernel headers instead of host headersDmitry Vyukov2016-01-221-142/+56
| | | | | | | | This solves several problems: - host usually have outdates headers, so previously we need to define missing consts - host may not have some headers at all - generation depends on linux distribution and version - some of the consts cannot be defined at all (e.g. ioctls that use struct arguments)