pcnet.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #define PCNET_IOPORT_SIZE 0x20
  2. #define PCNET_PNPMMIO_SIZE 0x20
  3. #define PCNET_LOOPTEST_CRC 1
  4. #define PCNET_LOOPTEST_NOCRC 2
  5. typedef struct PCNetState_st PCNetState;
  6. struct PCNetState_st {
  7. NICState *nic;
  8. NICConf conf;
  9. QEMUTimer *poll_timer;
  10. int rap, isr, lnkst;
  11. uint32_t rdra, tdra;
  12. uint8_t prom[16];
  13. uint16_t csr[128];
  14. uint16_t bcr[32];
  15. uint64_t timer;
  16. int mmio_index, xmit_pos;
  17. uint8_t buffer[4096];
  18. int tx_busy;
  19. qemu_irq irq;
  20. void (*phys_mem_read)(void *dma_opaque, target_phys_addr_t addr,
  21. uint8_t *buf, int len, int do_bswap);
  22. void (*phys_mem_write)(void *dma_opaque, target_phys_addr_t addr,
  23. uint8_t *buf, int len, int do_bswap);
  24. void *dma_opaque;
  25. int looptest;
  26. };
  27. void pcnet_h_reset(void *opaque);
  28. void pcnet_ioport_writew(void *opaque, uint32_t addr, uint32_t val);
  29. uint32_t pcnet_ioport_readw(void *opaque, uint32_t addr);
  30. void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val);
  31. uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr);
  32. uint32_t pcnet_bcr_readw(PCNetState *s, uint32_t rap);
  33. int pcnet_can_receive(VLANClientState *nc);
  34. ssize_t pcnet_receive(VLANClientState *nc, const uint8_t *buf, size_t size_);
  35. void pcnet_common_cleanup(PCNetState *d);
  36. int pcnet_common_init(DeviceState *dev, PCNetState *s, NetClientInfo *info);
  37. extern const VMStateDescription vmstate_pcnet;