On 05/07/2018 03:20 PM, Jan Kiszka wrote:
> On 2018-05-07 14:12, Ralf Ramsauer wrote:
>> We will enter this function if we hit unrecoverable state.
>>
>> Signed-off-by: Ralf Ramsauer <[email protected]>
>> ---
>>  inmates/lib/arm-common/include/inmate.h | 6 ++++++
>>  inmates/lib/x86/inmate.h                | 6 ++++++
>>  2 files changed, 12 insertions(+)
>>
>> diff --git a/inmates/lib/arm-common/include/inmate.h 
>> b/inmates/lib/arm-common/include/inmate.h
>> index 921fde96..1dfbdfbb 100644
>> --- a/inmates/lib/arm-common/include/inmate.h
>> +++ b/inmates/lib/arm-common/include/inmate.h
>> @@ -88,6 +88,12 @@ static inline void cpu_relax(void)
>>      asm volatile("" : : : "memory");
>>  }
>>  
>> +static inline void __attribute__((noreturn)) spin_forever(void)
> 
> The function sounds a bit like a busy loop. But it's not. In fact, if
> IRQs are off, there will be no loop at all.
> 
> Let's just call it halt(). In fact, we can use it some demos that just
> receive interrupts and don't do anything anymore in main() -> conversion
> patch welcome.

Good point. I'll add another patch. Shouldn't be a big deal.

  Ralf

> 
>> +{
>> +    for (;;)
> 
> I prefer "while (1)" / "while (true)" for such cases, but that's just
> personal taste.
> 
>> +            asm volatile("wfi" : : : "memory");
>> +}
>> +
>>  typedef void (*irq_handler_t)(unsigned int);
>>  void gic_setup(irq_handler_t handler);
>>  void gic_enable_irq(unsigned int irq);
>> diff --git a/inmates/lib/x86/inmate.h b/inmates/lib/x86/inmate.h
>> index 964a5435..f3c57d33 100644
>> --- a/inmates/lib/x86/inmate.h
>> +++ b/inmates/lib/x86/inmate.h
>> @@ -106,6 +106,12 @@ static inline void cpu_relax(void)
>>      asm volatile("rep; nop" : : : "memory");
>>  }
>>  
>> +static inline void __attribute__((noreturn)) spin_forever(void)
>> +{
>> +    for (;;)
>> +            asm volatile ("hlt" : : : "memory");
>> +}
>> +
>>  static inline void outb(u8 v, u16 port)
>>  {
>>      asm volatile("outb %0,%1" : : "a" (v), "dN" (port));
>>
> 
> Jan
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to