diff options
Diffstat (limited to 'src/drivers/net/network.c')
-rw-r--r-- | src/drivers/net/network.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/drivers/net/network.c b/src/drivers/net/network.c index 46a3295..85bfdf2 100644 --- a/src/drivers/net/network.c +++ b/src/drivers/net/network.c @@ -7,11 +7,12 @@ static network_vtable_t const network_vtable = { { - driver_activate, - driver_deactivate, - driver_deinit, - driver_print_info - } + driver_activate, + driver_deactivate, + driver_deinit, + driver_print_info + }, + network_register_handler }; void network_init( network_t *network, interrupt_t *interrupt, void *context ) @@ -20,9 +21,18 @@ void network_init( network_t *network, interrupt_t *interrupt, void *context ) driver_init( (driver_t *)network, DRIVER_TYPE_NETWORK, interrupt, context ); + network->handler = NULL; + ((driver_t *)network)->vtable = (driver_vtable_t *)&network_vtable; } +void network_register_handler( void *obj, network_event_handler_t handler ) +{ + network_t *network = (network_t *)obj; + + network->handler = handler; +} + char *network_mac_to_string( network_mac_address_t mac, char *buf, size_t buflen ) { snprintf( buf, buflen, "%X:%X:%X:%X:%X:%X", |