[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |