mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-26 03:09:12 +00:00
[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:
parent
d10a7e7739
commit
52c596bafb
@ -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 );
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user