[netdevice] Add netdev_is_open() wrapper function

Signed-off-by: Michael Brown <mcb30@etherboot.org>
pull/1/head
Michael Brown 2010-03-23 00:46:23 +00:00
parent b3533dd2bb
commit 88e436376c
10 changed files with 28 additions and 17 deletions

View File

@ -6,7 +6,7 @@
FILE_LICENCE ( GPL2_OR_LATER ); FILE_LICENCE ( GPL2_OR_LATER );
static int startpxe_payload ( struct net_device *netdev ) { static int startpxe_payload ( struct net_device *netdev ) {
if ( netdev->state & NETDEV_OPEN ) if ( netdev_is_open ( netdev ) )
pxe_activate ( netdev ); pxe_activate ( netdev );
return 0; return 0;
} }

View File

@ -366,7 +366,7 @@ pxenv_undi_set_station_address ( struct s_PXENV_UNDI_SET_STATION_ADDRESS
/* If adapter is open, the change will have no effect; return /* If adapter is open, the change will have no effect; return
* an error * an error
*/ */
if ( pxe_netdev->state & NETDEV_OPEN ) { if ( netdev_is_open ( pxe_netdev ) ) {
DBG ( " failed: netdev is open\n" ); DBG ( " failed: netdev is open\n" );
undi_set_station_address->Status = undi_set_station_address->Status =
PXENV_STATUS_UNDI_INVALID_STATE; PXENV_STATUS_UNDI_INVALID_STATE;

View File

@ -480,6 +480,17 @@ netdev_link_ok ( struct net_device *netdev ) {
return ( netdev->link_rc == 0 ); return ( netdev->link_rc == 0 );
} }
/**
* Check whether or not network device is open
*
* @v netdev Network device
* @v is_open Network device is open
*/
static inline __attribute__ (( always_inline )) int
netdev_is_open ( struct net_device *netdev ) {
return ( netdev->state & NETDEV_OPEN );
}
extern void netdev_link_down ( struct net_device *netdev ); extern void netdev_link_down ( struct net_device *netdev );
extern int netdev_tx ( struct net_device *netdev, struct io_buffer *iobuf ); extern int netdev_tx ( struct net_device *netdev, struct io_buffer *iobuf );
extern void netdev_tx_complete_err ( struct net_device *netdev, extern void netdev_tx_complete_err ( struct net_device *netdev,

View File

@ -328,7 +328,7 @@ efi_snp_station_address ( EFI_SIMPLE_NETWORK_PROTOCOL *snp, BOOLEAN reset,
memcpy ( snpdev->netdev->ll_addr, new, ll_protocol->ll_addr_len ); memcpy ( snpdev->netdev->ll_addr, new, ll_protocol->ll_addr_len );
/* MAC address changes take effect only on netdev_open() */ /* MAC address changes take effect only on netdev_open() */
if ( snpdev->netdev->state & NETDEV_OPEN ) { if ( netdev_is_open ( snpdev->netdev ) ) {
DBGC ( snpdev, "SNPDEV %p MAC address changed while net " DBGC ( snpdev, "SNPDEV %p MAC address changed while net "
"devive open\n", snpdev ); "devive open\n", snpdev );
} }
@ -713,7 +713,7 @@ static VOID EFIAPI efi_snp_wait_for_packet ( EFI_EVENT event,
DBGCP ( snpdev, "SNPDEV %p WAIT_FOR_PACKET\n", snpdev ); DBGCP ( snpdev, "SNPDEV %p WAIT_FOR_PACKET\n", snpdev );
/* Do nothing unless the net device is open */ /* Do nothing unless the net device is open */
if ( ! ( snpdev->netdev->state & NETDEV_OPEN ) ) if ( ! netdev_is_open ( snpdev->netdev ) )
return; return;
/* Poll the network device */ /* Poll the network device */

View File

@ -1304,7 +1304,7 @@ struct net80211_probe_ctx * net80211_probe_start ( struct net80211_device *dev,
if ( ! ctx ) if ( ! ctx )
return NULL; return NULL;
assert ( dev->netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( dev->netdev ) );
ctx->dev = dev; ctx->dev = dev;
ctx->old_keep_mgmt = net80211_keep_mgmt ( dev, 1 ); ctx->old_keep_mgmt = net80211_keep_mgmt ( dev, 1 );
@ -1908,7 +1908,7 @@ static int net80211_check_settings_update ( void )
int key_reassoc; int key_reassoc;
list_for_each_entry ( dev, &net80211_devices, list ) { list_for_each_entry ( dev, &net80211_devices, list ) {
if ( ! ( dev->netdev->state & NETDEV_OPEN ) ) if ( ! netdev_is_open ( dev->netdev ) )
continue; continue;
key_reassoc = 0; key_reassoc = 0;
@ -2012,7 +2012,7 @@ static void net80211_set_rtscts_rate ( struct net80211_device *dev )
*/ */
void net80211_set_rate_idx ( struct net80211_device *dev, int rate ) void net80211_set_rate_idx ( struct net80211_device *dev, int rate )
{ {
assert ( dev->netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( dev->netdev ) );
if ( rate >= 0 && rate < dev->nr_rates && rate != dev->rate ) { if ( rate >= 0 && rate < dev->nr_rates && rate != dev->rate ) {
DBGC2 ( dev, "802.11 %p changing rate from %d->%d Mbps\n", DBGC2 ( dev, "802.11 %p changing rate from %d->%d Mbps\n",
@ -2035,7 +2035,7 @@ int net80211_change_channel ( struct net80211_device *dev, int channel )
{ {
int i, oldchan = dev->channel; int i, oldchan = dev->channel;
assert ( dev->netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( dev->netdev ) );
for ( i = 0; i < dev->nr_channels; i++ ) { for ( i = 0; i < dev->nr_channels; i++ ) {
if ( dev->channels[i].channel_nr == channel ) { if ( dev->channels[i].channel_nr == channel ) {
@ -2064,7 +2064,7 @@ int net80211_change_channel ( struct net80211_device *dev, int channel )
int net80211_prepare_probe ( struct net80211_device *dev, int band, int net80211_prepare_probe ( struct net80211_device *dev, int band,
int active ) int active )
{ {
assert ( dev->netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( dev->netdev ) );
if ( active && ( band & NET80211_BAND_BIT_5GHZ ) ) { if ( active && ( band & NET80211_BAND_BIT_5GHZ ) ) {
DBGC ( dev, "802.11 %p cannot perform active scanning on " DBGC ( dev, "802.11 %p cannot perform active scanning on "
@ -2124,7 +2124,7 @@ int net80211_prepare_assoc ( struct net80211_device *dev,
struct net80211_handshaker *handshaker; struct net80211_handshaker *handshaker;
int rc; int rc;
assert ( dev->netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( dev->netdev ) );
net80211_set_state ( dev, NET80211_ASSOCIATED, 0, 0 ); net80211_set_state ( dev, NET80211_ASSOCIATED, 0, 0 );
memcpy ( dev->bssid, wlan->bssid, ETH_ALEN ); memcpy ( dev->bssid, wlan->bssid, ETH_ALEN );

View File

@ -118,7 +118,7 @@ static struct ipv4_miniroute * ipv4_route ( struct in_addr *dest ) {
/* Find first usable route in routing table */ /* Find first usable route in routing table */
list_for_each_entry ( miniroute, &ipv4_miniroutes, list ) { list_for_each_entry ( miniroute, &ipv4_miniroutes, list ) {
if ( ! ( miniroute->netdev->state & NETDEV_OPEN ) ) if ( ! netdev_is_open ( miniroute->netdev ) )
continue; continue;
local = ( ( ( dest->s_addr ^ miniroute->address.s_addr ) local = ( ( ( dest->s_addr ^ miniroute->address.s_addr )
& miniroute->netmask.s_addr ) == 0 ); & miniroute->netmask.s_addr ) == 0 );

View File

@ -130,7 +130,7 @@ int netdev_tx ( struct net_device *netdev, struct io_buffer *iobuf ) {
list_add_tail ( &iobuf->list, &netdev->tx_queue ); list_add_tail ( &iobuf->list, &netdev->tx_queue );
if ( ! ( netdev->state & NETDEV_OPEN ) ) { if ( ! netdev_is_open ( netdev ) ) {
rc = -ENETUNREACH; rc = -ENETUNREACH;
goto err; goto err;
} }
@ -263,7 +263,7 @@ void netdev_rx_err ( struct net_device *netdev,
*/ */
void netdev_poll ( struct net_device *netdev ) { void netdev_poll ( struct net_device *netdev ) {
if ( netdev->state & NETDEV_OPEN ) if ( netdev_is_open ( netdev ) )
netdev->op->poll ( netdev ); netdev->op->poll ( netdev );
} }
@ -509,7 +509,7 @@ struct net_device * last_opened_netdev ( void ) {
struct net_device *netdev; struct net_device *netdev;
list_for_each_entry ( netdev, &open_net_devices, open_list ) { list_for_each_entry ( netdev, &open_net_devices, open_list ) {
assert ( netdev->state & NETDEV_OPEN ); assert ( netdev_is_open ( netdev ) );
return netdev; return netdev;
} }

View File

@ -90,7 +90,7 @@ void ifstat ( struct net_device *netdev ) {
printf ( "%s: %s on %s (%s)\n" printf ( "%s: %s on %s (%s)\n"
" [Link:%s, TX:%d TXE:%d RX:%d RXE:%d]\n", " [Link:%s, TX:%d TXE:%d RX:%d RXE:%d]\n",
netdev->name, netdev_addr ( netdev ), netdev->dev->name, netdev->name, netdev_addr ( netdev ), netdev->dev->name,
( ( netdev->state & NETDEV_OPEN ) ? "open" : "closed" ), ( netdev_is_open ( netdev ) ? "open" : "closed" ),
( netdev_link_ok ( netdev ) ? "up" : "down" ), ( netdev_link_ok ( netdev ) ? "up" : "down" ),
netdev->tx_stats.good, netdev->tx_stats.bad, netdev->tx_stats.good, netdev->tx_stats.bad,
netdev->rx_stats.good, netdev->rx_stats.bad ); netdev->rx_stats.good, netdev->rx_stats.bad );

View File

@ -125,7 +125,7 @@ int iwlist ( struct net80211_device *dev ) {
char ssid_buf[22]; char ssid_buf[22];
int rc; int rc;
unsigned i; unsigned i;
int was_opened = dev->netdev->state & NETDEV_OPEN; int was_opened = netdev_is_open ( dev->netdev );
int was_channel = dev->channels[dev->channel].channel_nr; int was_channel = dev->channels[dev->channel].channel_nr;
if ( ! was_opened ) { if ( ! was_opened ) {

View File

@ -38,7 +38,7 @@ void route ( void ) {
printf ( "%s", inet_ntoa ( miniroute->netmask ) ); printf ( "%s", inet_ntoa ( miniroute->netmask ) );
if ( miniroute->gateway.s_addr ) if ( miniroute->gateway.s_addr )
printf ( " gw %s", inet_ntoa ( miniroute->gateway ) ); printf ( " gw %s", inet_ntoa ( miniroute->gateway ) );
if ( ! ( miniroute->netdev->state & NETDEV_OPEN ) ) if ( ! netdev_is_open ( miniroute->netdev ) )
printf ( " (inaccessible)" ); printf ( " (inaccessible)" );
printf ( "\n" ); printf ( "\n" );
} }