diff options
Diffstat (limited to 'src/drivers/driver.h')
-rw-r--r-- | src/drivers/driver.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 38dfe64..4d5689e 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -10,13 +10,21 @@ typedef struct { void (*print_info)( void *obj ); } driver_vtable_t; +typedef enum { + DRIVER_TYPE_KEYBOARD, + DRIVER_TYPE_MOUSE, + DRIVER_TYPE_GRAPHICS, + DRIVER_TYPE_NETWORK +} driver_type_t; + typedef struct { driver_vtable_t const *vtable; + driver_type_t type; interrupt_t *interrupt; void *context; } driver_t; -void driver_init( driver_t *driver, interrupt_t *interrupt, void *context ); +void driver_init( driver_t *driver, driver_type_t type, interrupt_t *interrupt, void *context ); void driver_activate( void *obj ); void driver_deactivate( void *obj ); void driver_deinit( void *obj ); @@ -35,5 +43,6 @@ void driver_manager_activate_all( driver_manager_t *manager ); void driver_manager_deactivate_all( driver_manager_t *manager ); void driver_manager_deinit( driver_manager_t *manager ); void driver_manager_print_info_all( driver_manager_t *manager ); +driver_t *driver_manager_find_driver( driver_manager_t *manager, driver_type_t type ); #endif // DRIVER_H |