aboutsummaryrefslogtreecommitdiffstats
path: root/sys/README.md
Commit message (Collapse)AuthorAgeFilesLines
* docs: move sys/README.md to docsAndrey Konovalov2017-06-141-229/+0
|
* sys, prog: add length of parent of parent to templatesAndrey Konovalov2017-01-231-0/+30
| | | | | | | | | | | | | | Example: ``` struct s1 { f0 len[s2] # length of s2 } struct s2 { f0 s1 f1 array[int32] } ```
* sys: don't imply pointer indirection for filename typeDmitry Vyukov2017-01-181-1/+1
| | | | | | | | 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.
* prog: add bitfields to templatesAndrey Konovalov2017-01-171-0/+21
| | | | | | Now it's possible to use `int32:18` to denote a bitfield of size 18 as a struct field. This fixes #72.
* sys: extend kvm supportDmitry Vyukov2017-01-091-0/+1
| | | | | | Add new pseudo syscall syz_kvm_setup_cpu that setups VCPU into interesting states for execution. KVM is too difficult to setup otherwise. Lots of improvements possible, but this is a starting point.
* sys: allow to specify number of pages for vma typeDmitry Vyukov2017-01-091-1/+2
| | | | Allows to write vma[4] or vma[5-10] to specify desired number of pages.
* sys: add proc type to denote per proccess integersAndrey Konovalov2016-11-251-1/+12
|
* sys: allow to specify buffer size for stringsDmitry Vyukov2016-11-111-1/+2
| | | | | | | | This allows to write: string[salg_type, 14] which will give a string buffer of size 14 regardless of actual string size. Convert salg_type/salg_name to this.
* sys: add string flagsDmitry Vyukov2016-11-111-3/+7
| | | | | | | | | | 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-1/+1
| | | | | In preparation for extending string functionality and to make it less magical.
* sys: replace FileoffType with IntType{Kind: IntFileoff}Dmitry Vyukov2016-11-111-3/+2
| | | | | 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.
* Update sys/README.mdAndrey Konovalov2016-10-111-17/+31
|
* Allow range sized arraysAndrey Konovalov2016-09-191-1/+1
|
* sys: specify resources in text descriptionsDmitry Vyukov2016-08-271-4/+18
| | | | | | 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.
* sys: fix links and formatting in README.mdDmitry Vyukov2016-08-261-14/+23
|
* sys: update README to describe the new 2-step generation processDmitry Vyukov2016-08-261-22/+35
|
* overhaul syscall description generation processDmitry Vyukov2016-08-261-0/+111
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.