Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Dec 2002 11:46:11 -0800 (PST)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/boot/efi/libefi efi_console.c
Message-ID:  <200212081946.gB8JkBIt019765@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marcel      2002/12/08 11:46:11 PST

  Modified files:
    sys/boot/efi/libefi  efi_console.c 
  Log:
  In efi_cons_poll we check if a key is present (pending) by checking
  the signaled state of the apropriate event. As a side-effect of
  checking the event, it's signaled state is cleared if it was set.
  In efi_cons_getchar we used to wait for the apropriate event to be
  signaled before reading a character. This however does not work if
  we poll before reading the characteri, such as during autoboot. On
  a more compliant EFI implementation this resulted in the behaviour
  that hitting a key during autoboot would stop the countdown, but
  would then wait for a new character to arrive instead of reading
  the already pending key that stopped the countdown.
  
  The correct behaviour for efi_cons_getchar is to try to read a key
  and if none is pending, to wait for the apropriate event to signal
  the arrival of a new key.
  
  Note that with the previous behaviour, the second key would determine
  how the autoboot was interrupted. This would indicate that the first
  key got lost. This indicates that EFI does not necessarily maintain
  a queue of pending keys. FWIW...
  
  Approved by: re (carte blanche)
  French corrected by: various people :-)
  
  Revision  Changes    Path
  1.3       +10 -4     src/sys/boot/efi/libefi/efi_console.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200212081946.gB8JkBIt019765>