[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v3 2/3] lib/ukboot: Call internal constructors
Hey sharan, Thank you for the review. Please see my comments inline. Vlad On 4/15/19 2:22 PM, Sharan Santhanam wrote: > Hello Vlad, > > Sorry I missed a comment, please find it inline. > > Thanks & Regards > Sharan > > > On 4/12/19 5:11 PM, Sharan Santhanam wrote: >> Hello Vlad, >> >> this patch seems fine. >> >> Reviewed-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx> >> >> Thanks & Regards >> Sharan >> >> On 4/10/19 1:02 PM, Vlad-Andrei BĂDOIU (78692) wrote: >>> From: Vlad-Andrei BĂDOIU (78692) <vlad_andrei.badoiu@xxxxxxxxxxxxxxx> >>> >>> Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx> >>> --- >>> lib/ukboot/boot.c | 26 +++++++++++++++++--------- >>> 1 file changed, 17 insertions(+), 9 deletions(-) >>> >>> diff --git a/lib/ukboot/boot.c b/lib/ukboot/boot.c >>> index 48467828..90224986 100644 >>> --- a/lib/ukboot/boot.c >>> +++ b/lib/ukboot/boot.c >>> @@ -56,6 +56,7 @@ >>> #include <uk/plat/time.h> >>> #include <uk/essentials.h> >>> #include <uk/print.h> >>> +#include <uk/ctors.h> >>> #include <uk/argparse.h> >>> #if CONFIG_LIBUKBUS >>> #include <uk/bus.h> >>> @@ -79,6 +80,17 @@ static void main_thread_func(void *arg) >>> int ret; >>> struct thread_main_arg *tma = arg; > > We move the __init_array_start alone. We should also move the > __preinit_array_start table. I moved it and tested it seems to work fine. I agree, we should also move __preinit_array_start. >>> + uk_pr_info("Constructor table at %p - %p\n", >>> + __init_array_start, &__init_array_end); >>> + ukplat_ctor_foreach(__init_array_start, __init_array_end, i) { >>> + if (__init_array_start[i]) { >>> + uk_pr_debug("Call constructor (entry %d (%p): %p())...\n", >>> + i, &__init_array_start[i], >>> + __init_array_start[i]); >>> + __init_array_start[i](); >>> + } >>> + } >>> + >>> #ifdef CONFIG_LIBUKBUS >>> uk_pr_info("Initialize bus handlers...\n"); >>> uk_bus_init_all(uk_alloc_get_default()); >>> @@ -141,6 +153,7 @@ void ukplat_entry_argp(char *arg0, char *argb, >>> __sz argb_len) >>> void ukplat_entry(int argc, char *argv[]) >>> { >>> int i; >>> + const uk_ctor_func_t *cfn; >>> struct thread_main_arg tma; >>> #if CONFIG_LIBUKALLOC >>> struct uk_alloc *a = NULL; >>> @@ -165,15 +178,10 @@ void ukplat_entry(int argc, char *argv[]) >>> } >>> } >>> - uk_pr_info("Constructor table at %p - %p\n", >>> - __init_array_start, &__init_array_end); >>> - ukplat_ctor_foreach(__init_array_start, __init_array_end, i) { >>> - if (__init_array_start[i]) { >>> - uk_pr_debug("Call constructor (entry %d (%p): %p())...\n", >>> - i, &__init_array_start[i], >>> - __init_array_start[i]); >>> - __init_array_start[i](); >>> - } >>> + uk_pr_info("Unikraft constructors table at %p\n", uk_ctortab); >>> + for (cfn = uk_ctortab; *cfn != NULL; ++cfn) { >>> + uk_pr_debug("Call constructor %p\n", *cfn); >>> + (*cfn)(); >>> } >>> #if CONFIG_LIBUKALLOC && CONFIG_LIBUKALLOCBBUDDY && >>> CONFIG_LIBUKBOOT_INITALLOC >>> >> >> _______________________________________________ >> Minios-devel mailing list >> Minios-devel@xxxxxxxxxxxxxxxxxxxx >> https://lists.xenproject.org/mailman/listinfo/minios-devel _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |