aboutsummaryrefslogtreecommitdiffstats
path: root/sys/sys_386.go
Commit message (Collapse)AuthorAgeFilesLines
* sys: move linux descriptions to sys/linuxDmitry Vyukov2017-09-151-17184/+0
|
* sys: regenerate consts with tip linuxDmitry Vyukov2017-09-131-2/+2
|
* sys: use correct pointer sizeDmitry Vyukov2017-09-051-0/+1
|
* sys: add new perf attribute flagDmitry Vyukov2017-09-051-1/+1
|
* prog, sys: move types to progDmitry Vyukov2017-09-051-2/+4
| | | | | | | | | | | Large overhaul moves syscalls and arg types from sys to prog. Sys package now depends on prog and contains only generated descriptions of syscalls. Introduce prog.Target type that encapsulates all targer properties, like syscall list, ptr/page size, etc. Also moves OS-dependent pieces like mmap call generation from prog to sys. Update #191
* sys: rename Call to SyscallDmitry Vyukov2017-09-051-1/+1
| | | | | In preparation for moving sys types to prog to avoid confusion between sys.Call and prog.Call.
* pkg/compiler: assign Call.ID staticallyDmitry Vyukov2017-09-041-1542/+1542
|
* sys: use ptr64 type instead of ptr where necessaryDmitry Vyukov2017-09-041-32/+33
|
* sys: change BitfieldLast to BitfieldMiddleDmitry Vyukov2017-09-041-57/+57
| | | | | | | | That's the condition we always want. Currently we always check: t.BitfieldOffset() == 0 || t.BitfieldLast() now can check just: !t.BitfieldMiddle()
* sys: remove IntSignalnoDmitry Vyukov2017-09-041-39/+39
|
* sys, pkg/compiler: move padding computation to compilerDmitry Vyukov2017-09-041-11089/+11229
| | | | This makes types constant during execution, everything is precomputed.
* sys: minor fixes for statx and sigeventDmitry Vyukov2017-09-041-3/+3
|
* pkg/compiler: move bitfield marking from sysDmitry Vyukov2017-09-041-38/+38
|
* sys: don't assume vma size is 8Dmitry Vyukov2017-09-041-41/+41
| | | | | Use explicit size for vma. This is the last use of hardcoded ptrSize in sys package.
* pkg/compiler: use correct arch ptr sizeDmitry Vyukov2017-09-041-4263/+4263
|
* pkg/compiler: detect resources without ctorsDmitry Vyukov2017-09-041-2/+1
| | | | Fixes #217
* sys: allow custom size for PtrTypeDmitry Vyukov2017-09-021-1739/+1739
| | | | This is required to support ptr64 type.
* sys: improve bpf descriptionsDmitry Vyukov2017-09-021-5/+105
|
* pkg/compiler: restore generation of unsupported syscallsDmitry Vyukov2017-09-021-0/+449
| | | | | | Unfortunately this is sitll needed, see the added comment. Update #191
* pkg/compiler: check and generate typesDmitry Vyukov2017-09-021-23274/+13468
| | | | | | Move most of the logic from sysgen to pkg/compiler. Update #217
* sys: add AF_PACKET sockets descriptionAndrey Konovalov2017-09-011-0/+289
|
* sys: export struct/union attributesDmitry Vyukov2017-08-311-154/+154
| | | | | Export struct/union attributes so that they can be filled in by a different package.
* executor, fuzzer: change the way Syzkaller opens the KCOV deviceVictor Chibotaru2017-08-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: actually tolerate unsupported constsDmitry Vyukov2017-08-281-0/+33
| | | | | The previous commit removes errors on unsupported structs/resources, but their usages still error. Fix that.
* pkg/compiler: move more const-processing code to compilerDmitry Vyukov2017-08-271-110/+102
|
* pkg/compiler, sys/syz-sysgen: move const handling to pkg/compilerDmitry Vyukov2017-08-271-61/+0
| | | | Now pkg/compiler deals with consts.
* sys: improve tun descriptionsDmitry Vyukov2017-08-251-39/+89
|
* all: support i386 archDmitry Vyukov2017-08-191-0/+25991
| | | | Update #191
* overhaul syscall description generation processDmitry Vyukov2016-08-261-8/+0
| | | | | | | | | | | | | | | | | | | | | | 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/+8
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.