freebsd-dev/sys/contrib/cloudabi
Ed Schouten 22f2f875ad Make execution of 32-bit CloudABI executables work on amd64.
A nice thing about requiring a vDSO is that it makes it incredibly easy
to provide full support for running 32-bit processes on 64-bit systems.
Instead of letting the kernel be responsible for composing/decomposing
64-bit arguments across multiple registers/stack slots, all of this can
now be done in the vDSO. This means that there is no need to provide
duplicate copies of certain system calls, like the sys_lseek() and
freebsd32_lseek() we have for COMPAT_FREEBSD32.

This change imports a new vDSO from the CloudABI repository that has
automatically generated code in it that copies system call arguments
into a buffer, padding them to eight bytes and zero-extending any
pointers/size_t arguments. After returning from the kernel, it does the
inverse: extracting return values, in the process truncating
pointers/size_t values to 32 bits.

Obtained from:	https://github.com/NuxiNL/cloudabi
2016-08-24 10:51:33 +00:00
..
cloudabi32_types.h Import the 32-bit system call table and data types into the tree. 2016-08-21 15:41:19 +00:00
cloudabi64_types.h Import the new automatically generated system call table for CloudABI. 2016-08-19 17:49:35 +00:00
cloudabi_types_common.h Import the new automatically generated system call table for CloudABI. 2016-08-19 17:49:35 +00:00
cloudabi_vdso_aarch64.S Rewrite the vDSOs for CloudABI in assembly. 2016-08-21 07:28:38 +00:00
cloudabi_vdso_i686_on_64bit.S Make execution of 32-bit CloudABI executables work on amd64. 2016-08-24 10:51:33 +00:00
cloudabi_vdso_i686.S Make CloudABI work on i386. 2016-08-22 17:37:31 +00:00
cloudabi_vdso_x86_64.S Rewrite the vDSOs for CloudABI in assembly. 2016-08-21 07:28:38 +00:00
syscalls32.master Fix s/64/32/ conversion errors in the system call table. 2016-08-21 15:56:19 +00:00
syscalls64.master Import the new automatically generated system call table for CloudABI. 2016-08-19 17:49:35 +00:00