All qlocks are initialized
[akaros.git] / kern / include / net / dev.h
1 /* Copyright (c) 2010 The Regents of the University of California
2  * David Zhu <yuzhu@cs.berkeley.edu> 
3  * See LICENSE for details.
4  *
5  * Simplified network device interface */
6 #ifndef ROS_KERN_NET_DEV_H
7 #define ROS_KERN_NET_DEV_H
8
9 #include <bits/netinet.h>
10 #include <stdio.h>
11 #include <socket.h>
12 #include <ros/common.h>
13
14 struct net_device_ops {
15         int (*init)(struct netif *netif);
16         int (*send_frame) (struct netif *netif, const char data, size_t len) ;
17         int (*send_pbuf) (struct netif *netif, const struct pbuf* pb);
18         int (*recv_pbuf) (struct netif *netif, const struct pbuf* pb);
19 }
20
21 struct netif {
22         /* TODO: next netif so we can build a list of them*/
23         struct in_addr ip_addr;
24         struct in_addr gw;
25         uint16_t mtu;
26         uint8_t mac[6];
27         struct net_device_ops ops;
28         uint8_t eth_up;   // status 
29 }; 
30
31
32 #endif //ROS_KERN_NET_DEV_H