// Copyright (c) 2023-2026 Chris (boreddevnl) // This software is released under the GNU General Public License v3.0. See LICENSE file for details. // This header needs to maintain in any file it is present in, as per the GPL license terms. #ifndef NIC_H #define NIC_H #include #include #include "pci.h" typedef struct nic_driver { const char* name; int (*init)(pci_device_t* pci_dev); int (*send_packet)(const void* data, size_t length); int (*receive_packet)(void* buffer, size_t buffer_size); int (*get_mac_address)(uint8_t* mac_out); } nic_driver_t; int nic_init(void); nic_driver_t* nic_get_driver(void); int nic_send_packet(const void* data, size_t length); int nic_receive_packet(void* buffer, size_t buffer_size); int nic_get_mac_address(uint8_t* mac_out); #endif