summaryrefslogtreecommitdiff
path: root/src/hardware/pci.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 21:14:10 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 21:14:10 +0200
commit21c1989527191fa3739984a167d7a1cf939cfd6b (patch)
tree616c12b7cefde87570a4615fbd3ac13a91287bc3 /src/hardware/pci.c
parentcfc0bfa213a94a6dee80c15047026547847da91c (diff)
downloadabaos-21c1989527191fa3739984a167d7a1cf939cfd6b.tar.gz
abaos-21c1989527191fa3739984a167d7a1cf939cfd6b.tar.bz2
started to make driver construtors similar (keyboard, mouse)
passing context around to pci scanning function for driver initialization
Diffstat (limited to 'src/hardware/pci.c')
-rw-r--r--src/hardware/pci.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/hardware/pci.c b/src/hardware/pci.c
index 84249f9..0945a9a 100644
--- a/src/hardware/pci.c
+++ b/src/hardware/pci.c
@@ -65,7 +65,7 @@ void pci_controller_write( pci_controller_t *controller, uint16_t bus, uint16_t
port32_write( &controller->data_port, data );
}
-void pci_controller_scan_and_register( pci_controller_t *controller, driver_manager_t *driver_manager, interrupt_t *interrupt )
+void pci_controller_scan_and_register( pci_controller_t *controller, driver_manager_t *driver_manager, interrupt_t *interrupt, void *context )
{
for( int bus = 0; bus < NOF_BUSES; bus++ ) {
for( int device = 0; device < NOF_DEVICES_PER_BUS; device++ ) {
@@ -103,7 +103,7 @@ void pci_controller_scan_and_register( pci_controller_t *controller, driver_mana
}
}
- driver_t *driver = pci_device_get_driver( &device_descriptor, interrupt );
+ driver_t *driver = pci_device_get_driver( &device_descriptor, interrupt, context );
if( driver ) {
driver_manager_add_driver( driver_manager, driver );
}
@@ -157,7 +157,7 @@ void pci_base_address_register_init( pci_base_address_register_t *base_address_r
}
}
-driver_t *pci_device_get_driver( pci_device_descriptor_t *descriptor, interrupt_t *interrupt )
+driver_t *pci_device_get_driver( pci_device_descriptor_t *descriptor, interrupt_t *interrupt, void *context )
{
driver_t *driver = NULL;
@@ -167,7 +167,7 @@ driver_t *pci_device_get_driver( pci_device_descriptor_t *descriptor, interrupt_
switch( descriptor->device_id ) {
case 0x8139: // RTL8139
driver = (driver_t *)malloc( sizeof( rtl8139_t ) );
- rtl8139_init( (rtl8139_t *)driver, interrupt, NULL );
+ rtl8139_init( (rtl8139_t *)driver, interrupt, context );
break;
}
break;
@@ -188,7 +188,7 @@ driver_t *pci_device_get_driver( pci_device_descriptor_t *descriptor, interrupt_
// cannot load dynamically a VGA driver here!
// for now, let's put it directly into kernel.c
// for testing
- // vga_t *vga = malloc( sizeof( vga_t ) );
+ // vga_t *vga = malloc( sizeof( vga_t ), interrupt, context );
break;
}
break;