|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCHv4 15/43] uk/arch: Add necessary header files for Arm64
Hi Simon,
> -----Original Message-----
> From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
> Sent: 2018年7月13日 18:32
> To: Julien Grall <Julien.Grall@xxxxxxx>; Wei Chen <Wei.Chen@xxxxxxx>; minios-
> devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx>
> Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 15/43] uk/arch: Add necessary
> header files for Arm64
>
> Hi all,
>
> On 13.07.2018 11:36, Julien Grall wrote:
> > Hi,
> >
> > On 13/07/18 10:13, Wei Chen wrote:
> >>>> +#ifndef __UKARCH_LCPU_H__
> >>>> +#error Do not include this header directly
> >>>> +#endif
> >>>> +
> >>>> +struct __regs {
> >>>> + /* Generic Purpose registers, from x0 ~ x29 */
> >>>> + unsigned long x[30];
> >>>> +
> >>>> + /* Link Register (x30) */
> >>>> + unsigned long lr;
> >>>> +
> >>>> + /* Exception Link Register */
> >>>> + unsigned long elr_el1;
> >>>> +
> >>>> + /* Processor State Register */
> >>>> + unsigned long spsr_el1;
> >>>> +
> >>>> + /* Exception Status Register */
> >>>> + unsigned long esr_el1;
> >>>> +
> >>>> + /* Stack Pointer */
> >>>> + unsigned long sp;
> >>>> +};
> >>>> +
> >>>> +#define isb() __asm__ __volatile("isb" ::: "memory")
> >>>
> >>> What is this intended for?
> >>
> >> This is for instruction memory barrier.
> >
> > Just to clarify, isb is not a memory barrier ;). It is an instruction
> > synchronization barrier. Any instructions in program order after the isb
> > will only be fetched from cache/memory once the instruction has
> > completed. This is used to ensure the effect of modification such as TLB
> > invalidation, system registers have been taken into account.
> >
> > I am not aware of any equivalent on x86.
> >
> > Cheers,
> >
>
> Nice, now I learned something more about Arm. ;-) I like the
> explicitness of the architecture. It is giving you much more control
> about when and what should happen on the hardware.
>
> My question: Is it clear for an Arm developer what "isb()" is or should
> we add a short comment to this definition?
Generally speaking it's enough. As you have such concern, I will add
Some comments for it ; )
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |