summaryrefslogtreecommitdiff
path: root/src/drivers/net/network.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-20 10:24:27 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-20 10:24:27 +0200
commit949836a663eb652702fee79fd44b9c3f6863f920 (patch)
treec90047a98b7d3b5df073f071ddb24177ba6d597c /src/drivers/net/network.c
parent0a86aa386eded4fc657811603656f54011770dc9 (diff)
downloadabaos-949836a663eb652702fee79fd44b9c3f6863f920.tar.gz
abaos-949836a663eb652702fee79fd44b9c3f6863f920.tar.bz2
added a virtual network driver interface, made the dummy RTL8139 driver a specialization of it
(nothing is functional there yet)
Diffstat (limited to 'src/drivers/net/network.c')
-rw-r--r--src/drivers/net/network.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/drivers/net/network.c b/src/drivers/net/network.c
new file mode 100644
index 0000000..c60148f
--- /dev/null
+++ b/src/drivers/net/network.c
@@ -0,0 +1,43 @@
+#include "network.h"
+
+#include "string.h"
+#include "kernel.h"
+
+#undef DEBUG
+
+static network_vtable_t const network_vtable = {
+ {
+ network_activate,
+ network_deactivate,
+ network_deinit,
+ network_print_info
+ }
+};
+
+void network_init( network_t *network, interrupt_t *interrupt, void *context )
+{
+ memset( network, 0, sizeof( network_t ) );
+
+ driver_init( (driver_t *)network, DRIVER_TYPE_NETWORK, interrupt, context );
+
+ ((driver_t *)network)->vtable = (driver_vtable_t *)&network_vtable;
+}
+
+void network_activate( void *obj )
+{
+ kernel_panic( "Activating generic netowrk driver should not be called directly." );
+}
+
+void network_deactivate( void *obj )
+{
+ kernel_panic( "Deactivating generic netowrk driver should not be called directly." );
+}
+
+void network_deinit( void *obj )
+{
+ kernel_panic( "Printing info of generic network driver should not be called directly." );
+}
+
+void network_print_info( void *obj )
+{
+}