[cmdline] Expose "iflinkwait" as a command

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2021-01-26 15:44:59 +00:00
parent ade4d2b4fe
commit 42db0bd041
4 changed files with 67 additions and 7 deletions

View File

@@ -212,17 +212,20 @@ static int iflinkwait_progress ( struct ifpoller *ifpoller ) {
*
* @v netdev Network device
* @v timeout Timeout period, in ticks
* @v verbose Always display progress message
* @ret rc Return status code
*/
int iflinkwait ( struct net_device *netdev, unsigned long timeout ) {
int iflinkwait ( struct net_device *netdev, unsigned long timeout,
int verbose ) {
int rc;
/* Ensure device is open */
if ( ( rc = ifopen ( netdev ) ) != 0 )
return rc;
/* Return immediately if link is already up */
/* Return immediately if link is already up, unless being verbose */
netdev_poll ( netdev );
if ( netdev_link_ok ( netdev ) )
if ( netdev_link_ok ( netdev ) && ( ! verbose ) )
return 0;
/* Wait for link-up */
@@ -273,7 +276,7 @@ int ifconf ( struct net_device *netdev,
int rc;
/* Ensure device is open and link is up */
if ( ( rc = iflinkwait ( netdev, LINK_WAIT_TIMEOUT ) ) != 0 )
if ( ( rc = iflinkwait ( netdev, LINK_WAIT_TIMEOUT, 0 ) ) != 0 )
return rc;
/* Start configuration */

View File

@@ -208,9 +208,9 @@ int loopback_test ( struct net_device *sender, struct net_device *receiver,
return rc;
/* Wait for link-up */
if ( ( rc = iflinkwait ( sender, 0 ) ) != 0 )
if ( ( rc = iflinkwait ( sender, 0, 0 ) ) != 0 )
return rc;
if ( ( rc = iflinkwait ( receiver, 0 ) ) != 0 )
if ( ( rc = iflinkwait ( receiver, 0, 0 ) ) != 0 )
return rc;
/* Allocate data buffer */