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

[Minios-devel] [UNIKRAFT PATCH 0/6] Support for binary system calls (x86_64, KVM for now)



This series prepares Unikraft to support binary system calls (`syscall`
instruction). This is introduced so that we can implement binary
compatibility with Unikraft on top. The patches introduce a
Syscall-ABI-independent API for libraries to register system call handlers.
Support for trapping `syscall` instructions is implemented first on KVM
platform. Other platforms may follow...

Simon Kuenzer (6):
  arch/x86: Move `struct __regs` definition to <uk/arch/lcpu.h>
  plat/common: Provide cpuid macro for x86
  plat/common: Provide rdmsr amd rdmsrl for x86
  plat/*: Add binary system call feature and API
  plat/common: Initialize `syscall`/`sysret` for x86
  plat/kvm: System call trap handler (x86_64)

 arch/x86/x86_64/include/uk/asm/lcpu.h         |  64 +++++++++
 include/uk/arch/lcpu.h                        |   4 +
 .../x86/regs.h => include/uk/plat/syscall.h   | 121 +++++++-----------
 lib/Config.uk                                 |   4 +
 plat/common/include/uk/plat/common/trace.h    |   6 +-
 plat/common/include/x86/cpu.h                 |  97 +++++++++++++-
 plat/common/include/x86/cpu_defs.h            |  22 ++++
 plat/common/include/x86/traps.h               |   2 +-
 plat/common/x86/syscall.S                     | 111 ++++++++++++++++
 plat/kvm/Config.uk                            |   2 +-
 plat/kvm/Makefile.uk                          |   3 +
 plat/kvm/x86/cpu_vectors_x86_64.S             |  11 +-
 plat/kvm/x86/setup.c                          |   4 +
 plat/linuxu/Config.uk                         |   1 +
 plat/xen/Config.uk                            |   1 +
 plat/xen/x86/entry64.S                        |  84 ++++++------
 16 files changed, 402 insertions(+), 135 deletions(-)
 rename plat/common/include/x86/regs.h => include/uk/plat/syscall.h (19%)
 create mode 100644 plat/common/x86/syscall.S

-- 
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®.