While we're modifying ether_driver.h, added in an ioctl for link state detection, and implemented it in the two Broadcom drivers.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9144 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Nathan Whitehorn
2004-10-01 03:01:20 +00:00
parent 57549ff41e
commit d774d9a0a1
3 changed files with 24 additions and 1 deletions
@@ -188,6 +188,12 @@ status_t b44_ioctl(void *cookie,uint32 op,void *data,size_t len) {
b44_LM_SetReceiveMask(&pUmDevice->lm_dev,
pUmDevice->lm_dev.ReceiveMask & ~LM_PROMISCUOUS_MODE);
return B_OK;
case ETHER_GETLINKSTATE: {
ether_link_state_t *state_buffer = (ether_link_state_t *)(data);
state_buffer->link_speed = (pUmDevice->lm_dev.LineSpeed == LM_LINE_SPEED_10MBPS) ? 10 : 100;
state_buffer->link_quality = (pUmDevice->lm_dev.LinkStatus == LM_STATUS_LINK_DOWN) ? 0.0 : 1.0;
state_buffer->duplex_mode = (pUmDevice->lm_dev.DuplexMode == LM_DUPLEX_MODE_FULL);
} return B_OK;
}
return B_ERROR;
}
@@ -438,6 +438,12 @@ status_t b57_ioctl(void *cookie,uint32 op,void *data,size_t len) {
LM_SetReceiveMask(&pUmDevice->lm_dev,
pUmDevice->lm_dev.ReceiveMask & ~LM_PROMISCUOUS_MODE);
return B_OK;
case ETHER_GETLINKSTATE: {
ether_link_state_t *state_buffer = (ether_link_state_t *)(data);
state_buffer->link_speed = pUmDevice->lm_dev.LineSpeed;
state_buffer->link_quality = (pUmDevice->lm_dev.LinkStatus == LM_STATUS_LINK_DOWN) ? 0.0 : 1.0;
state_buffer->duplex_mode = (pUmDevice->lm_dev.DuplexMode == LM_DUPLEX_MODE_FULL);
} return B_OK;
}
return B_ERROR;
}