[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input
From: |
Kevin O'Connor |
Subject: |
Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input |
Date: |
Mon, 4 Jul 2016 11:34:48 -0400 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Mon, Jul 04, 2016 at 11:16:45AM +0200, Gerd Hoffmann wrote:
> Hi,
>
> > > +#define FLAG_CTRL (1<<0)
> > > +#define FLAG_SHIFT (1<<1)
> > > +
> > > +VARLOW struct {
> > > + u8 flags;
> > > + u8 scancode;
> > > +} termchr[256] = {
> > > + [ '1' ] = { .scancode = 0x02, },
> >
> > I think this table should be generated at runtime from
> > kbd.c:scan_to_keycode[]. Since it doesn't change at runtime,
> > malloc_fseg() / GET_GLOBAL() could be used instead of VARLOW.
>
> Ah, ok. Didn't notice this one can be used for ascii -> scancode
> lookups.
>
> I'm wondering whenever it makes sense to build a reverse table. We
> could simply search scan_to_keycode[] instead. Sure it is slower than a
> table lookup, but still _way_ faster than any human can type, and we
> would save some real-mode memory.
Agreed.
[...]
> > There's a lot of complexity to implement buffering for
> > that unusual case. I wonder if the buffer could be avoided - I played
> > with it a little and came up with the below (totally untested). I'm
> > not sure if it's an improvement.
>
> Hmm, so you avoid the buffer by maintaining an index into termseq and
> matched byte count instead. Hmm. Yes, avoids the buffer and also a few
> cpu cycles because you can continue searching where you left off. I
> find the code flow harder to follow though.
Right. Yeah, also not sure it's an improvement.
Does the original code flush the multi-byte sequence on a timeout? I
suspect it is important that one can hit ESC without having to type
another key. Also, I'd prefer to avoid backwards gotos if possible.
-Kevin
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, (continued)
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Gerd Hoffmann, 2016/07/04
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Kevin O'Connor, 2016/07/04
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Paolo Bonzini, 2016/07/04
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Kevin O'Connor, 2016/07/04
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Gerd Hoffmann, 2016/07/04
- Re: [Qemu-devel] [RFC PATCH 1/2] serial console, output, Gerd Hoffmann, 2016/07/04
[Qemu-devel] [RFC PATCH 2/2] serial console, input, Gerd Hoffmann, 2016/07/01
- Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input, Kevin O'Connor, 2016/07/01
- Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input, Kevin O'Connor, 2016/07/01
- Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input, Gerd Hoffmann, 2016/07/04
- Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input,
Kevin O'Connor <=
- Re: [Qemu-devel] [SeaBIOS] [RFC PATCH 2/2] serial console, input, Gerd Hoffmann, 2016/07/04
Re: [Qemu-devel] [RFC PATCH 0/2] seabios: add serial console support, Gerd Hoffmann, 2016/07/01