Reorder registers in other x86_64 assembler files
This fixes the previous commit which changed the register order in swapcontext only, which caused setcontext to subtly corrupt the stack.
|1 year ago|
|arch||1 year ago|
|.gitignore||2 years ago|
|LICENSE||2 years ago|
|Makefile||2 years ago|
|README.md||2 years ago|
|test_libucontext.c||2 years ago|
libucontext is a library which provides the
ucontext.h C API. Unlike other implementations,
it faithfully follows the kernel process ABI when doing context swaps.
Notably, when combined with
gcompat, it provides a fully compatible implementation of the ucontext
functions that are ABI compatible with glibc.
Adding support for new architectures is easy, but you need to know assembly language to do it.
Right now these archs are supported and should work on bare metal:
These archs require kernel assistance and use a syscall (the only assembly is the trampoline):
libucontext uses a simple makefile build system. You should define
ARCH= at build time, otherwise
the build system will attempt to guess using
$ make ARCH=x86_64 $ make ARCH=x86_64 check $ make ARCH=x86_64 DESTDIR=out install
libucontext is offered as part of the
gcompat project. Accordingly, please address all questions
and bug reports to firstname.lastname@example.org.