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

[Minios-devel] [UNIKRAFT PATCH v4 0/3] Introduce Unikraft system constructors



This patch introduces a new type of constructors for the unikraft 
internal libraries. The old constructors are now used as 
application constructors (eg. for the C++ standard library) and 
called before entering main.

This patch is based on a the work done by Simon Kuenzer from
here [1].

This patch series adds an array called ukplat_ctortab to the
Unikraft binaries. This array is NULL-terminated and contains
function pointers to constructors. It is populated during link
time.

Libraries can register a function to it by using the new macro
called UK_CTOR_FUNC (provided with include/uk/ctors.h).

[1]
https://lists.xenproject.org/archives/html/minios-devel/2018-02/msg00066.html

Changes from v1:
*) Changed to least and highest in ctors.h
*) Added support for the constructors un linuxu
*) Solved checkpatch errors introduced by the patch

Changes from v2:
*) Solved checkpatch issues in virtio_bus.h and
xenbus.h
*) Renamed /linuxu/arm/link64.lds to link.lds
*) Changed from CONFIG_ARCH_X86_64 to
CONFIG_ARCH_ARM_32
*) Moved application constructors at the beginning of
main_thread_func

Changes from v3:
*) Solved checkpath errors in plat/linuxu/arm/link.lds
and plat/linuxu/x86/link64.lds
*) Moved pre-init calls in main_thread_func before 
application constructor calls

Vlad-Andrei BĂDOIU (78692) (3):
  plat/*: Introduce unikraft internal constructors
  lib/ukboot: Call internal constructors
  lib,plat/*: Update the existing constructor calls

 include/uk/ctors.h                       | 68 ++++++++++++++++++++++++
 lib/ukboot/boot.c                        | 48 ++++++++++-------
 lib/ukbus/include/uk/bus.h               | 11 ++--
 lib/ukswrand/mwc.c                       |  8 +--
 lib/vfscore/fd.c                         |  5 +-
 lib/vfscore/main.c                       |  5 +-
 plat/common/include/pci/pci_bus.h        |  9 +++-
 plat/common/x86/link64.lds               |  9 ++++
 plat/drivers/include/virtio/virtio_bus.h | 13 +++--
 plat/kvm/arm/link64.lds.S                |  8 +++
 plat/linuxu/Linker.uk                    |  2 +
 plat/linuxu/arm/link.lds                 | 11 ++++
 plat/linuxu/x86/link64.lds               |  6 +++
 plat/xen/arm/link32.lds                  |  8 +++
 plat/xen/include/xenbus/xenbus.h         | 18 ++++---
 15 files changed, 190 insertions(+), 39 deletions(-)
 create mode 100644 include/uk/ctors.h
 create mode 100644 plat/linuxu/arm/link.lds
 create mode 100644 plat/linuxu/x86/link64.lds

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