35 lines
645 B
C
35 lines
645 B
C
#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
|