32 lines
657 B
C
32 lines
657 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_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
|