diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 20:50:39 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 20:50:39 +0200 |
commit | cfc0bfa213a94a6dee80c15047026547847da91c (patch) | |
tree | d28dbf1b368777537e93fa526d66b98a789440c2 /src/drivers/driver.c | |
parent | 4be3058d96089d9e16983affbdf0d821b6e5adc3 (diff) | |
download | abaos-cfc0bfa213a94a6dee80c15047026547847da91c.tar.gz abaos-cfc0bfa213a94a6dee80c15047026547847da91c.tar.bz2 |
reworked driver init and vtable, taking the interrupt manager and the context
as parameters when creating a driver
Diffstat (limited to 'src/drivers/driver.c')
-rw-r--r-- | src/drivers/driver.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/drivers/driver.c b/src/drivers/driver.c index c9633b8..fae54e7 100644 --- a/src/drivers/driver.c +++ b/src/drivers/driver.c @@ -6,26 +6,20 @@ #include "stdlib.h" static driver_vtable_t const driver_vtable = { - driver_register_interrupt_handler, driver_activate, driver_deactivate, driver_deinit, driver_print_info }; -void driver_init( driver_t *driver ) +void driver_init( driver_t *driver, interrupt_t *interrupt, void *context ) { memset( driver, 0, sizeof( driver_t ) ); - driver->vtable = &driver_vtable; -} - -void driver_register_interrupt_handler( void *obj, interrupt_handler_func_t handler, void *context ) -{ - driver_t *driver = (driver_t *)obj; - - driver->handler = handler; + driver->interrupt = interrupt; driver->context = context; + + driver->vtable = &driver_vtable; } void driver_activate( void *obj ) |