351,7 → 351,7 |
if (dep->de_mode == DEM_SINK) |
{ |
assert(!from_int); |
dep->de_flags |= DEF_PACK_SEND; |
// dep->de_flags |= DEF_PACK_SEND; |
reply(dep, OK, FALSE); |
// return; |
return EOK; |
358,23 → 358,24 |
} |
assert(dep->de_mode == DEM_ENABLED); |
assert(dep->de_flags & DEF_ENABLED); |
if (dep->de_flags & DEF_SEND_AVAIL){ |
if( dep->packet_queue && ( ! from_int )){ |
// if (dep->de_flags & DEF_SEND_AVAIL){ |
// panic("", "dp8390: send already in progress", NO_NUM); |
return queue_packet( dep, packet ); |
} |
|
sendq_head= dep->de_sendq_head; |
if (dep->de_sendq[sendq_head].sq_filled) |
{ |
if (from_int) |
panic("", "dp8390: should not be sending\n", NO_NUM); |
// if (dep->de_sendq[sendq_head].sq_filled) |
// { |
// if (from_int) |
// panic("", "dp8390: should not be sending\n", NO_NUM); |
// dep->de_sendmsg= *mp; |
dep->de_flags |= DEF_SEND_AVAIL; |
reply(dep, OK, FALSE); |
// dep->de_flags |= DEF_SEND_AVAIL; |
// reply(dep, OK, FALSE); |
// return; |
return queue_packet( dep, packet ); |
} |
assert(!(dep->de_flags & DEF_PACK_SEND)); |
// return queue_packet( dep, packet ); |
// } |
// assert(!(dep->de_flags & DEF_PACK_SEND)); |
|
/* if (vectored) |
{ |
430,7 → 431,7 |
assert(sendq_head < SENDQ_NR); |
dep->de_sendq_head= sendq_head; |
|
dep->de_flags |= DEF_PACK_SEND; |
// dep->de_flags |= DEF_PACK_SEND; |
|
/* If the interrupt handler called, don't send a reply. The reply |
* will be sent after all interrupts are handled. |
720,7 → 721,7 |
outb_reg0(dep, DP_TBCR0, size & 0xff); |
outb_reg0(dep, DP_CR, CR_TXP | CR_EXTRA); |
} |
if (dep->de_flags & DEF_SEND_AVAIL) |
// if (dep->de_flags & DEF_SEND_AVAIL) |
dp_send(dep); |
} |
|
883,11 → 884,10 |
{ |
packet_t packet; |
|
if (!(dep->de_flags & DEF_SEND_AVAIL)) |
return; |
// if (!(dep->de_flags & DEF_SEND_AVAIL)) |
// return; |
|
dep->de_flags &= ~DEF_SEND_AVAIL; |
while( dep->packet_queue ){ |
if( dep->packet_queue ){ |
packet = dep->packet_queue; |
dep->packet_queue = pq_detach( packet ); |
do_pwrite( dep, packet, TRUE ); |
894,6 → 894,9 |
netif_pq_release( packet_get_id( packet )); |
-- dep->packet_count; |
} |
// if( ! dep->packet_queue ){ |
// dep->de_flags &= ~DEF_SEND_AVAIL; |
// } |
/* switch(dep->de_sendmsg.m_type) |
{ |
case DL_WRITE: do_vwrite(&dep->de_sendmsg, TRUE, FALSE); break; |
1557,7 → 1560,7 |
panic("", "dp8390: send failed:", r); |
|
*/ dep->de_read_s = 0; |
dep->de_flags &= ~(DEF_PACK_SEND | DEF_PACK_RECV); |
// dep->de_flags &= ~(DEF_PACK_SEND | DEF_PACK_RECV); |
} |
|
/*===========================================================================* |