diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 17:38:09 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 17:38:09 +0200 |
commit | 76b381c5d30f32c3018a134d96f8a5c3ad677cfa (patch) | |
tree | bc151c2f2a8e07e0b08f4827ff24202088c20c0b /src/drivers/net | |
parent | 5631e68852081bb4e4eaa6e3bb3a53a4d024dff2 (diff) | |
download | abaos-76b381c5d30f32c3018a134d96f8a5c3ad677cfa.tar.gz abaos-76b381c5d30f32c3018a134d96f8a5c3ad677cfa.tar.bz2 |
added a dummy RTL8139 network driver
added register interrupt handler methods to drivers (but I'm pretty
unsure about them)
setting network in qemu startup and using RTL8139 emulation drivers
Diffstat (limited to 'src/drivers/net')
-rw-r--r-- | src/drivers/net/rtl8139.c | 47 | ||||
-rw-r--r-- | src/drivers/net/rtl8139.h | 20 |
2 files changed, 67 insertions, 0 deletions
diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c new file mode 100644 index 0000000..139f228 --- /dev/null +++ b/src/drivers/net/rtl8139.c @@ -0,0 +1,47 @@ +#include "rtl8139.h" + +#include "string.h" +#include "stdio.h" + +#undef DEBUG + +static rtl8139_vtable_t const rtl8139_vtable = { + { + driver_register_interrupt_handler, + rtl8139_activate, + rtl8139_deactivate, + rtl8139_deinit, + rtl8139_print_info + } +}; + +void rtl8139_init( rtl8139_t *rtl8139 ) +{ + memset( rtl8139, 0, sizeof( rtl8139_t ) ); + + ((driver_t *)rtl8139)->vtable = (driver_vtable_t *)&rtl8139_vtable; +} + +void rtl8139_activate( void *obj ) +{ + puts( "Activating driver for Realtek 8139 network card.." ); + + rtl8139_t *rtl8139 = obj; +} + +void rtl8139_deactivate( void *obj ) +{ + puts( "Dectivating driver for Realtek 8139 network card.." ); + + rtl8139_t *rtl8139 = obj; +} + +void rtl8139_deinit( void *obj ) +{ + // nothing to do +} + +void rtl8139_print_info( void *obj ) +{ + puts( "Realtek 8139 network card driver" ); +} diff --git a/src/drivers/net/rtl8139.h b/src/drivers/net/rtl8139.h new file mode 100644 index 0000000..fd3becc --- /dev/null +++ b/src/drivers/net/rtl8139.h @@ -0,0 +1,20 @@ +#ifndef RTL8139_H +#define RTL8139_H + +#include "driver.h" + +typedef struct { + driver_t base; +} rtl8139_t; + +typedef struct { + driver_vtable_t base; +} rtl8139_vtable_t; + +void rtl8139_init( rtl8139_t *rtl8139 ); +void rtl8139_activate( void *obj ); +void rtl8139_deactivate( void *obj ); +void rtl8139_deinit( void *obj ); +void rtl8139_print_info( void *obj ); + +#endif // RTL8139_H |