Return -1 when no data is available in receive hook, and 0 to indicate a retry, to make the net stack happy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19629 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -248,12 +248,12 @@ UNDI::Receive(void *buffer, size_t size)
|
|||||||
res = call_pxe_bios(fPxeData, UNDI_ISR, &undi_isr);
|
res = call_pxe_bios(fPxeData, UNDI_ISR, &undi_isr);
|
||||||
if (res != 0 || undi_isr.Status != 0) {
|
if (res != 0 || undi_isr.Status != 0) {
|
||||||
TRACE("PXENV_UNDI_ISR_IN_START failed, res %x, status %x\n", res, undi_isr.Status);
|
TRACE("PXENV_UNDI_ISR_IN_START failed, res %x, status %x\n", res, undi_isr.Status);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (undi_isr.FuncFlag != PXENV_UNDI_ISR_OUT_OURS) {
|
if (undi_isr.FuncFlag != PXENV_UNDI_ISR_OUT_OURS) {
|
||||||
// TRACE("not ours\n");
|
// TRACE("not ours\n");
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// send EOI to pic ?
|
// send EOI to pic ?
|
||||||
@@ -264,7 +264,7 @@ UNDI::Receive(void *buffer, size_t size)
|
|||||||
res = call_pxe_bios(fPxeData, UNDI_ISR, &undi_isr);
|
res = call_pxe_bios(fPxeData, UNDI_ISR, &undi_isr);
|
||||||
if (res != 0 || undi_isr.Status != 0) {
|
if (res != 0 || undi_isr.Status != 0) {
|
||||||
TRACE("PXENV_UNDI_ISR_IN_PROCESS failed, res %x, status %x\n", res, undi_isr.Status);
|
TRACE("PXENV_UNDI_ISR_IN_PROCESS failed, res %x, status %x\n", res, undi_isr.Status);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,16 +289,16 @@ UNDI::Receive(void *buffer, size_t size)
|
|||||||
case PXENV_UNDI_ISR_OUT_BUSY:
|
case PXENV_UNDI_ISR_OUT_BUSY:
|
||||||
TRACE("PXENV_UNDI_ISR_OUT_BUSY\n");
|
TRACE("PXENV_UNDI_ISR_OUT_BUSY\n");
|
||||||
fRxFinished = true;
|
fRxFinished = true;
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
case PXENV_UNDI_ISR_OUT_DONE:
|
case PXENV_UNDI_ISR_OUT_DONE:
|
||||||
TRACE("PXENV_UNDI_ISR_OUT_DONE\n");
|
TRACE("PXENV_UNDI_ISR_OUT_DONE\n");
|
||||||
fRxFinished = true;
|
fRxFinished = true;
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TRACE("default!!!\n");
|
TRACE("default!!!\n");
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user