Re: Full Syscall Support: Linux + OpenBSD 6.1
[Thread Prev] | [Thread Next]
- Subject: Re: Full Syscall Support: Linux + OpenBSD 6.1
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Reply-to: myrddin-dev@xxxxxxxxxxxxxx
- Date: Sun, 13 Aug 2017 23:52:13 -0700
- To: myrddin-dev@xxxxxxxxxxxxxx
Linux support has finally been reworked, and it's now generated from the Linux syscall.h and syscalls.tbl. This should be actual full system call coverage now, with the previous caveats. I'll post a writeup of how they're assembled the site soon. For now, look int mc/support/syscall-gen. The short summary of the contents of that directory: - gencalls.awk The code that parses the above files. It's a bit of a ball of muck, but it works reasonably well. It's called in two passes. It consumes three files: types+sys.myr, gentypes+sys.myr, and specials.myr In types.myr, we have exported type definitions and externs. In specials.myr, we have system call overrides. In gentypes.myr, we have types automatically scraped from system headers. The first pass parses the system calls and generates an incomplete sys+system-arch.myr. It also generates a file called `want.txt` with all the types that the system calls want. Then, c2myr.py consumes want.txt and generates The second pass does the same as the first one, but - gensys.sh The script that coordinates the above dance. - c2myr.py A pycparser based script that tries loading all of the system headers, then dumping a Myrddin definition for the types requested in want.txt. These types are dumped into gentypes+sys.myr. - syscalls+os.master: The BSD-style system call table data. Copied from /usr/src/sys/kern/syscalls.master, generally. Copied here for reproducibility. - syscalls+linux.tbl, syscalls+linux.h The Linux syscalll table and header with signatures. On Sun, 6 Aug 2017 01:56:00 -0700, Ori Bernstein <ori@xxxxxxxxxxxxxx> wrote: > With the help of scripts and conversion utilities, you should now be able to > call (nearly) every system call on Linux and OpenBSD. > > Like FreeBSD, The types should all be converted and available, but it's likely > that there will be some missing flags and constants, and some APIs will be > clunky and awkward, especially the ones that expect C strings. > > Over time, adding more overrides should happen. > > That leaves 2 incomplete platforms: NetBSD and OSX. > > -- > Ori Bernstein > -- Ori Bernstein
Full Syscall Support: Linux + OpenBSD 6.1 | Ori Bernstein <ori@xxxxxxxxxxxxxx> |
- Prev by Date: Full Syscall Support: Linux + OpenBSD 6.1
- Next by Date: Fixing The Implementation of Traits.
- Previous by thread: Full Syscall Support: Linux + OpenBSD 6.1
- Next by thread: Fixing The Implementation of Traits.
- Index(es):