aboutsummaryrefslogtreecommitdiffstats
path: root/sysgen/fetch.go
Commit message (Collapse)AuthorAgeFilesLines
* overhaul syscall description generation processDmitry Vyukov2016-08-261-106/+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-1/+2
| | | | | 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.
* Add debug logging to sysgen/ codeDavid Drysdale2016-03-101-0/+4
|
* sysgen: Cope with non-inline kernel buildDavid Drysdale2016-03-101-4/+5
| | | | | | | | | | | When regenerating system call tables, cope with a local kernel tree where the kernel has been built into a separate directory (with `make O=...`) rather than inline. So: - LINUX makefile var / -linux command line option give location of source tree - LINUXBLD makefile var / -linuxbld command line option gives location of built kernel
* sysgen: fix build for CONFIG_DEBUG_VIRTUAL=yDmitry Vyukov2016-01-261-0/+3
|
* sys: use kernel headers instead of host headersDmitry Vyukov2016-01-221-6/+24
| | | | | | | | 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)
* sysgen: pull in syscall numbers from kernel headersDmitry Vyukov2015-12-241-0/+79
Syscall numbers for different architectures are now pulled in from kernel headers. This solves 2 problems: - we don't need to hardcode numbers for new syscalls (that don't present in typical distro headers) - we have correct number for different archs (previously hardcoded numbers were for x86_64) This also makes syscall numbers available for Go code, which can be useful.