Added net_server compatibility to the Broadcom drivers (i.e. fixed non-blocking mode to actually work)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11279 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -97,7 +97,7 @@ void uninit_driver(void) {
|
|||||||
|
|
||||||
delete_area(pUmDevice->mem_base);
|
delete_area(pUmDevice->mem_base);
|
||||||
|
|
||||||
free(dev_list[j]);
|
free((void *)dev_list[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
mempool_exit();
|
mempool_exit();
|
||||||
@@ -174,7 +174,7 @@ status_t b44_ioctl(void *cookie,uint32 op,void *data,size_t len) {
|
|||||||
memcpy(data,pUmDevice->lm_dev.NodeAddress,6);
|
memcpy(data,pUmDevice->lm_dev.NodeAddress,6);
|
||||||
return B_OK;
|
return B_OK;
|
||||||
case ETHER_NONBLOCK:
|
case ETHER_NONBLOCK:
|
||||||
pUmDevice->block = *((uint8 *)(data));
|
pUmDevice->block = !*((uint8 *)(data));
|
||||||
return B_OK;
|
return B_OK;
|
||||||
case ETHER_ADDMULTI:
|
case ETHER_ADDMULTI:
|
||||||
return (b44_LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR;
|
return (b44_LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR;
|
||||||
@@ -238,8 +238,10 @@ status_t b44_read(void *cookie,off_t pos,void *data,size_t *numBytes) {
|
|||||||
release_spinlock(&pUmDevice->lock);
|
release_spinlock(&pUmDevice->lock);
|
||||||
restore_interrupts(cpu);
|
restore_interrupts(cpu);
|
||||||
|
|
||||||
if (pPacket == 0)
|
if (pPacket == 0) {
|
||||||
|
*numBytes = -1;
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
pUmPacket = (struct B_UM_PACKET *) pPacket;
|
pUmPacket = (struct B_UM_PACKET *) pPacket;
|
||||||
if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) ||
|
if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) ||
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ status_t b57_ioctl(void *cookie,uint32 op,void *data,size_t len) {
|
|||||||
memcpy(data,pUmDevice->lm_dev.NodeAddress,6);
|
memcpy(data,pUmDevice->lm_dev.NodeAddress,6);
|
||||||
return B_OK;
|
return B_OK;
|
||||||
case ETHER_NONBLOCK:
|
case ETHER_NONBLOCK:
|
||||||
pUmDevice->block = *((uint8 *)(data));
|
pUmDevice->block = !*((uint8 *)(data));
|
||||||
return B_OK;
|
return B_OK;
|
||||||
case ETHER_ADDMULTI:
|
case ETHER_ADDMULTI:
|
||||||
return (LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR;
|
return (LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR;
|
||||||
@@ -541,8 +541,10 @@ status_t b57_read(void *cookie,off_t pos,void *data,size_t *numBytes) {
|
|||||||
release_spinlock(&pUmDevice->lock);
|
release_spinlock(&pUmDevice->lock);
|
||||||
enable_interrupts(cpu);
|
enable_interrupts(cpu);
|
||||||
|
|
||||||
if (pPacket == 0)
|
if (pPacket == 0) {
|
||||||
|
*numBytes = -1;
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
pUmPacket = (struct B_UM_PACKET *) pPacket;
|
pUmPacket = (struct B_UM_PACKET *) pPacket;
|
||||||
if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) ||
|
if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user