Files

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