#ifndef NETWORK_H #define NETWORK_H #include "driver.h" #include "stdint.h" #include "stddef.h" typedef struct { uint8_t byte[6]; } network_mac_address_t; typedef struct { uint16_t length; uint8_t *data; } network_event_t; typedef void (*network_event_handler_t)( network_event_t *event, void *context ); typedef struct { driver_t base; network_mac_address_t mac_address; network_event_handler_t handler; } network_t; typedef struct { driver_vtable_t base; void (*register_handler)( void *obj, network_event_handler_t handler ); } network_vtable_t; void network_init( network_t *network, interrupt_t *interrupt, void *context ); void network_register_handler( void *obj, network_event_handler_t handler ); char *network_mac_to_string( network_mac_address_t mac, char *buf, size_t buflen ); #endif // NETWORK_H