[hci] Continue processing while prompting for shell banner
authorGuo-Fu Tseng <cooldavid@cooldavid.org>
Tue, 13 Jul 2010 13:18:47 +0000 (21:18 +0800)
committerMarty Connor <mdc@etherboot.org>
Sun, 1 Aug 2010 19:51:53 +0000 (15:51 -0400)
commit02e1db51140858113a9a6ffca4c775139b4a470c
treeb23d4473aa0d5e51898c207ed373ec1ed5a08982
parent99d3bd67d65464a7935092ebe5ec562e3dd21bd7
[hci] Continue processing while prompting for shell banner

Currently we do nothing while polling for user input in shell_banner.
This commit modifies shell_bannder to do something similar to what is
done in shell, where we schedule processes while waiting for user
input.

This approach provides two potential improvements:

First:
We increase key responsiveness in shell_banner. It is much more
likely to successfully get into shell than before. Before this
change I sometimes pressed the CTRL_B, but failed to get into
shell. It may have been caused by waiting too long in
mdelay(100).

Second:
When using scripts, if the downloaded image is not bootable,
gPXE exits before it has the opportunity to gracefully close
the TCP connection. This can leave the TCP state of a remote
server as not closed when it should have been.

gPXE waits for user to input for 2 seconds by default before
returning control to BIOS. This commit lets TCP have the
opportunity to gracefully close while waiting for the user to
hit keys in shell_banner.

Referenced: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
Commit-message-modified-by: Marty Connor <mdc@etherboot.org>
Signed-off-by: Marty Connor <mdc@etherboot.org>
src/core/getkey.c
src/hci/shell_banner.c
src/include/console.h