#pragma once #include "stdint.h" #include "stddef.h" #ifdef __cplusplus extern "C" { #endif typedef struct { uint16_t io_base; uint8_t mac[6]; uint8_t *rx_virt; uint64_t rx_phys; uint8_t *tx_virt[4]; uint64_t tx_phys[4]; uint16_t rx_offset; uint8_t tx_cur; int is_initialized; uint64_t rx_packets; uint64_t tx_packets; uint64_t rx_bytes; uint64_t tx_bytes; } rtl8139_dev_t; extern rtl8139_dev_t g_rtl8139; // RTL8139 API int rtl8139_init(void); int rtl8139_send_packet(const void *data, uint16_t len); int rtl8139_poll_packet(void *out_buf, uint16_t max_len); #ifdef __cplusplus } #endif