diff options
| author | Miguel <m.i@gmx.at> | 2018-09-25 20:46:52 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-25 20:46:52 +0200 |
| commit | b58e7bc7cb8ce4fc6f824761ac8ef3920e7dfcc1 (patch) | |
| tree | d760847e65ac231e5a18a9051af15eac12ff071d /driver | |
| parent | 112ca29a3bb2ab38693943ed33ee51f4fd7d2d81 (diff) | |
working on icmp ping reply
Diffstat (limited to 'driver')
| -rw-r--r-- | driver/e1000.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/driver/e1000.c b/driver/e1000.c index 4c6b8de..4964dd1 100644 --- a/driver/e1000.c +++ b/driver/e1000.c @@ -411,20 +411,18 @@ void txinit() void e1000_handleReceive() { - uint16_t old_cur; - bool got_packet = false; while((rx_descs[rx_cur]->status !=0)) { - got_packet = true; - klog("GOT FIRST PACKET WOOOOW"); - uint8_t *buf = (uint8_t *)(uint32_t)rx_descs[rx_cur]->addr_lo; + uint16_t old_cur; + uint8_t *buf = rx_descs[rx_cur]->addr_lo; uint16_t len = rx_descs[rx_cur]->length; - // Here you should inject the received packet into your network stack - arp_incoming(&dev,buf); + // injecting the received packet into the network stack + net_incoming(&dev,buf); - rx_descs[rx_cur]->status = 0; + rx_descs[rx_cur]->status = 0; // reset status + old_cur = rx_cur; rx_cur = (rx_cur + 1) % E1000_NUM_RX_DESC; writeCommand(REG_RDT, old_cur ); @@ -442,8 +440,7 @@ int e1000_sendPacket(const void * p_data, uint16_t p_len) uint8_t old_cur = tx_cur; tx_cur = (tx_cur + 1) % E1000_NUM_TX_DESC; writeCommand(REG_TDT, tx_cur); - while(!(tx_descs[old_cur]->status & 0xff)); - klog("SENT FIRST PACKET WOOOOW"); + while(!(tx_descs[old_cur]->status & 0xff)); // TODO: seriously wait here!?!?!? return 0; } |
