X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Frtl8139.c;h=33a5cfa681a9a470b1de78f1313d6480e40b68f1;hb=6d9bc1787b5e409bb37a40f09c16cd8e66934491;hp=199d0d7c8506e9de370781cbc8da0e4b1c66f3eb;hpb=b349b55150ada21d3f973bf9a2571f7fd7312c4f;p=palacios.git diff --git a/palacios/src/devices/rtl8139.c b/palacios/src/devices/rtl8139.c index 199d0d7..33a5cfa 100644 --- a/palacios/src/devices/rtl8139.c +++ b/palacios/src/devices/rtl8139.c @@ -28,7 +28,7 @@ -#ifndef CONFIG_DEBUG_RTL8139 +#ifndef V3_CONFIG_DEBUG_RTL8139 #undef PrintDebug #define PrintDebug(fmts, args...) #endif @@ -171,16 +171,16 @@ struct rx_status_reg { union { uint16_t val; struct { - uint8_t rx_ok : 1; - uint8_t rx_bad_align : 1; - uint8_t rx_crc_err : 1; - uint8_t rx_too_long : 1; - uint8_t rx_runt : 1; - uint8_t rx_bad_sym : 1; - uint8_t reserved : 7; - uint8_t rx_brdcast : 1; - uint8_t rx_phys : 1; - uint8_t rx_multi : 1; + uint16_t rx_ok : 1; + uint16_t rx_bad_align : 1; + uint16_t rx_crc_err : 1; + uint16_t rx_too_long : 1; + uint16_t rx_runt : 1; + uint16_t rx_bad_sym : 1; + uint16_t reserved : 7; + uint16_t rx_brdcast : 1; + uint16_t rx_phys : 1; + uint16_t rx_multi : 1; } __attribute__((packed)); } __attribute__((packed)); } __attribute__((packed)); @@ -270,17 +270,17 @@ struct isr_imr_reg { union { uint16_t val; struct { - uint8_t rx_ok :1; - uint8_t rx_err : 1; - uint8_t tx_ok : 1; - uint8_t tx_err : 1; - uint8_t rx_ovw : 1; - uint8_t pun_linkchg : 1; - uint8_t rx_fifo_ovw : 1; - uint8_t reservd: 6; - uint8_t lenchg :1; - uint8_t timeout :1; - uint8_t syserr :1; + uint16_t rx_ok :1; + uint16_t rx_err : 1; + uint16_t tx_ok : 1; + uint16_t tx_err : 1; + uint16_t rx_ovw : 1; + uint16_t pun_linkchg : 1; + uint16_t rx_fifo_ovw : 1; + uint16_t reservd: 6; + uint16_t lenchg :1; + uint16_t timeout :1; + uint16_t syserr :1; } __attribute__((packed)); } __attribute__((packed)); } __attribute__((packed)); @@ -583,7 +583,7 @@ static inline void rtl8139_update_irq(struct rtl8139_state * nic_state) { if(isr & 0xffff){ v3_pci_raise_irq(nic_state->pci_bus, 0, nic_state->pci_dev); - nic_state->statistic.interrupts ++; + nic_state->statistic.tx_interrupts ++; } } @@ -1174,7 +1174,7 @@ static int tx_one_packet(struct rtl8139_state * nic_state, int descriptor){ v3_gpa_to_hva(&(nic_state->vm->cores[0]), (addr_t)pkt_gpa, &hostva); pkt = (uchar_t *)hostva; -#ifdef CONFIG_DEBUG_RTL8139 +#ifdef V3_CONFIG_DEBUG_RTL8139 v3_hexdump(pkt, txsize, NULL, 0); #endif @@ -1713,7 +1713,7 @@ static int register_dev(struct rtl8139_state * nic_state) { } bars[0].type = PCI_BAR_IO; - bars[0].default_base_port = 0xc100; + bars[0].default_base_port = -1; bars[0].num_ports = 0x100; bars[0].io_read = rtl8139_ioport_read; @@ -1774,10 +1774,8 @@ static int connect_fn(struct v3_vm_info * info, ops->recv = rtl8139_rx; ops->poll = NULL; - ops->start_tx = NULL; - ops->stop_tx = NULL; - ops->frontend_data = nic_state; - memcpy(ops->fnt_mac, nic_state->mac, ETH_ALEN); + ops->config.frontend_data = nic_state; + ops->config.fnt_mac = nic_state->mac; return 0; }