35 lines
638 B
C
35 lines
638 B
C
#pragma once
|
|
|
|
#include "stdint.h"
|
|
#include "stdbool.h"
|
|
#include "stddef.h"
|
|
#include "pci.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct r8169_device {
|
|
uint8_t bus;
|
|
uint8_t slot;
|
|
uint8_t func;
|
|
uint16_t device_id;
|
|
uint16_t io_base;
|
|
uint8_t mac[6];
|
|
uint64_t rx_packets;
|
|
uint64_t rx_bytes;
|
|
uint64_t tx_packets;
|
|
uint64_t tx_bytes;
|
|
bool initialized;
|
|
} r8169_device_t;
|
|
|
|
extern r8169_device_t g_r8169;
|
|
|
|
int r8169_detect_and_init(void);
|
|
int r8169_send_packet(const void *packet, size_t length);
|
|
int r8169_receive_packet(void *buffer, size_t max_length);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|