summaryrefslogtreecommitdiffstats
path: root/sys/net/if_var.h
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2001-09-06 02:40:43 +0000
committerjlemon <jlemon@FreeBSD.org>2001-09-06 02:40:43 +0000
commitf729fe0a4a07f77cf2a60a88614a01b6bd649256 (patch)
treec9d6ec3dbd785e910055574e19a85daa63dc23d6 /sys/net/if_var.h
parent32d9aeaf2d0cb3d17941506155a2e52a94e50550 (diff)
downloadFreeBSD-src-f729fe0a4a07f77cf2a60a88614a01b6bd649256.zip
FreeBSD-src-f729fe0a4a07f77cf2a60a88614a01b6bd649256.tar.gz
Wrap array accesses in macros, which also happen to be lvalues:
ifnet_addrs[i - 1] -> ifaddr_byindex(i) ifindex2ifnet[i] -> ifnet_byindex(i) This is intended to ease the conversion to SMPng.
Diffstat (limited to 'sys/net/if_var.h')
-rw-r--r--sys/net/if_var.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index 7e760c7..5a4d92f 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -81,6 +81,7 @@ struct ether_header;
#endif /* _KERNEL */
#include <sys/lock.h> /* XXX */
#include <sys/mutex.h> /* XXX */
+#include <sys/event.h> /* XXX */
TAILQ_HEAD(ifnethead, ifnet); /* we use TAILQs so that the order of */
TAILQ_HEAD(ifaddrhead, ifaddr); /* instantiation is preserved in the list */
@@ -109,7 +110,8 @@ struct ifnet {
char *if_name; /* name, e.g. ``en'' or ``lo'' */
TAILQ_ENTRY(ifnet) if_link; /* all struct ifnets are chained */
struct ifaddrhead if_addrhead; /* linked list of addresses per if */
- int if_pcount; /* number of promiscuous listeners */
+ struct klist if_klist; /* events attached to this if */
+ int if_pcount; /* number of promiscuous listeners */
struct bpf_if *if_bpf; /* packet filter structure */
u_short if_index; /* numeric abbreviation for this if */
short if_unit; /* sub-unit for lower level driver */
@@ -371,12 +373,21 @@ struct ifmultiaddr {
(ifa)->ifa_refcnt--; \
} while (0)
+struct ifindex_entry {
+ struct ifnet *ife_ifnet;
+ struct ifaddr *ife_ifnet_addr;
+ dev_t ife_dev;
+};
+
+#define ifnet_byindex(idx) ifindex_table[(idx)].ife_ifnet
+#define ifaddr_byindex(idx) ifindex_table[(idx)].ife_ifnet_addr
+#define ifdev_byindex(idx) ifindex_table[(idx)].ife_dev
+
extern struct ifnethead ifnet;
-extern struct ifnet **ifindex2ifnet;
+extern struct ifindex_entry *ifindex_table;
extern int ifqmaxlen;
extern struct ifnet *loif; /* first loopback interface */
extern int if_index;
-extern struct ifaddr **ifnet_addrs;
void ether_ifattach __P((struct ifnet *, int));
void ether_ifdetach __P((struct ifnet *, int));
OpenPOWER on IntegriCloud