#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