summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-05 15:46:18 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-05 15:46:18 +0200
commitc302b8a5a4b2fadf29b4f695dca7ba97b0491ba6 (patch)
tree4b438289663ad8a7423ab0c009e0854b6580bf46 /src
parentd01f574b08357dc0a64adcb14b87c2c1a393c29a (diff)
downloadabaos-c302b8a5a4b2fadf29b4f695dca7ba97b0491ba6.tar.gz
abaos-c302b8a5a4b2fadf29b4f695dca7ba97b0491ba6.tar.bz2
removed superfluous context in vga driver (was not used)
added dummy methods and driver_init for anonymous driver initialization
Diffstat (limited to 'src')
-rw-r--r--src/drivers/driver.c32
-rw-r--r--src/drivers/driver.h6
-rw-r--r--src/drivers/video/vga.c4
-rw-r--r--src/drivers/video/vga.h3
-rw-r--r--src/kernel/kernel.c2
5 files changed, 41 insertions, 6 deletions
diff --git a/src/drivers/driver.c b/src/drivers/driver.c
index 8c20676..aac2e36 100644
--- a/src/drivers/driver.c
+++ b/src/drivers/driver.c
@@ -2,6 +2,38 @@
#include "kernel.h"
#include "string.h"
+#include "stdio.h"
+
+static driver_vtable_t const driver_vtable = {
+ driver_activate,
+ driver_deactivate,
+ driver_deinit,
+ driver_print_info
+};
+
+void driver_init( driver_t *driver )
+{
+ memset( driver, 0, sizeof( driver_t ) );
+
+ driver->vtable = &driver_vtable;
+}
+
+void driver_activate( void *obj )
+{
+}
+
+void driver_deactivate( void *obj )
+{
+}
+
+void driver_deinit( void *obj )
+{
+}
+
+void driver_print_info( void *obj )
+{
+ puts( "Unknown driver" );
+}
void driver_manager_init( driver_manager_t *manager )
{
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index c725871..0f1a2b4 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -14,6 +14,12 @@ typedef struct {
driver_vtable_t const *vtable;
} driver_t;
+void driver_init( driver_t *driver );
+void driver_activate( void *obj );
+void driver_deactivate( void *obj );
+void driver_deinit( void *obj );
+void driver_print_info( void *obj );
+
#define MAX_NOF_DRIVERS 256
typedef struct {
diff --git a/src/drivers/video/vga.c b/src/drivers/video/vga.c
index b8e3120..146194e 100644
--- a/src/drivers/video/vga.c
+++ b/src/drivers/video/vga.c
@@ -17,7 +17,7 @@ static vga_vtable_t const vga_vtable = {
}
};
-void vga_init( vga_t *vga, void *context )
+void vga_init( vga_t *vga )
{
memset( vga, 0, sizeof( vga_t ) );
@@ -33,8 +33,6 @@ void vga_init( vga_t *vga, void *context )
port8_init( &vga->attribute_controller_write_port, 0x3C0 );
port8_init( &vga->attribute_controller_reset_port, 0x3DA );
- vga->context = context;
-
((driver_t *)vga)->vtable = (driver_vtable_t *)&vga_vtable;
}
diff --git a/src/drivers/video/vga.h b/src/drivers/video/vga.h
index d15a55d..bdc15cf 100644
--- a/src/drivers/video/vga.h
+++ b/src/drivers/video/vga.h
@@ -41,7 +41,6 @@ typedef struct {
port8_t attribute_controller_write_port;
port8_t attribute_controller_reset_port;
vga_mode_t mode;
- void *context;
bool use_z_buffer;
// TODO: the Z-buffer should actually be allocated dynamically
// depending on the current mode, for now it's a static buffer
@@ -57,7 +56,7 @@ typedef struct {
driver_vtable_t base;
} vga_vtable_t;
-void vga_init( vga_t *vga, void *context );
+void vga_init( vga_t *vga );
void vga_activate( void *obj );
void vga_deactivate( void *obj );
void vga_deinit( void *obj );
diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c
index a789139..dd61f45 100644
--- a/src/kernel/kernel.c
+++ b/src/kernel/kernel.c
@@ -152,7 +152,7 @@ void kernel_main( void )
pci_controller_scan_and_register( &pci_controller, &global_context.driver_manager, &interrupt );
// TODO: merge with the text mode vga_text_t object
- vga_init( &global_context.vga, NULL );
+ vga_init( &global_context.vga );
driver_manager_add_driver( &global_context.driver_manager, (driver_t *)&global_context.vga );
puts( "Activating drivers" );