[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 1/8] arch/*: Add STACK_MASK_TOP bit mask
Reviewed-by: Florian Schmidt <florian.schmidt@xxxxxxxxx> On 9/18/18 5:27 PM, Costin Lupu wrote: STACK_MASK_TOP is used for getting the current stack address (e.g. sp & STACK_MASK_TOP). Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> --- include/uk/arch/limits.h | 2 ++ lib/ukdebug/print.c | 2 +- lib/uksched/include/uk/thread.h | 2 +- plat/xen/x86/arch_events.c | 2 +- plat/xen/x86/entry64.S | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/uk/arch/limits.h b/include/uk/arch/limits.h index a0683ad..18aba2e 100644 --- a/include/uk/arch/limits.h +++ b/include/uk/arch/limits.h @@ -49,6 +49,8 @@ #include <uk/arch/arm/arm64/limits.h> #endif+#define STACK_MASK_TOP (~(__STACK_SIZE - 1))+ #ifndef __ASSEMBLY__#ifdef __X86_32__diff --git a/lib/ukdebug/print.c b/lib/ukdebug/print.c index 6f98d28..31bce98 100644 --- a/lib/ukdebug/print.c +++ b/lib/ukdebug/print.c @@ -100,7 +100,7 @@ static void _printd_stack(void) char buf[BUFLEN]; int len;- stackb = (ukarch_read_sp() & ~(__STACK_SIZE - 1)) + __STACK_SIZE;+ stackb = (ukarch_read_sp() & STACK_MASK_TOP) + __STACK_SIZE;len = snprintf(buf, BUFLEN, "<%p> ", (void *) stackb);_ukplat_coutd((char *)buf, len); diff --git a/lib/uksched/include/uk/thread.h b/lib/uksched/include/uk/thread.h index 4ffb002..e66a05b 100644 --- a/lib/uksched/include/uk/thread.h +++ b/lib/uksched/include/uk/thread.h @@ -70,7 +70,7 @@ struct uk_thread *uk_thread_current(void) struct uk_thread **current; unsigned long sp = ukarch_read_sp();- current = (struct uk_thread **) (sp & ~(__STACK_SIZE - 1));+ current = (struct uk_thread **) (sp & STACK_MASK_TOP);return *current;} diff --git a/plat/xen/x86/arch_events.c b/plat/xen/x86/arch_events.c index 5b88065..1e165c8 100644 --- a/plat/xen/x86/arch_events.c +++ b/plat/xen/x86/arch_events.c @@ -49,7 +49,7 @@ void arch_init_events(void) cpu0_pda.irqcount = -1; cpu0_pda.irqstackptr = (void *) (((unsigned long)irqstack + 2 * STACK_SIZE) - & ~(STACK_SIZE - 1)); + & STACK_MASK_TOP); #endif }diff --git a/plat/xen/x86/entry64.S b/plat/xen/x86/entry64.Sindex c266804..be2f6e8 100644 --- a/plat/xen/x86/entry64.S +++ b/plat/xen/x86/entry64.S @@ -62,7 +62,7 @@ _libxenplat_start: #endif cld movq stack_start(%rip),%rsp - andq $(~(__STACK_SIZE-1)), %rsp + andq $STACK_MASK_TOP, %rsp movq %rsi,%rdi call _libxenplat_x86entry -- Dr. Florian Schmidt フローリアン・シュミット Research Scientist, Systems and Machine Learning Group NEC Laboratories Europe Kurfürsten-Anlage 36, D-69115 Heidelberg Tel. +49 (0)6221 4342-265 Fax: +49 (0)6221 4342-155 e-mail: florian.schmidt@xxxxxxxxx ============================================================ Registered at Amtsgericht Mannheim, Germany, HRB728558 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |