On Friday, February 14, 2020 at 4:00:49 PM UTC-7, Jan Kiszka wrote:
>
> Well, we need the CR because we are also writing to real UARTs.

Oh, right, I guess I didn't realize that hardware UARTs would need to 
explicitly be told to do both a CR and a LF.
 

> If there 
> are tooling issues with the current reverse order (which was simpler to 
> implement IIRC), we can flip that

Well, I'm guessing hardware UARTs don't really care what order the CR and 
LF come in. So if that’s true, then I think it would be a good idea to 
print CR first, since that's what software expects.
 

> , e.g. like  this: 
>
> diff --git a/hypervisor/uart.c b/hypervisor/uart.c 
> index a43773c2..4f4eba4e 100644 
> --- a/hypervisor/uart.c 
> +++ b/hypervisor/uart.c 
> @@ -19,16 +19,19 @@ struct uart_chip *uart = NULL; 
>
>  void uart_write(const char *msg) 
>  { 
> -        char c = 0; 
> +        char c, cached_c = 0; 
>
>          while (1) { 
> -                if (c == '\n') 
> -                        c = '\r'; 
> -                else 
> -                        c = *msg++; 
> +                c = cached_c ? : *msg++; 
>                  if (!c) 
>                          break; 
>
> +                cached_c = 0; 
> +                if (c == '\n') { 
> +                        cached_c = c; 
> +                        c = '\r'; 
> +                } 
> + 
>                  while (uart->is_busy(uart)) 
>                          cpu_relax(); 
>                  if (panic_in_progress && panic_cpu != 
> phys_processor_id()) 
>
> Jan 
>
I think something like this would be good.

I tried this specific example out, and it completely freezes everything. 
Looking at the code closer, once cached_c is set to '\n', I think it 
becomes an infinite loop.

Thanks,
-Michael

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/7562e73e-cfc3-4df8-8ce2-8986f903d44b%40googlegroups.com.

Reply via email to