Magellan Linux

Contents of /trunk/mkinitrd-magellan/klibc/usr/kinit/ipconfig/netdev.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1122 - (show annotations) (download)
Wed Aug 18 21:11:40 2010 UTC (13 years, 8 months ago) by niro
File MIME type: text/plain
File size: 2272 byte(s)
-updated to klibc-1.5.19
1 #ifndef IPCONFIG_NETDEV_H
2 #define IPCONFIG_NETDEV_H
3
4 #include <sys/utsname.h>
5 #include <net/if.h>
6
7 #define BPLEN 256
8 #define FNLEN 128 /* from DHCP RFC 2131 */
9
10 struct netdev {
11 const char *name; /* Device name */
12 unsigned int ifindex; /* interface index */
13 unsigned int hwtype; /* ARPHRD_xxx */
14 unsigned int hwlen; /* HW address length */
15 uint8_t hwaddr[16]; /* HW address */
16 uint8_t hwbrd[16]; /* Broadcast HW address */
17 unsigned int mtu; /* Device mtu */
18 unsigned int caps; /* Capabilities */
19 time_t open_time;
20
21 struct { /* BOOTP/DHCP info */
22 int fd;
23 uint32_t xid;
24 uint32_t gateway; /* BOOTP/DHCP gateway */
25 } bootp;
26
27 struct { /* RARP information */
28 int fd;
29 } rarp;
30
31 uint32_t ip_addr; /* my address */
32 uint32_t ip_broadcast; /* broadcast address */
33 uint32_t ip_server; /* server address */
34 uint32_t ip_netmask; /* my subnet mask */
35 uint32_t ip_gateway; /* my gateway */
36 uint32_t ip_nameserver[2]; /* two nameservers */
37 uint32_t serverid; /* dhcp serverid */
38 char reqhostname[SYS_NMLN]; /* requested hostname */
39 char hostname[SYS_NMLN]; /* hostname */
40 char dnsdomainname[SYS_NMLN]; /* dns domain name */
41 char nisdomainname[SYS_NMLN]; /* nis domain name */
42 char bootpath[BPLEN]; /* boot path */
43 char filename[FNLEN]; /* filename */
44 struct netdev *next; /* next configured i/f */
45 };
46
47 extern struct netdev *ifaces;
48
49 /*
50 * Device capabilities
51 */
52 #define CAP_BOOTP (1<<0)
53 #define CAP_DHCP (1<<1)
54 #define CAP_RARP (1<<2)
55
56 /*
57 * Device states
58 */
59 #define DEVST_UP 0
60 #define DEVST_BOOTP 1
61 #define DEVST_DHCPDISC 2
62 #define DEVST_DHCPREQ 3
63 #define DEVST_COMPLETE 4
64 #define DEVST_ERROR 5
65
66 int netdev_getflags(struct netdev *dev, short *flags);
67 int netdev_setaddress(struct netdev *dev);
68 int netdev_setdefaultroute(struct netdev *dev);
69 int netdev_up(struct netdev *dev);
70 int netdev_down(struct netdev *dev);
71 int netdev_init_if(struct netdev *dev);
72 int netdev_setmtu(struct netdev *dev);
73
74 static inline int netdev_running(struct netdev *dev)
75 {
76 short flags;
77 int ret = netdev_getflags(dev, &flags);
78
79 return ret ? 0 : !!(flags & IFF_RUNNING);
80 }
81
82 #endif /* IPCONFIG_NETDEV_H */