#ifndef NETWORK_H #define NETWORK_H #include "driver.h" #include "stdint.h" #include "stddef.h" #include "ethernet.h" typedef struct { uint16_t length; uint8_t *data; } network_buffer_t; typedef struct { network_buffer_t buf; } 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 ); void (*write)( void *obj, network_buffer_t buf ); } 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 ); void network_write( void *obj, network_buffer_t buf ); #endif // NETWORK_H