blob: a4ffca084ce55b58eb99d177bb34655f52861cf5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#ifndef NETWORK_H
#define NETWORK_H
#include "driver.h"
#include "stdint.h"
#include "stddef.h"
typedef struct {
uint8_t byte[6];
} network_mac_address_t;
typedef struct {
uint16_t length;
uint8_t *data;
} 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
|