Merge remote-tracking branch 'upstream/master' into edge
[clinton/Smoothieware.git] / src / libs / Network / uip / Network.h
1 #ifndef _NETWORK_H
2 #define _NETWORK_H
3
4 #include "timer.h"
5 #include "LPC17XX_Ethernet.h"
6 #include "Module.h"
7
8
9 class Network : public Module
10 {
11 public:
12 Network();
13 virtual ~Network();
14
15 void on_module_loaded();
16 void on_idle(void* argument);
17 void on_main_loop(void* argument);
18 void on_get_public_data(void* argument);
19 void dhcpc_configured(uint32_t ipaddr, uint32_t ipmask, uint32_t ipgw);
20 static Network *getInstance() { return instance;}
21 void tapdev_send(void *pPacket, unsigned int size);
22
23 private:
24 void init();
25 uint32_t tick(uint32_t dummy);
26 void handlePacket();
27
28 static Network *instance;
29
30 LPC17XX_Ethernet *ethernet;
31
32 struct timer periodic_timer, arp_timer;
33 uint8_t mac_address[6];
34 uint8_t ipaddr[4];
35 uint8_t ipmask[4];
36 uint8_t ipgw[4];
37 char *hostname;
38 volatile uint32_t tickcnt;
39
40 };
41
42 #endif