#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_buffer[8192 + 16 + 1500] __attribute__((aligned(4))); uint8_t tx_buffers[4][1536] __attribute__((aligned(4))); 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