summaryrefslogtreecommitdiff
path: root/src/drivers/net/network.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-08-01 16:23:09 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-08-01 16:23:09 +0200
commitd86f301ecb8c773cde8afc646a8b7ae578b8a232 (patch)
treec97556261bd02ec2765522e5451a018fa18a25fc /src/drivers/net/network.h
parent0f6576eba813fdb30b619b9b0b5fa7a76c6cf636 (diff)
downloadabaos-d86f301ecb8c773cde8afc646a8b7ae578b8a232.tar.gz
abaos-d86f301ecb8c773cde8afc646a8b7ae578b8a232.tar.bz2
we can receive network events, but the receive buffer remains empty
this is because we must enable DMA transfering on the PCI bus (bus master enable)
Diffstat (limited to 'src/drivers/net/network.h')
-rw-r--r--src/drivers/net/network.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/drivers/net/network.h b/src/drivers/net/network.h
index 8ec17cb..751ca40 100644
--- a/src/drivers/net/network.h
+++ b/src/drivers/net/network.h
@@ -11,16 +11,25 @@ typedef struct {
} network_mac_address_t;
typedef struct {
+} network_event_t;
+
+typedef void (*network_event_handler_t)( network_event_t *event, void *context );
+
+typedef struct {
driver_t base;
network_mac_address_t mac_address;
+ network_event_handler_t handler;
} network_t;
typedef struct {
driver_vtable_t base;
+ void (*register_handler)( void *obj, network_event_handler_t handler );
} network_vtable_t;
void network_init( network_t *network, interrupt_t *interrupt, void *context );
+void network_register_handler( void *obj, network_event_handler_t handler );
+
char *network_mac_to_string( network_mac_address_t mac, char *buf, size_t buflen );
#endif // NETWORK_H