diff options
author | ed <ed@FreeBSD.org> | 2015-07-16 18:24:06 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2015-07-16 18:24:06 +0000 |
commit | e0ca6c5ecbbdd5ade6eea81c075dbda74df27860 (patch) | |
tree | fada665f13fac54fc9486651419164b04c219564 /sys/sys/sysent.h | |
parent | 2f5dac4d012df75fe2f54100e90eaf1f50e60cc9 (diff) | |
download | FreeBSD-src-e0ca6c5ecbbdd5ade6eea81c075dbda74df27860.zip FreeBSD-src-e0ca6c5ecbbdd5ade6eea81c075dbda74df27860.tar.gz |
Add a sysentvec for CloudABI on x86-64.
Summary:
For CloudABI we need to put two things on the stack of new processes:
the argument data (a binary blob; not strings) and a startup data
structure. The startup data structure contains interesting things such
as a pointer to the ELF program header, the thread ID of the initial
thread, a stack smashing protection canary, and a pointer to the
argument data.
Fetching system call arguments and setting the return value is similar
to FreeBSD. The only differences are that system call 0 does not exist
and that we call into cloudabi_convert_errno() to convert the error
code. We also need this function in a couple of other places, so we'd
better reuse it here.
Reviewers: dchagin, kib
Reviewed By: kib
Subscribers: imp
Differential Revision: https://reviews.freebsd.org/D3098
Diffstat (limited to 'sys/sys/sysent.h')
-rw-r--r-- | sys/sys/sysent.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h index b1f61a9..980c796 100644 --- a/sys/sys/sysent.h +++ b/sys/sys/sysent.h @@ -153,6 +153,7 @@ struct sysentvec { /* same as ELFOSABI_XXX, to prevent header pollution */ #define SV_ABI_LINUX 3 #define SV_ABI_FREEBSD 9 +#define SV_ABI_CLOUDABI 17 #define SV_ABI_UNDEF 255 #ifdef _KERNEL |