[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH v2 0/5] lib/syscall_shim: Further improvements



This patch series introduces 3 improvements/fixes to the way how
system calls can be implemented and registered to the system call
shim library:
1) Introduces low-level variants of UK_SYSCALL_DEFINE and
   UK_SYSCALL_R_DEFINE that allow to implement own libc-style wrappers:
   UK_LLSYSCALL_DEFINE, UK_LLSYSCALL_R_DEFINE. These variants are
   needed whenever the signutare of libc-style wrappers does not match
   with the underlying Linux system call signature.
2) Introduces an option to disable generating libc-style wrappers.
   This is needed whenever a libC library is providing own wrappers
   and bases its implementations to lib/syscall_shim (e.g., musl).
3) UK_SYSCALL_R_DEFINE and UK_LLSYSCALL_R_DEFINE do no longer set the
   return type just to long. They use the user-given return type instead.
   This is done for convenience reasons because it reduces
   typecasting of return values on raw system call implementations.

Additionally, this series introduces two features which may helpful
when creating Unikernels:
4) An option to generate stubs for unavailable system calls in order
   to get the full API.
5) Provide a variant of uk_syscall() and uk_syscall_r() that accepts
   a variable argument list: uk_vsyscall() and uk_vsyscall_r()

Changes v2:
 - Series title changed from 'Improvements towards musl integration'
 - Option to generate libc-style wrapper stubs
 - Introduce uk_vsyscall(), uk_vsyscall_r()

Simon Kuenzer (5):
  lib/syscall_shim: UK_LLSYSCALL_(R_)_DEFINE variants
  lib/syscall_shim: Option to disable libc-style wrapper functions
  lib/syscall_shim: `UK_(LL)SYSCALL_R_DEFINE()`: Use given return type
  lib/syscall_shim: Provide uk_vsyscall(), uk_vsyscall_r()
  lib/syscall_shim: Option to generate libc-style stubs

 doc/guides/developers-app.rst          |  55 ++++++++--
 lib/syscall_shim/Config.uk             |  21 ++++
 lib/syscall_shim/Makefile.uk           |   8 ++
 lib/syscall_shim/gen_libc_stubs.awk    |  16 +++
 lib/syscall_shim/include/uk/syscall.h  | 140 ++++++++++++++++++++-----
 lib/syscall_shim/uk_syscall.c.in_end   |  12 +++
 lib/syscall_shim/uk_syscall_r.c.in_end |  12 +++
 7 files changed, 229 insertions(+), 35 deletions(-)
 create mode 100644 lib/syscall_shim/gen_libc_stubs.awk

-- 
2.20.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.