david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[ui] Allow Ctrl-C to cancel wait for net device link-up

This really ought to be handled via monojob.c and the usual Ctrl-C
mechanism that handles cancelling DHCP or file downloads.
This commit is contained in:
Michael Brown 2009-01-27 20:09:50 +00:00
parent d10a7e7739
commit 52c596bafb
1 changed files with 9 additions and 0 deletions

View File

@ -20,9 +20,11 @@
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <console.h>
#include <gpxe/netdevice.h>
#include <gpxe/device.h>
#include <gpxe/process.h>
#include <gpxe/keys.h>
#include <usr/ifmgmt.h>
/** @file
@ -101,12 +103,19 @@ void ifstat ( struct net_device *netdev ) {
* @v max_wait_ms Maximum time to wait, in ms
*/
int iflinkwait ( struct net_device *netdev, unsigned int max_wait_ms ) {
int key;
while ( 1 ) {
if ( netdev_link_ok ( netdev ) )
return 0;
if ( max_wait_ms-- == 0 )
return -ETIMEDOUT;
step();
if ( iskey() ) {
key = getchar();
if ( key == CTRL_C )
return -ECANCELED;
}
mdelay ( 1 );
}
}