From 997d2d833f4cf600fbbd116fa88c433e0aeebf52 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Sun, 31 Aug 2014 11:33:19 +0000 Subject: [PATCH] Provide pointer from struct ifnet to struct netmap_adapter, instead of abusing spare field. --- sys/dev/netmap/netmap_kern.h | 2 +- sys/net/if_var.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/netmap/netmap_kern.h b/sys/dev/netmap/netmap_kern.h index 26df8edd00c..e97d5b570db 100644 --- a/sys/dev/netmap/netmap_kern.h +++ b/sys/dev/netmap/netmap_kern.h @@ -1187,7 +1187,7 @@ extern int netmap_generic_rings; * WNA is used to write it. */ #ifndef WNA -#define WNA(_ifp) (_ifp)->if_pspare[0] +#define WNA(_ifp) (_ifp)->if_netmap #endif #define NA(_ifp) ((struct netmap_adapter *)WNA(_ifp)) diff --git a/sys/net/if_var.h b/sys/net/if_var.h index 82f33b3b2c6..8844892d90c 100644 --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -67,6 +67,7 @@ struct ifvlantrunk; struct route; /* if_output */ struct vnet; struct ifmedia; +struct netmap_adapter; #ifdef _KERNEL #include /* ifqueue only? */ @@ -202,6 +203,7 @@ struct ifnet { void *if_pf_kif; /* pf glue */ struct carp_if *if_carp; /* carp interface structure */ struct label *if_label; /* interface MAC label */ + struct netmap_adapter *if_netmap; /* netmap(4) softc */ /* Various procedures of the layer2 encapsulation and drivers. */ int (*if_output) /* output routine (enqueue) */