aboutsummaryrefslogtreecommitdiffstats
path: root/sys/sys_ppc64le.go
Commit message (Collapse)AuthorAgeFilesLines
* sys: move linux descriptions to sys/linuxDmitry Vyukov2017-09-151-17171/+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-19/+19
|
* 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/+11279
| | | | 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: 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/+829
| | | | | | Unfortunately this is sitll needed, see the added comment. Update #191
* pkg/compiler: check and generate typesDmitry Vyukov2017-09-021-23244/+13088
| | | | | | Move most of the logic from sysgen to pkg/compiler. Update #217
* sys: add AF_PACKET sockets descriptionAndrey Konovalov2017-09-011-0/+290
|
* 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-92/+0
| | | | Now pkg/compiler deals with consts.
* sys: improve tun descriptionsDmitry Vyukov2017-08-251-39/+89
|
* sys, prog: switch values to to uint64Dmitry Vyukov2017-08-191-4346/+4346
| | | | | | | | | | We currently use uintptr for all values. This won't work for 32-bit archs. Moreover in some cases we use uintptr but assume that it is always 64-bits (e.g. in encodingexec). Switch everything to uint64. Update #324
* sys/syz-extract: switch to the new parserDmitry Vyukov2017-08-181-6/+36
|
* sys: reformat descriptionsDmitry Vyukov2017-08-181-117/+117
|
* sys: fix a single case of field starting from a digitDmitry Vyukov2017-08-181-6/+6
| | | | In preparation for a stricter parser.
* sys: add some known xattr namesDmitry Vyukov2017-08-161-9/+47
| | | | | | 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-2/+9
| | | | | Update #211 Update #310
* sys: describe chroot/getcwd/chdir/fchdirDmitry Vyukov2017-08-121-0/+8
| | | | Update #211
* sys: commit generated filesDmitry Vyukov2017-08-091-6/+7
|
* sys: provide list of intersting MSRs for KVMDmitry Vyukov2017-08-091-9/+9
|
* sys: fix recvmmsg signatureDmitry Vyukov2017-08-091-1/+1
| | | | recvmmsg has timeout argument.
* sys: improve ipv6 descriptionsDmitry Vyukov2017-08-071-76/+78
| | | | | | 1. Use proc type for fragment identifiers. 2. Remove dups from ipv6_types. 3. Fix ipv6_fragment_ext_header layout.
* sys: fix KVM_RUN ioctlAndrey Konovalov2017-08-011-1/+1
| | | | | | | | KVM_RUN ioctl must have arg set to 0, otherwise it returns EINVAL. This can lead to syzkaller not able to generate a C repro. Since arg value is undefined, it might have different values when executing a program with syz-exeprog vs executing a compiled C repro.
* prog: fix encoding for exec of result argsAndrey Konovalov2017-08-011-0/+3
| | | | | | ResultArg might have const value. Also add a test.
* prog: return error instead of panic when parsingAndrey Konovalov2017-07-241-0/+33
|
* prog: allow recursion for optional pointersAndrey Konovalov2017-07-191-0/+70
| | | | | | | | 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.
* prog: split Arg into smaller structsAndrey Konovalov2017-07-171-68/+71
| | | | | | | | | | | | | | | | | | | | | | 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.
* sys: add ETHTOOL ioctl in socket.txtJB Cayrou2017-06-191-0/+2563
| | | | | | 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-12/+20
|
* sys: check in generated filesDmitry Vyukov2017-06-131-0/+23163
| | | | | | | | | | | | | | | | | | 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-5365/+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.
* sys: fix incorrect argument type introduced in ↵Dmitry Vyukov2016-08-281-1/+1
| | | | 76906672672365b9e31328a0047baf62db9190b6
* sysgen: sort resources by name to avoid unnecessary diffsDmitry Vyukov2016-08-281-46/+46
|
* executor, csource: share some common code between executor and csourceDmitry Vyukov2016-08-281-43/+43
|
* sys: specify resources in text descriptionsDmitry Vyukov2016-08-271-994/+1056
| | | | | | 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.