Eliminate use of curthread in if_ioctl functions by passing down the
authorJeffrey Hsu <hsu@dragonflybsd.org>
Tue, 23 Mar 2004 22:19:08 +0000 (22:19 +0000)
committerJeffrey Hsu <hsu@dragonflybsd.org>
Tue, 23 Mar 2004 22:19:08 +0000 (22:19 +0000)
ucred structure.

74 files changed:
sys/dev/netif/an/if_an.c
sys/dev/netif/ar/if_ar.c
sys/dev/netif/aue/if_aue.c
sys/dev/netif/awi/awi.c
sys/dev/netif/bfe/if_bfe.c
sys/dev/netif/bge/if_bge.c
sys/dev/netif/cs/if_cs.c
sys/dev/netif/cue/if_cue.c
sys/dev/netif/dc/if_dc.c
sys/dev/netif/de/if_de.c
sys/dev/netif/ed/if_ed.c
sys/dev/netif/em/if_em.c
sys/dev/netif/ep/if_ep.c
sys/dev/netif/ex/if_ex.c
sys/dev/netif/fe/if_fe.c
sys/dev/netif/fwe/if_fwe.c
sys/dev/netif/fxp/if_fxp.c
sys/dev/netif/gx/if_gx.c
sys/dev/netif/ie/if_ie.c
sys/dev/netif/kue/if_kue.c
sys/dev/netif/lge/if_lge.c
sys/dev/netif/lnc/if_lnc.c
sys/dev/netif/my/if_my.c
sys/dev/netif/nge/if_nge.c
sys/dev/netif/pcn/if_pcn.c
sys/dev/netif/plip/if_plip.c
sys/dev/netif/ray/if_ray.c
sys/dev/netif/rl/if_rl.c
sys/dev/netif/sbni/if_sbni.c
sys/dev/netif/sbsh/if_sbsh.c
sys/dev/netif/sf/if_sf.c
sys/dev/netif/sis/if_sis.c
sys/dev/netif/sk/if_sk.c
sys/dev/netif/sn/if_sn.c
sys/dev/netif/snc/dp83932.c
sys/dev/netif/sr/if_sr.c
sys/dev/netif/ste/if_ste.c
sys/dev/netif/ti/if_ti.c
sys/dev/netif/tl/if_tl.c
sys/dev/netif/tx/if_tx.c
sys/dev/netif/txp/if_txp.c
sys/dev/netif/vr/if_vr.c
sys/dev/netif/vx/if_vx.c
sys/dev/netif/wb/if_wb.c
sys/dev/netif/wi/if_wi.c
sys/dev/netif/wx/if_wx.c
sys/dev/netif/xe/if_xe.c
sys/dev/netif/xl/if_xl.c
sys/net/bpf.c
sys/net/disc/if_disc.c
sys/net/ef/if_ef.c
sys/net/faith/if_faith.c
sys/net/gif/if_gif.c
sys/net/gif/if_gif.h
sys/net/gre/if_gre.c
sys/net/if.c
sys/net/if_loop.c
sys/net/if_var.h
sys/net/ppp/if_ppp.c
sys/net/sl/if_sl.c
sys/net/stf/if_stf.c
sys/net/tap/if_tap.c
sys/net/tun/if_tun.c
sys/net/vlan/if_vlan.c
sys/netgraph/fec/ng_fec.c
sys/netgraph/iface/ng_iface.c
sys/netinet/if_atm.c
sys/netinet/in.c
sys/netinet6/in6.c
sys/netinet6/ip6_mroute.c
sys/netproto/atalk/at_control.c
sys/netproto/ipx/ipx.c
sys/netproto/natm/natm.c
sys/netproto/ns/ns.c

index 3fd27d0..87807a5 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/an/if_an.c,v 1.2.2.13 2003/02/11 03:32:48 ambrisko Exp $
- * $DragonFly: src/sys/dev/netif/an/if_an.c,v 1.10 2004/03/14 15:36:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/an/if_an.c,v 1.11 2004/03/23 22:18:58 hsu Exp $
  *
  * $FreeBSD: src/sys/dev/an/if_an.c,v 1.2.2.13 2003/02/11 03:32:48 ambrisko Exp $
  */
 /* These are global because we need them in sys/pci/if_an_p.c. */
 static void an_reset           (struct an_softc *);
 static int                     an_init_mpi350_desc     (struct an_softc *);
-static int an_ioctl            (struct ifnet *, u_long, caddr_t);
+static int an_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void an_init            (void *);
 static int an_init_tx_ring     (struct an_softc *);
 static void an_start           (struct ifnet *);
@@ -1839,17 +1840,17 @@ an_promisc(sc, promisc)
 }
 
 static int
-an_ioctl(ifp, command, data)
+an_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        int                     s, error = 0;
        int                     len;
        int                     i;
        struct an_softc         *sc;
        struct ifreq            *ifr;
-       struct thread           *td = curthread;
        struct ieee80211req     *ireq;
        u_int8_t                tmpstr[IEEE80211_NWID_LEN*2];
        u_int8_t                *tmpptr;
@@ -1915,7 +1916,7 @@ an_ioctl(ifp, command, data)
                        break;
 #ifdef ANCACHE
                if (sc->areq.an_type == AN_RID_ZERO_CACHE) {
-                       error = suser(td);
+                       error = suser_cred(cr, NULL_CRED_OKAY);
                        if (error)
                                break;
                        sc->an_sigitems = sc->an_nextitem = 0;
@@ -1939,7 +1940,7 @@ an_ioctl(ifp, command, data)
                error = copyout(&sc->areq, ifr->ifr_data, sizeof(sc->areq));
                break;
        case SIOCSAIRONET:
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                error = copyin(ifr->ifr_data, &sc->areq, sizeof(sc->areq));
                if (error != 0)
@@ -1947,7 +1948,7 @@ an_ioctl(ifp, command, data)
                an_setdef(sc, &sc->areq);
                break;
        case SIOCGPRIVATE_0:              /* used by Cisco client utility */
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl));
                mode = l_ioctl.command;
@@ -1967,7 +1968,7 @@ an_ioctl(ifp, command, data)
 
                break;
        case SIOCGPRIVATE_1:              /* used by Cisco client utility */
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl));
                l_ioctl.command = 0;
@@ -2200,7 +2201,7 @@ an_ioctl(ifp, command, data)
                }
                break;
        case SIOCS80211:
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                sc->areq.an_len = sizeof(sc->areq);
                /*
index a7038c3..209b6cc 100644 (file)
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/ar/if_ar.c,v 1.52.2.1 2002/06/17 15:10:57 jhay Exp $
- * $DragonFly: src/sys/dev/netif/ar/if_ar.c,v 1.6 2004/01/06 01:40:46 dillon Exp $
+ * $DragonFly: src/sys/dev/netif/ar/if_ar.c,v 1.7 2004/03/23 22:18:58 hsu Exp $
  */
 
 /*
@@ -191,7 +191,7 @@ static void arintr(void *arg);
 static void ar_xmit(struct ar_softc *sc);
 #ifndef NETGRAPH
 static void arstart(struct ifnet *ifp);
-static int arioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
+static int arioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *);
 static void arwatchdog(struct ifnet *ifp);
 #else  /* NETGRAPH */
 static void arstart(struct ar_softc *sc);
@@ -767,7 +767,7 @@ top_arstart:
 
 #ifndef        NETGRAPH
 static int
-arioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+arioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        int s, error;
        int was_up, should_be_up;
index 67f30cb..ebe4457 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_aue.c,v 1.78 2003/12/17 14:23:07 sanpei Exp $
- * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.8 2004/03/14 15:36:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.9 2004/03/23 22:18:58 hsu Exp $
  *
  * $FreeBSD: src/sys/dev/usb/if_aue.c,v 1.19.2.18 2003/06/14 15:56:48 trhodes Exp $
  */
@@ -192,7 +192,7 @@ Static void aue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status);
 Static void aue_tick(void *);
 Static void aue_rxstart(struct ifnet *);
 Static void aue_start(struct ifnet *);
-Static int aue_ioctl(struct ifnet *, u_long, caddr_t);
+Static int aue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 Static void aue_init(void *);
 Static void aue_stop(struct aue_softc *);
 Static void aue_watchdog(struct ifnet *);
@@ -1372,7 +1372,7 @@ aue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
 }
 
 Static int
-aue_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+aue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct aue_softc        *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *)data;
index 07c21c6..8796cea 100644 (file)
@@ -1,6 +1,6 @@
 /*     $NetBSD: awi.c,v 1.26 2000/07/21 04:48:55 onoe Exp $    */
 /* $FreeBSD: src/sys/dev/awi/awi.c,v 1.10.2.2 2003/01/23 21:06:42 sam Exp $ */
-/* $DragonFly: src/sys/dev/netif/awi/Attic/awi.c,v 1.10 2004/03/14 15:36:48 joerg Exp $ */
+/* $DragonFly: src/sys/dev/netif/awi/Attic/awi.c,v 1.11 2004/03/23 22:18:58 hsu Exp $ */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
 #include "awivar.h"
 #endif
 
-static int awi_ioctl (struct ifnet *ifp, u_long cmd, caddr_t data);
+static int awi_ioctl (struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *);
 #ifdef IFM_IEEE80211
 static int awi_media_rate2opt (struct awi_softc *sc, int rate);
 static int awi_media_opt2rate (struct awi_softc *sc, int opt);
@@ -444,12 +444,12 @@ awi_power(sc, why)
 #endif /* __NetBSD__ */
 
 static int
-awi_ioctl(ifp, cmd, data)
+awi_ioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
-       struct thread *td = curthread;
        struct awi_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
        struct ifaddr *ifa = (struct ifaddr *)data;
@@ -515,7 +515,7 @@ awi_ioctl(ifp, cmd, data)
                break;
        case SIOCS80211NWID:
 #if defined(__DragonFly__) || defined(__FreeBSD__)
-               error = suser(td);      /* EPERM if no proc */
+               error = suser_cred(cr, NULL_CRED_OKAY); /* EPERM if no proc */
                if (error)
                        break;
 #endif
@@ -549,7 +549,7 @@ awi_ioctl(ifp, cmd, data)
                break;
        case SIOCS80211NWKEY:
 #if defined(__DragonFly__) || defined(__FreeBSD__)
-               error = suser(td);      /* EPERM if no proc */
+               error = suser_cred(cr, NULL_CRED_OKAY); /* EPERM if no proc */
                if (error)
                        break;
 #endif
index fd0e0f2..61b9e5d 100644 (file)
@@ -29,7 +29,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/bfe/if_bfe.c 1.4.4.7 2004/03/02 08:41:33 julian Exp  v
- * $DragonFly: src/sys/dev/netif/bfe/if_bfe.c,v 1.3 2004/03/14 15:36:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/bfe/if_bfe.c,v 1.4 2004/03/23 22:18:59 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -92,7 +92,7 @@ static int    bfe_detach(device_t);
 static void    bfe_release_resources(struct bfe_softc *);
 static void    bfe_intr(void *);
 static void    bfe_start(struct ifnet *);
-static int     bfe_ioctl(struct ifnet *, u_long, caddr_t);
+static int     bfe_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    bfe_init(void *);
 static void    bfe_stop(struct bfe_softc *);
 static void    bfe_watchdog(struct ifnet *);
@@ -1426,7 +1426,7 @@ bfe_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
 }
 
 static int
-bfe_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+bfe_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct bfe_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *) data;
index ca02e55..7c3dc61 100644 (file)
@@ -31,7 +31,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.3.2.29 2003/12/01 21:06:59 ambrisko Exp $
- * $DragonFly: src/sys/dev/netif/bge/if_bge.c,v 1.17 2004/03/22 13:33:34 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/bge/if_bge.c,v 1.18 2004/03/23 22:18:59 hsu Exp $
  *
  */
 
@@ -192,7 +192,8 @@ static int bge_encap                (struct bge_softc *, struct mbuf *,
 
 static void bge_intr           (void *);
 static void bge_start          (struct ifnet *);
-static int bge_ioctl           (struct ifnet *, u_long, caddr_t);
+static int bge_ioctl           (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void bge_init           (void *);
 static void bge_stop           (struct bge_softc *);
 static void bge_watchdog               (struct ifnet *);
@@ -2801,10 +2802,11 @@ bge_ifmedia_sts(ifp, ifmr)
 }
 
 static int
-bge_ioctl(ifp, command, data)
+bge_ioctl(ifp, command, data, cr)
        struct ifnet *ifp;
        u_long command;
        caddr_t data;
+       struct ucred *cr;
 {
        struct bge_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *) data;
index 3709287..31f0c73 100644 (file)
@@ -28,7 +28,7 @@
 
 /*
  * $FreeBSD: src/sys/dev/cs/if_cs.c,v 1.19.2.1 2001/01/25 20:13:48 imp Exp $
- * $DragonFly: src/sys/dev/netif/cs/if_cs.c,v 1.6 2004/03/14 15:36:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/cs/if_cs.c,v 1.7 2004/03/23 22:18:59 hsu Exp $
  *
  * Device driver for Crystal Semiconductor CS8920 based ethernet
  *   adapters. By Maxim Bolotin and Oleg Sharoiko, 27-April-1997
 static int     cs_recv_delay = 570;
 SYSCTL_INT(_machdep, OID_AUTO, cs_recv_delay, CTLFLAG_RW, &cs_recv_delay, 0, "");
 
-static void    cs_init         (void *);
-static int     cs_ioctl        (struct ifnet *, u_long, caddr_t);
-static void    cs_start        (struct ifnet *);
-static void    cs_stop         (struct cs_softc *);
-static void    cs_reset        (struct cs_softc *);
-static void    cs_watchdog     (struct ifnet *);
+static void    cs_init(void *);
+static int     cs_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
+static void    cs_start(struct ifnet *);
+static void    cs_stop(struct cs_softc *);
+static void    cs_reset(struct cs_softc *);
+static void    cs_watchdog(struct ifnet *);
 
-static int     cs_mediachange  (struct ifnet *);
-static void    cs_mediastatus  (struct ifnet *, struct ifmediareq *);
-static int      cs_mediaset    (struct cs_softc *, int);
+static int     cs_mediachange(struct ifnet *);
+static void    cs_mediastatus(struct ifnet *, struct ifmediareq *);
+static int      cs_mediaset(struct cs_softc *, int);
 
 static void    cs_write_mbufs(struct cs_softc*, struct mbuf*);
 static void    cs_xmit_buf(struct cs_softc*);
@@ -92,8 +92,8 @@ static void   cs_setmode(struct cs_softc*);
 static int     get_eeprom_data(struct cs_softc *sc, int, int, int *);
 static int     get_eeprom_cksum(int, int, int *);
 static int     wait_eeprom_ready( struct cs_softc *);
-static void    control_dc_dc( struct cs_softc *, int );
-static int     send_test_pkt( struct cs_softc * );
+static void    control_dc_dc(struct cs_softc *, int );
+static int     send_test_pkt(struct cs_softc * );
 static int     enable_tp(struct cs_softc *);
 static int     enable_aui(struct cs_softc *);
 static int     enable_bnc(struct cs_softc *);
@@ -1087,7 +1087,8 @@ cs_setmode(struct cs_softc *sc)
 }
 
 static int
-cs_ioctl(register struct ifnet *ifp, u_long command, caddr_t data)
+cs_ioctl(register struct ifnet *ifp, u_long command, caddr_t data,
+    struct ucred *cr)
 {
        struct cs_softc *sc=ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
index de7015b..cc71cdb 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_cue.c,v 1.45 2003/12/08 07:54:14 obrien Exp $
- * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.7 2004/03/14 15:36:49 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.8 2004/03/23 22:18:59 hsu Exp $
  *
  */
 
@@ -107,7 +107,7 @@ Static void cue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status);
 Static void cue_tick(void *);
 Static void cue_rxstart(struct ifnet *);
 Static void cue_start(struct ifnet *);
-Static int cue_ioctl(struct ifnet *, u_long, caddr_t);
+Static int cue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 Static void cue_init(void *);
 Static void cue_stop(struct cue_softc *);
 Static void cue_watchdog(struct ifnet *);
@@ -1024,7 +1024,7 @@ cue_init(void *xsc)
 }
 
 Static int
-cue_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+cue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct cue_softc        *sc = ifp->if_softc;
        int                     error = 0;
index a768183..917b207 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_dc.c,v 1.9.2.45 2003/06/08 14:31:53 mux Exp $
- * $DragonFly: src/sys/dev/netif/dc/if_dc.c,v 1.9 2004/03/14 15:36:49 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/dc/if_dc.c,v 1.10 2004/03/23 22:18:59 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_dc.c,v 1.9.2.45 2003/06/08 14:31:53 mux Exp $
  */
@@ -209,7 +209,8 @@ static void dc_tick         (void *);
 static void dc_tx_underrun     (struct dc_softc *);
 static void dc_intr            (void *);
 static void dc_start           (struct ifnet *);
-static int dc_ioctl            (struct ifnet *, u_long, caddr_t);
+static int dc_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void dc_init            (void *);
 static void dc_stop            (struct dc_softc *);
 static void dc_watchdog                (struct ifnet *);
@@ -3364,10 +3365,11 @@ static void dc_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int dc_ioctl(ifp, command, data)
+static int dc_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct dc_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 8876dc2..6629160 100644 (file)
@@ -1,7 +1,7 @@
 /*     $NetBSD: if_de.c,v 1.86 1999/06/01 19:17:59 thorpej Exp $       */
 
 /* $FreeBSD: src/sys/pci/if_de.c,v 1.123.2.4 2000/08/04 23:25:09 peter Exp $ */
-/* $DragonFly: src/sys/dev/netif/de/if_de.c,v 1.9 2004/03/14 15:36:49 joerg Exp $ */
+/* $DragonFly: src/sys/dev/netif/de/if_de.c,v 1.10 2004/03/23 22:18:59 hsu Exp $ */
 
 /*-
  * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
@@ -4550,7 +4550,8 @@ static int
 tulip_ifioctl(
     struct ifnet * ifp,
     u_long cmd,
-    caddr_t data)
+    caddr_t data,
+    struct ucred * cr)
 {
     TULIP_PERFSTART(ifioctl)
     tulip_softc_t * const sc = (tulip_softc_t *)ifp->if_softc;
index 3a6f93d..b762d8e 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.224 2003/12/08 07:54:12 obrien Exp $
- * $DragonFly: src/sys/dev/netif/ed/if_ed.c,v 1.11 2004/03/14 15:36:49 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ed/if_ed.c,v 1.12 2004/03/23 22:18:59 hsu Exp $
  */
 
 /*
@@ -79,7 +79,7 @@
 devclass_t ed_devclass;
 
 static void    ed_init         (void *);
-static int     ed_ioctl        (struct ifnet *, u_long, caddr_t);
+static int     ed_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    ed_start        (struct ifnet *);
 static void    ed_reset        (struct ifnet *);
 static void    ed_watchdog     (struct ifnet *);
@@ -2661,10 +2661,11 @@ edintr(arg)
  *     pretty ugly.
  */
 static int
-ed_ioctl(ifp, command, data)
+ed_ioctl(ifp, command, data, cr)
        struct ifnet *ifp;
        u_long     command;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ed_softc *sc = ifp->if_softc;
 #ifndef ED_NO_MIIBUS
index a2e61b5..f8fe2a5 100644 (file)
@@ -32,7 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
 ***************************************************************************/
 
 /*$FreeBSD: src/sys/dev/em/if_em.c,v 1.2.2.15 2003/06/09 22:10:15 pdeuskar Exp $*/
-/*$DragonFly: src/sys/dev/netif/em/if_em.c,v 1.8 2004/03/17 04:59:41 dillon Exp $*/
+/*$DragonFly: src/sys/dev/netif/em/if_em.c,v 1.9 2004/03/23 22:19:00 hsu Exp $*/
 
 #include "if_em.h"
 
@@ -121,7 +121,7 @@ static int  em_detach(device_t);
 static int  em_shutdown(device_t);
 static void em_intr(void *);
 static void em_start(struct ifnet *);
-static int  em_ioctl(struct ifnet *, u_long, caddr_t);
+static int  em_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void em_watchdog(struct ifnet *);
 static void em_init(void *);
 static void em_stop(void *);
@@ -668,7 +668,7 @@ em_start(struct ifnet *ifp)
  **********************************************************************/
 
 static int
-em_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+em_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        int             s, mask, error = 0;
        struct ifreq   *ifr = (struct ifreq *) data;
index 49657d4..7629526 100644 (file)
@@ -39,7 +39,7 @@
 
 /*
  * $FreeBSD: src/sys/dev/ep/if_ep.c,v 1.95.2.3 2002/03/06 07:26:35 imp Exp $
- * $DragonFly: src/sys/dev/netif/ep/if_ep.c,v 1.8 2004/03/14 15:36:49 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ep/if_ep.c,v 1.9 2004/03/23 22:19:00 hsu Exp $
  *
  *  Promiscuous mode added and interrupt logic slightly changed
  *  to reduce the number of adapter failures. Transceiver select
@@ -105,7 +105,7 @@ static int  ep_media2if_media[] =
 
 /* if functions */
 static void    ep_if_init      (void *);
-static int     ep_if_ioctl     (struct ifnet *, u_long, caddr_t);
+static int     ep_if_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    ep_if_start     (struct ifnet *);
 static void    ep_if_watchdog  (struct ifnet *);
 
@@ -854,10 +854,11 @@ ep_ifmedia_sts(ifp, ifmr)
 }
 
 static int
-ep_if_ioctl(ifp, cmd, data)
+ep_if_ioctl(ifp, cmd, data, cr)
        struct ifnet *          ifp;
        u_long                  cmd;
        caddr_t                 data;
+       struct ucred *          cr;
 {
        struct ep_softc *       sc = ifp->if_softc;
        struct ifreq *          ifr = (struct ifreq *)data;
index c342302..280dcd9 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/ex/if_ex.c,v 1.26.2.3 2001/03/05 05:33:20 imp Exp $
- * $DragonFly: src/sys/dev/netif/ex/if_ex.c,v 1.8 2004/03/14 15:36:49 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ex/if_ex.c,v 1.9 2004/03/23 22:19:00 hsu Exp $
  *
  * MAINTAINER: Matthew N. Dodd <winter@jurai.net>
  *                             <mdodd@FreeBSD.org>
@@ -97,7 +97,7 @@ u_char plus_ee2irqmap[] =
 /* Network Interface Functions */
 static void    ex_init         (void *);
 static void    ex_start        (struct ifnet *);
-static int     ex_ioctl        (struct ifnet *, u_long, caddr_t);
+static int     ex_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    ex_watchdog     (struct ifnet *);
 
 /* ifmedia Functions   */
@@ -778,7 +778,7 @@ rx_another: ;
 
 
 static int
-ex_ioctl(register struct ifnet *ifp, u_long cmd, caddr_t data)
+ex_ioctl(register struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct ex_softc *       sc = ifp->if_softc;
        struct ifreq *          ifr = (struct ifreq *)data;
index c543b2d..d277aa2 100644 (file)
@@ -22,7 +22,7 @@
 
 /*
  * $FreeBSD: src/sys/dev/fe/if_fe.c,v 1.65.2.1 2000/09/22 10:01:47 nyan Exp $
- * $DragonFly: src/sys/dev/netif/fe/if_fe.c,v 1.7 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/fe/if_fe.c,v 1.8 2004/03/23 22:19:00 hsu Exp $
  *
  * Device driver for Fujitsu MB86960A/MB86965A based Ethernet cards.
  * Contributed by M. Sekiguchi. <seki@sysrap.cs.fujitsu.co.jp>
@@ -147,7 +147,8 @@ static struct fe_filter const fe_filter_all     = { FE_FILTER_ALL };
 /* Standard driver entry points.  These can be static.  */
 static void            fe_init         (void *);
 static inthand2_t      fe_intr;
-static int             fe_ioctl        (struct ifnet *, u_long, caddr_t);
+static int             fe_ioctl        (struct ifnet *, u_long, caddr_t,
+                                        struct ucred *);
 static void            fe_start        (struct ifnet *);
 static void            fe_watchdog     (struct ifnet *);
 static int             fe_medchange    (struct ifnet *);
@@ -1772,7 +1773,7 @@ fe_intr (void *arg)
  * pretty ugly.
  */
 static int
-fe_ioctl (struct ifnet * ifp, u_long command, caddr_t data)
+fe_ioctl (struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct fe_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
index 53c40a4..e10f04a 100644 (file)
@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  * 
  * $FreeBSD: src/sys/dev/firewire/if_fwe.c,v 1.27 2004/01/08 14:58:09 simokawa Exp $
- * $DragonFly: src/sys/dev/netif/fwe/if_fwe.c,v 1.9 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/fwe/if_fwe.c,v 1.10 2004/03/23 22:19:00 hsu Exp $
  */
 
 #include "opt_inet.h"
@@ -72,7 +72,7 @@
 
 /* network interface */
 static void fwe_start (struct ifnet *);
-static int fwe_ioctl (struct ifnet *, u_long, caddr_t);
+static int fwe_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 static void fwe_init (void *);
 
 static void fwe_output_callback (struct fw_xfer *);
@@ -391,7 +391,7 @@ found:
 
 
 static int
-fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct fwe_softc *fwe = ((struct fwe_eth_softc *)ifp->if_softc)->fwe;
        struct ifstat *ifs = NULL;
index d63785b..38a4a4a 100644 (file)
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.110.2.30 2003/06/12 16:47:05 mux Exp $
- * $DragonFly: src/sys/dev/netif/fxp/if_fxp.c,v 1.8 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/fxp/if_fxp.c,v 1.9 2004/03/23 22:19:00 hsu Exp $
  */
 
 /*
@@ -203,7 +203,7 @@ static void                 fxp_start(struct ifnet *ifp);
 static void            fxp_stop(struct fxp_softc *sc);
 static void            fxp_release(struct fxp_softc *sc);
 static int             fxp_ioctl(struct ifnet *ifp, u_long command,
-                           caddr_t data);
+                           caddr_t data, struct ucred *);
 static void            fxp_watchdog(struct ifnet *ifp);
 static int             fxp_add_rfabuf(struct fxp_softc *sc, struct mbuf *oldm);
 static int             fxp_mc_addrs(struct fxp_softc *sc);
@@ -1984,7 +1984,7 @@ fxp_miibus_writereg(device_t dev, int phy, int reg, int value)
 }
 
 static int
-fxp_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+fxp_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct fxp_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
index 7518cbc..315a1bc 100644 (file)
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/gx/if_gx.c,v 1.2.2.3 2001/12/14 19:51:39 jlemon Exp $
- * $DragonFly: src/sys/dev/netif/gx/Attic/if_gx.c,v 1.6 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/gx/Attic/if_gx.c,v 1.7 2004/03/23 22:19:01 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -159,7 +159,8 @@ static void gx_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr);
 static int     gx_miibus_readreg(device_t dev, int phy, int reg);
 static void    gx_miibus_writereg(device_t dev, int phy, int reg, int value);
 static void    gx_miibus_statchg(device_t dev);
-static int     gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data);
+static int     gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data,
+                   struct ucred *);
 static void    gx_setmulti(struct gx_softc *gx);
 static void    gx_reset(struct gx_softc *gx);
 static void    gx_phy_reset(struct gx_softc *gx);
@@ -906,7 +907,7 @@ gx_miibus_statchg(device_t dev)
 }
 
 static int
-gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct gx_softc *gx = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
index ac7f4c5..4e6daf3 100644 (file)
@@ -48,7 +48,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/ie/if_ie.c,v 1.72.2.4 2003/03/27 21:01:49 mdodd Exp $
- * $DragonFly: src/sys/dev/netif/ie/if_ie.c,v 1.8 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ie/if_ie.c,v 1.9 2004/03/23 22:19:01 hsu Exp $
  */
 
 /*
@@ -171,7 +171,8 @@ static int  ee16_probe(struct isa_device * dvp);
 static int     check_ie_present(int unit, caddr_t where, unsigned size);
 static void    ieinit(void *);
 static void    ie_stop(int unit);
-static int     ieioctl(struct ifnet * ifp, u_long command, caddr_t data);
+static int     ieioctl(struct ifnet * ifp, u_long command, caddr_t data,
+                       struct ucred *);
 static void    iestart(struct ifnet * ifp);
 
 static void    el_reset_586(int unit);
@@ -1741,7 +1742,7 @@ iereset(int unit)
        }
        printf("ie%d: reset\n", unit);
        ie_softc[unit].arpcom.ac_if.if_flags &= ~IFF_UP;
-       ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0);
+       ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0, (struct ucred *)NULL);
 
        /*
         * Stop i82586 dead in its tracks.
@@ -1759,7 +1760,7 @@ iereset(int unit)
 #endif
 
        ie_softc[unit].arpcom.ac_if.if_flags |= IFF_UP;
-       ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0);
+       ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0, (struct ucred *)NULL);
 
        splx(s);
        return;
@@ -2123,7 +2124,7 @@ ie_stop(int unit)
 }
 
 static int
-ieioctl(struct ifnet *ifp, u_long command, caddr_t data)
+ieioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        int     s, error = 0;
 
@@ -2195,7 +2196,8 @@ ie_mc_reset(int unit)
                /* XXX - this is broken... */
                if (ie->mcast_count >= MAXMCAST) {
                        ie->arpcom.ac_if.if_flags |= IFF_ALLMULTI;
-                       ieioctl(&ie->arpcom.ac_if, SIOCSIFFLAGS, (void *) 0);
+                       ieioctl(&ie->arpcom.ac_if, SIOCSIFFLAGS, (void *) 0,
+                               (struct ucred *)NULL);
                        goto setflag;
                }
                bcopy(LLADDR((struct sockaddr_dl *) ifma->ifma_addr),
index 4196c39..80640de 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  *  $FreeBSD: src/sys/dev/usb/if_kue.c,v 1.17.2.9 2003/04/13 02:39:25 murray Exp $
- * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.7 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.8 2004/03/23 22:19:01 hsu Exp $
  */
 
 /*
@@ -139,7 +139,7 @@ Static void kue_rxeof(usbd_xfer_handle, usbd_private_handle, usbd_status);
 Static void kue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status);
 Static void kue_start(struct ifnet *);
 Static void kue_rxstart(struct ifnet *);
-Static int kue_ioctl(struct ifnet *, u_long, caddr_t);
+Static int kue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 Static void kue_init(void *);
 Static void kue_stop(struct kue_softc *);
 Static void kue_watchdog(struct ifnet *);
@@ -957,7 +957,7 @@ kue_init(void *xsc)
 }
 
 Static int
-kue_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+kue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct kue_softc        *sc = ifp->if_softc;
        int                     error = 0;
index d773244..6412e75 100644 (file)
@@ -31,7 +31,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.5.2.2 2001/12/14 19:49:23 jlemon Exp $
- * $DragonFly: src/sys/dev/netif/lge/if_lge.c,v 1.8 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/lge/if_lge.c,v 1.9 2004/03/23 22:19:01 hsu Exp $
  *
  * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.5.2.2 2001/12/14 19:49:23 jlemon Exp $
  */
@@ -144,7 +144,8 @@ static void lge_txeof               (struct lge_softc *);
 static void lge_intr           (void *);
 static void lge_tick           (void *);
 static void lge_start          (struct ifnet *);
-static int lge_ioctl           (struct ifnet *, u_long, caddr_t);
+static int lge_ioctl           (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void lge_init           (void *);
 static void lge_stop           (struct lge_softc *);
 static void lge_watchdog               (struct ifnet *);
@@ -1536,10 +1537,11 @@ static void lge_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int lge_ioctl(ifp, command, data)
+static int lge_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct lge_softc        *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 7dd3953..56dfa47 100644 (file)
@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/lnc/if_lnc.c,v 1.89 2001/07/04 13:00:19 nyan Exp $
- * $DragonFly: src/sys/dev/netif/lnc/Attic/if_lnc.c,v 1.8 2004/03/14 15:36:50 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/lnc/Attic/if_lnc.c,v 1.9 2004/03/23 22:19:01 hsu Exp $
  */
 
 /*
@@ -136,7 +136,8 @@ static void lnc_init(void *);
 static __inline int mbuf_to_buffer(struct mbuf *m, char *buffer);
 static __inline struct mbuf *chain_to_cluster(struct mbuf *m);
 static void lnc_start(struct ifnet *ifp);
-static int lnc_ioctl(struct ifnet *ifp, u_long command, caddr_t data);
+static int lnc_ioctl(struct ifnet *ifp, u_long command, caddr_t data,
+                    struct ucred *);
 static void lnc_watchdog(struct ifnet *ifp);
 #ifdef DEBUG
 void lnc_dump_state(struct lnc_softc *sc);
@@ -1398,7 +1399,7 @@ lnc_start(struct ifnet *ifp)
 }
 
 static int
-lnc_ioctl(struct ifnet * ifp, u_long command, caddr_t data)
+lnc_ioctl(struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr)
 {
 
        struct lnc_softc *sc = ifp->if_softc;
index 0f1f993..ed02b74 100644 (file)
@@ -26,7 +26,7 @@
  * Written by: yen_cw@myson.com.tw  available at: http://www.myson.com.tw/
  *
  * $FreeBSD: src/sys/dev/my/if_my.c,v 1.2.2.4 2002/04/17 02:05:27 julian Exp $
- * $DragonFly: src/sys/dev/netif/my/if_my.c,v 1.7 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/my/if_my.c,v 1.8 2004/03/23 22:19:01 hsu Exp $
  *
  * Myson fast ethernet PCI NIC driver
  *
@@ -123,7 +123,7 @@ static void     my_txeof(struct my_softc *);
 static void     my_txeoc(struct my_softc *);
 static void     my_intr(void *);
 static void     my_start(struct ifnet *);
-static int      my_ioctl(struct ifnet *, u_long, caddr_t);
+static int      my_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void     my_init(void *);
 static void     my_stop(struct my_softc *);
 static void     my_watchdog(struct ifnet *);
@@ -1741,7 +1741,7 @@ my_ifmedia_sts(struct ifnet * ifp, struct ifmediareq * ifmr)
 }
 
 static int
-my_ioctl(struct ifnet * ifp, u_long command, caddr_t data)
+my_ioctl(struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct my_softc *sc = ifp->if_softc;
        struct ifreq   *ifr = (struct ifreq *) data;
index 1cc3397..6effea1 100644 (file)
@@ -31,7 +31,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.13.2.13 2003/02/05 22:03:57 mbr Exp $
- * $DragonFly: src/sys/dev/netif/nge/if_nge.c,v 1.7 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/nge/if_nge.c,v 1.8 2004/03/23 22:19:01 hsu Exp $
  *
  * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.13.2.13 2003/02/05 22:03:57 mbr Exp $
  */
@@ -162,7 +162,8 @@ static void nge_txeof               (struct nge_softc *);
 static void nge_intr           (void *);
 static void nge_tick           (void *);
 static void nge_start          (struct ifnet *);
-static int nge_ioctl           (struct ifnet *, u_long, caddr_t);
+static int nge_ioctl           (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void nge_init           (void *);
 static void nge_stop           (struct nge_softc *);
 static void nge_watchdog               (struct ifnet *);
@@ -2151,10 +2152,11 @@ static void nge_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int nge_ioctl(ifp, command, data)
+static int nge_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct nge_softc        *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index d5dd10a..72632e2 100644 (file)
@@ -31,7 +31,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_pcn.c,v 1.5.2.10 2003/03/05 18:42:33 njl Exp $
- * $DragonFly: src/sys/dev/netif/pcn/if_pcn.c,v 1.8 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/pcn/if_pcn.c,v 1.9 2004/03/23 22:19:02 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_pcn.c,v 1.5.2.10 2003/03/05 18:42:33 njl Exp $
  */
@@ -125,7 +125,8 @@ static void pcn_txeof               (struct pcn_softc *);
 static void pcn_intr           (void *);
 static void pcn_tick           (void *);
 static void pcn_start          (struct ifnet *);
-static int pcn_ioctl           (struct ifnet *, u_long, caddr_t);
+static int pcn_ioctl           (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void pcn_init           (void *);
 static void pcn_stop           (struct pcn_softc *);
 static void pcn_watchdog               (struct ifnet *);
@@ -1260,10 +1261,11 @@ static void pcn_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int pcn_ioctl(ifp, command, data)
+static int pcn_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct pcn_softc        *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 425684e..33846a3 100644 (file)
@@ -25,7 +25,7 @@
  *
  *     From Id: lpt.c,v 1.55.2.1 1996/11/12 09:08:38 phk Exp
  * $FreeBSD: src/sys/dev/ppbus/if_plip.c,v 1.19.2.1 2000/05/24 00:20:57 n_hibma Exp $
- * $DragonFly: src/sys/dev/netif/plip/if_plip.c,v 1.6 2004/01/06 03:17:24 dillon Exp $
+ * $DragonFly: src/sys/dev/netif/plip/if_plip.c,v 1.7 2004/03/23 22:19:02 hsu Exp $
  */
 
 /*
@@ -168,7 +168,7 @@ static u_char *ctxmith;
 
 /* Functions for the lp# interface */
 static int lpinittables(void);
-static int lpioctl(struct ifnet *, u_long, caddr_t);
+static int lpioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static int lpoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
        struct rtentry *);
 static void lp_intr(void *);
@@ -295,7 +295,7 @@ lpinittables (void)
  */
 
 static int
-lpioctl (struct ifnet *ifp, u_long cmd, caddr_t data)
+lpioctl (struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
     device_t dev = UNITODEVICE(ifp->if_dunit);
     device_t ppbus = device_get_parent(dev);
index 338fcce..aea2fa3 100644 (file)
@@ -29,7 +29,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/ray/if_ray.c,v 1.47.2.4 2001/08/14 22:54:05 dmlb Exp $
- * $DragonFly: src/sys/dev/netif/ray/Attic/if_ray.c,v 1.10 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ray/Attic/if_ray.c,v 1.11 2004/03/23 22:19:02 hsu Exp $
  *
  */
 
@@ -312,7 +312,7 @@ static void ray_intr                (void *xsc);
 static void    ray_intr_ccs            (struct ray_softc *sc, u_int8_t cmd, u_int8_t status, size_t ccs);
 static void    ray_intr_rcs            (struct ray_softc *sc, u_int8_t cmd, size_t ccs);
 static void    ray_intr_updt_errcntrs  (struct ray_softc *sc);
-static int     ray_ioctl               (struct ifnet *ifp, u_long command, caddr_t data);
+static int     ray_ioctl               (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr);
 static void    ray_mcast               (struct ray_softc *sc, struct ray_comq_entry *com); 
 static void    ray_mcast_done          (struct ray_softc *sc, u_int8_t status, size_t ccs); 
 static int     ray_mcast_user          (struct ray_softc *sc); 
@@ -628,7 +628,8 @@ ray_detach(device_t dev)
  * Network ioctl request.
  */
 static int
-ray_ioctl(register struct ifnet *ifp, u_long command, caddr_t data)
+ray_ioctl(register struct ifnet *ifp, u_long command, caddr_t data,
+    struct ucred *cr)
 {
        struct ray_softc *sc = ifp->if_softc;
        struct ray_param_req pr;
index 8173e2e..10508ec 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_rl.c,v 1.38.2.16 2003/03/05 18:42:33 njl Exp $
- * $DragonFly: src/sys/dev/netif/rl/if_rl.c,v 1.8 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/rl/if_rl.c,v 1.9 2004/03/23 22:19:02 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_rl.c,v 1.38.2.16 2003/03/05 18:42:33 njl Exp $
  */
@@ -167,7 +167,8 @@ static void rl_txeof                (struct rl_softc *);
 static void rl_intr            (void *);
 static void rl_tick            (void *);
 static void rl_start           (struct ifnet *);
-static int rl_ioctl            (struct ifnet *, u_long, caddr_t);
+static int rl_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void rl_init            (void *);
 static void rl_stop            (struct rl_softc *);
 static void rl_watchdog                (struct ifnet *);
@@ -1610,10 +1611,11 @@ static void rl_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int rl_ioctl(ifp, command, data)
+static int rl_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct rl_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 10918da..080095a 100644 (file)
@@ -25,7 +25,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/sbni/if_sbni.c,v 1.1.2.4 2002/08/11 09:32:00 fjoe Exp $
- * $DragonFly: src/sys/dev/netif/sbni/if_sbni.c,v 1.11 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sbni/if_sbni.c,v 1.12 2004/03/23 22:19:02 hsu Exp $
  */
 
 /*
@@ -87,7 +87,7 @@
 
 static void    sbni_init(void *);
 static void    sbni_start(struct ifnet *);
-static int     sbni_ioctl(struct ifnet *, u_long, caddr_t);
+static int     sbni_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    sbni_watchdog(struct ifnet *);
 static void    sbni_stop(struct sbni_softc *);
 static void    handle_channel(struct sbni_softc *);
@@ -1048,9 +1048,8 @@ timeout_change_level(struct sbni_softc *sc)
  */
 
 static int
-sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
-       struct thread *td = curthread;  /* XXX */
        struct sbni_softc *sc;
        struct ifreq *ifr;
        struct sbni_in_stats *in_stats;
@@ -1123,7 +1122,8 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
 
        case SIOCSHWFLAGS:      /* set flags */
                /* root only */
-               error = suser(td);      /* NOTE: returns EPERM if no proc */
+               error = suser_cred(cr, NULL_CRED_OKAY);
+                                       /* NOTE: returns EPERM if no proc */
                if (error)
                        break;
                flags = *(struct sbni_flags*)&ifr->ifr_data;
@@ -1145,7 +1145,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
                break;
 
        case SIOCRINSTATS:
-               if (!(error = suser(td)))       /* root only */
+               if (!(error = suser_cred(cr, NULL_CRED_OKAY)))  /* root only */
                        bzero(&sc->in_stats, sizeof(struct sbni_in_stats));
                break;
 
index d325199..24d85d5 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/sbsh/if_sbsh.c,v 1.3.2.1 2003/04/15 18:15:07 fjoe Exp $
- * $DragonFly: src/sys/dev/netif/sbsh/if_sbsh.c,v 1.9 2004/03/14 15:36:51 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sbsh/if_sbsh.c,v 1.10 2004/03/23 22:19:02 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -153,7 +153,7 @@ enum State { NOT_LOADED, DOWN, ACTIVATION, ACTIVE };
 static int     sbsh_probe(device_t);
 static int     sbsh_attach(device_t);
 static int     sbsh_detach(device_t);
-static int     sbsh_ioctl(struct ifnet *, u_long, caddr_t);
+static int     sbsh_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    sbsh_shutdown(device_t);
 static int     sbsh_suspend(device_t);
 static int     sbsh_resume(device_t);
@@ -398,13 +398,12 @@ init_card(struct sbsh_softc *sc)
 
 
 static int
-sbsh_ioctl(struct ifnet        *ifp, u_long cmd, caddr_t data)
+sbsh_ioctl(struct ifnet        *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct sbsh_softc       *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
        struct cx28975_cfg      cfg;
        struct dsl_stats        ds;
-       struct thread           *td = curthread;
        int                     s, error = 0;
        u_int8_t                t;
 
@@ -412,7 +411,7 @@ sbsh_ioctl(struct ifnet     *ifp, u_long cmd, caddr_t data)
 
        switch(cmd) {
        case SIOCLOADFIRMW:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if (ifp->if_flags & IFF_UP)
                        error = EBUSY;
@@ -432,7 +431,7 @@ sbsh_ioctl(struct ifnet     *ifp, u_long cmd, caddr_t data)
                break;
 
        case  SIOCGETSTATS :
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
 
                t = 0;
@@ -466,7 +465,7 @@ sbsh_ioctl(struct ifnet     *ifp, u_long cmd, caddr_t data)
                break;
 
        case  SIOCCLRSTATS :
-               if (!(error = suser(td))) {
+               if (!(error = suser_cred(cr, NULL_CRED_OKAY))) {
                        bzero(&sc->in_stats, sizeof(struct sbni16_stats));
                        t = 2;
                        if (issue_cx28975_cmd(sc, _DSL_CLEAR_ERROR_CTRS, &t, 1))
index a9069a9..9084ffe 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_sf.c,v 1.18.2.8 2001/12/16 15:46:07 luigi Exp $
- * $DragonFly: src/sys/dev/netif/sf/if_sf.c,v 1.7 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sf/if_sf.c,v 1.8 2004/03/23 22:19:03 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_sf.c,v 1.18.2.8 2001/12/16 15:46:07 luigi Exp $
  */
@@ -138,7 +138,8 @@ static int sf_encap         (struct sf_softc *,
                                        struct sf_tx_bufdesc_type0 *,
                                        struct mbuf *);
 static void sf_start           (struct ifnet *);
-static int sf_ioctl            (struct ifnet *, u_long, caddr_t);
+static int sf_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void sf_init            (void *);
 static void sf_stop            (struct sf_softc *);
 static void sf_watchdog                (struct ifnet *);
@@ -521,10 +522,11 @@ static void sf_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int sf_ioctl(ifp, command, data)
+static int sf_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct sf_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index f057cad..192112f 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_sis.c,v 1.13.4.24 2003/03/05 18:42:33 njl Exp $
- * $DragonFly: src/sys/dev/netif/sis/if_sis.c,v 1.9 2004/03/16 22:48:00 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sis/if_sis.c,v 1.10 2004/03/23 22:19:03 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_sis.c,v 1.13.4.24 2003/03/05 18:42:33 njl Exp $
  */
@@ -125,7 +125,7 @@ static void sis_txeof(struct sis_softc *);
 static void    sis_intr(void *);
 static void    sis_tick(void *);
 static void    sis_start(struct ifnet *);
-static int     sis_ioctl(struct ifnet *, u_long, caddr_t);
+static int     sis_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void    sis_init(void *);
 static void    sis_stop(struct sis_softc *);
 static void    sis_watchdog(struct ifnet *);
@@ -1920,7 +1920,7 @@ sis_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
 }
 
 static int
-sis_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+sis_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
 {
        struct sis_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *) data;
index a27d759..8fff3c0 100644 (file)
@@ -32,7 +32,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_sk.c,v 1.19.2.9 2003/03/05 18:42:34 njl Exp $
- * $DragonFly: src/sys/dev/netif/sk/if_sk.c,v 1.12 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sk/if_sk.c,v 1.13 2004/03/23 22:19:03 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_sk.c,v 1.19.2.9 2003/03/05 18:42:34 njl Exp $
  */
@@ -175,7 +175,8 @@ static void sk_txeof                (struct sk_if_softc *);
 static int sk_encap            (struct sk_if_softc *, struct mbuf *,
                                        u_int32_t *);
 static void sk_start           (struct ifnet *);
-static int sk_ioctl            (struct ifnet *, u_long, caddr_t);
+static int sk_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void sk_init            (void *);
 static void sk_init_xmac       (struct sk_if_softc *);
 static void sk_init_yukon      (struct sk_if_softc *);
@@ -1202,10 +1203,11 @@ static void sk_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int sk_ioctl(ifp, command, data)
+static int sk_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct sk_if_softc      *sc_if = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 16b39b0..77fc5d2 100644 (file)
@@ -29,7 +29,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  *   $FreeBSD: src/sys/dev/sn/if_sn.c,v 1.7.2.3 2001/02/04 04:38:38 toshi Exp $
- *   $DragonFly: src/sys/dev/netif/sn/if_sn.c,v 1.7 2004/03/14 15:36:52 joerg Exp $
+ *   $DragonFly: src/sys/dev/netif/sn/if_sn.c,v 1.8 2004/03/23 22:19:03 hsu Exp $
  */
 
 /*
 /* Exported variables */
 devclass_t sn_devclass;
 
-static int snioctl(struct ifnet * ifp, u_long, caddr_t);
+static int snioctl(struct ifnet * ifp, u_long, caddr_t, struct ucred *);
 
 static void snresume(struct ifnet *);
 
@@ -1134,7 +1134,7 @@ out:
  * changes.
  */
 static int
-snioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+snioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct sn_softc *sc = ifp->if_softc;
        int             s, error = 0;
index c7435b5..0cc0331 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/dev/snc/dp83932.c,v 1.1.2.2 2003/02/11 08:52:00 nyan Exp $    */
-/*     $DragonFly: src/sys/dev/netif/snc/Attic/dp83932.c,v 1.7 2004/03/14 15:36:52 joerg Exp $ */
+/*     $DragonFly: src/sys/dev/netif/snc/Attic/dp83932.c,v 1.8 2004/03/23 22:19:03 hsu Exp $   */
 /*     $NecBSD: dp83932.c,v 1.5 1999/07/29 05:08:44 kmatsuda Exp $     */
 /*     $NetBSD: if_snc.c,v 1.18 1998/04/25 21:27:40 scottr Exp $       */
 
 hide void      sncwatchdog (struct ifnet *);
 hide void      sncinit (void *);
 hide int       sncstop (struct snc_softc *sc);
-hide int       sncioctl (struct ifnet *ifp, u_long cmd, caddr_t data);
+hide int       sncioctl (struct ifnet *ifp, u_long cmd, caddr_t data,
+                         struct ucred *);
 hide void      sncstart (struct ifnet *ifp);
 hide void      sncreset (struct snc_softc *sc);
 
@@ -259,10 +260,11 @@ snc_mediastatus(ifp, ifmr)
 
 
 hide int
-sncioctl(ifp, cmd, data)
+sncioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifreq *ifr;
        struct snc_softc *sc = ifp->if_softc;
index cde41a8..b3cfbef 100644 (file)
@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/sr/if_sr.c,v 1.48.2.1 2002/06/17 15:10:58 jhay Exp $
- * $DragonFly: src/sys/dev/netif/sr/if_sr.c,v 1.7 2004/02/13 02:44:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/sr/if_sr.c,v 1.8 2004/03/23 22:19:03 hsu Exp $
  */
 
 /*
@@ -232,7 +232,8 @@ static void srintr(void *arg);
 static void    sr_xmit(struct sr_softc *sc);
 #ifndef NETGRAPH
 static void    srstart(struct ifnet *ifp);
-static int     srioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
+static int     srioctl(struct ifnet *ifp, u_long cmd, caddr_t data,
+                       struct ucred *);
 static void    srwatchdog(struct ifnet *ifp);
 #else
 static void    srstart(struct sr_softc *sc);
@@ -1001,7 +1002,7 @@ static int bug_splats[] = {0, 0, 0, 0, 0, 0, 0, 0};
 #endif
 
 static int
-srioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+srioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        int s, error, was_up, should_be_up;
        struct sr_softc *sc = ifp->if_softc;
index 6604175..cced1ca 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_ste.c,v 1.14.2.9 2003/02/05 22:03:57 mbr Exp $
- * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.8 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.9 2004/03/23 22:19:04 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_ste.c,v 1.14.2.9 2003/02/05 22:03:57 mbr Exp $
  */
@@ -95,7 +95,8 @@ static void ste_txeof         (struct ste_softc *);
 static void ste_stats_update   (void *);
 static void ste_stop           (struct ste_softc *);
 static void ste_reset          (struct ste_softc *);
-static int ste_ioctl           (struct ifnet *, u_long, caddr_t);
+static int ste_ioctl           (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static int ste_encap           (struct ste_softc *, struct ste_chain *,
                                        struct mbuf *);
 static void ste_start          (struct ifnet *);
@@ -1405,10 +1406,11 @@ static void ste_reset(sc)
        return;
 }
 
-static int ste_ioctl(ifp, command, data)
+static int ste_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct ste_softc        *sc;
        struct ifreq            *ifr;
index 4621b91..1088caa 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_ti.c,v 1.25.2.14 2002/02/15 04:20:20 silby Exp $
- * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.8 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.9 2004/03/23 22:19:04 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_ti.c,v 1.25.2.14 2002/02/15 04:20:20 silby Exp $
  */
@@ -168,7 +168,8 @@ static int ti_encap         (struct ti_softc *, struct mbuf *,
 
 static void ti_intr            (void *);
 static void ti_start           (struct ifnet *);
-static int ti_ioctl            (struct ifnet *, u_long, caddr_t);
+static int ti_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void ti_init            (void *);
 static void ti_init2           (struct ti_softc *);
 static void ti_stop            (struct ti_softc *);
@@ -2406,10 +2407,11 @@ static void ti_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int ti_ioctl(ifp, command, data)
+static int ti_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct ti_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index a4df535..3051257 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_tl.c,v 1.51.2.5 2001/12/16 15:46:08 luigi Exp $
- * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.8 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.9 2004/03/23 22:19:04 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_tl.c,v 1.51.2.5 2001/12/16 15:46:08 luigi Exp $
  */
@@ -279,7 +279,8 @@ static int tl_encap         (struct tl_softc *, struct tl_chain *,
 
 static void tl_intr            (void *);
 static void tl_start           (struct ifnet *);
-static int tl_ioctl            (struct ifnet *, u_long, caddr_t);
+static int tl_ioctl            (struct ifnet *, u_long, caddr_t,
+                                               struct ucred *);
 static void tl_init            (void *);
 static void tl_stop            (struct tl_softc *);
 static void tl_watchdog                (struct ifnet *);
@@ -2165,10 +2166,11 @@ static void tl_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int tl_ioctl(ifp, command, data)
+static int tl_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct tl_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 71382ab..9e875d4 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/tx/if_tx.c,v 1.61.2.1 2002/10/29 01:43:49 semenu Exp $
- * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.8 2004/03/14 15:36:52 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.9 2004/03/23 22:19:04 hsu Exp $
  */
 
 /*
@@ -81,7 +81,7 @@
 #include "if_txreg.h"
 #include "if_txvar.h"
 
-static int epic_ifioctl(struct ifnet *, u_long, caddr_t);
+static int epic_ifioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void epic_intr(void *);
 static void epic_tx_underrun(epic_softc_t *);
 static int epic_common_attach(epic_softc_t *);
@@ -402,10 +402,11 @@ epic_shutdown(dev)
  * This is if_ioctl handler.
  */
 static int
-epic_ifioctl(ifp, command, data)
+epic_ifioctl(ifp, command, data, cr)
        struct ifnet *ifp;
        u_long command;
        caddr_t data;
+       struct ucred *cr;
 {
        epic_softc_t *sc = ifp->if_softc;
        struct mii_data *mii;
index 089ff3b..f30ce6f 100644 (file)
@@ -1,6 +1,6 @@
 /*     $OpenBSD: if_txp.c,v 1.48 2001/06/27 06:34:50 kjc Exp $ */
 /*     $FreeBSD: src/sys/dev/txp/if_txp.c,v 1.4.2.4 2001/12/14 19:50:43 jlemon Exp $ */
-/*     $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.8 2004/03/14 15:36:53 joerg Exp $ */
+/*     $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ */
 
 /*
  * Copyright (c) 2001
@@ -114,7 +114,7 @@ static int txp_detach       (device_t);
 static void txp_intr   (void *);
 static void txp_tick   (void *);
 static int txp_shutdown        (device_t);
-static int txp_ioctl   (struct ifnet *, u_long, caddr_t);
+static int txp_ioctl   (struct ifnet *, u_long, caddr_t, struct ucred *);
 static void txp_start  (struct ifnet *);
 static void txp_stop   (struct txp_softc *);
 static void txp_init   (void *);
@@ -1059,10 +1059,11 @@ txp_alloc_rings(sc)
 }
 
 static int
-txp_ioctl(ifp, command, data)
+txp_ioctl(ifp, command, data, cr)
        struct ifnet *ifp;
        u_long command;
        caddr_t data;
+       struct ucred *cr;
 {
        struct txp_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
index 625e64a..43b2412 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_vr.c,v 1.26.2.13 2003/02/06 04:46:20 silby Exp $
- * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.8 2004/03/14 15:36:53 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.9 2004/03/23 22:19:04 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_vr.c,v 1.26.2.13 2003/02/06 04:46:20 silby Exp $
  */
@@ -141,7 +141,8 @@ static void vr_txeoc                (struct vr_softc *);
 static void vr_tick            (void *);
 static void vr_intr            (void *);
 static void vr_start           (struct ifnet *);
-static int vr_ioctl            (struct ifnet *, u_long, caddr_t);
+static int vr_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void vr_init            (void *);
 static void vr_stop            (struct vr_softc *);
 static void vr_watchdog                (struct ifnet *);
@@ -1665,10 +1666,11 @@ static void vr_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int vr_ioctl(ifp, command, data)
+static int vr_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct vr_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 2c7af84..fa2e59a 100644 (file)
@@ -28,7 +28,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/vx/if_vx.c,v 1.25.2.6 2002/02/13 00:43:10 dillon Exp $
- * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.9 2004/03/14 15:36:53 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.10 2004/03/23 22:19:05 hsu Exp $
  *
  */
 
@@ -108,7 +108,7 @@ static struct connector_entry {
 static void vxtxstat (struct vx_softc *);
 static int vxstatus (struct vx_softc *);
 static void vxinit (void *);
-static int vxioctl (struct ifnet *, u_long, caddr_t); 
+static int vxioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 static void vxstart (struct ifnet *ifp);
 static void vxwatchdog (struct ifnet *);
 static void vxreset (struct vx_softc *);
@@ -834,10 +834,11 @@ vxget(sc, totlen)
 
 
 static int
-vxioctl(ifp, cmd, data)
+vxioctl(ifp, cmd, data, cr)
     struct ifnet *ifp;
     u_long cmd;
     caddr_t data;
+    struct ucred *cr;
 {
     struct vx_softc *sc = ifp->if_softc;
     struct ifreq *ifr = (struct ifreq *) data;
index 55d2568..c3a978c 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_wb.c,v 1.26.2.6 2003/03/05 18:42:34 njl Exp $
- * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.8 2004/03/14 15:36:53 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.9 2004/03/23 22:19:05 hsu Exp $
  *
  * $FreeBSD: src/sys/pci/if_wb.c,v 1.26.2.6 2003/03/05 18:42:34 njl Exp $
  */
@@ -157,7 +157,8 @@ static void wb_txeoc                (struct wb_softc *);
 static void wb_intr            (void *);
 static void wb_tick            (void *);
 static void wb_start           (struct ifnet *);
-static int wb_ioctl            (struct ifnet *, u_long, caddr_t);
+static int wb_ioctl            (struct ifnet *, u_long, caddr_t,
+                                       struct ucred *);
 static void wb_init            (void *);
 static void wb_stop            (struct wb_softc *);
 static void wb_watchdog                (struct ifnet *);
@@ -1739,10 +1740,11 @@ static void wb_ifmedia_sts(ifp, ifmr)
        return;
 }
 
-static int wb_ioctl(ifp, command, data)
+static int wb_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct wb_softc         *sc = ifp->if_softc;
        struct mii_data         *mii;
index 847ba28..804c5cb 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/wi/if_wi.c,v 1.103.2.2 2002/08/02 07:11:34 imp Exp $
- * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.9 2004/03/14 15:36:53 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.10 2004/03/23 22:19:05 hsu Exp $
  */
 
 /*
 
 static void wi_intr(void *);
 static void wi_reset(struct wi_softc *);
-static int wi_ioctl(struct ifnet *, u_long, caddr_t);
+static int wi_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void wi_init(void *);
 static void wi_start(struct ifnet *);
 static void wi_stop(struct wi_softc *);
@@ -1616,10 +1616,11 @@ wi_setdef(sc, wreq)
 }
 
 static int
-wi_ioctl(ifp, command, data)
+wi_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        int                     error = 0;
        int                     len;
@@ -1629,7 +1630,6 @@ wi_ioctl(ifp, command, data)
        struct wi_req           wreq;
        struct ifreq            *ifr;
        struct ieee80211req     *ireq;
-       struct thread           *td = curthread;
        int                     s;
 
        sc = ifp->if_softc;
@@ -1695,7 +1695,8 @@ wi_ioctl(ifp, command, data)
                        break;
                }
                /* Don't show WEP keys to non-root users. */
-               if (wreq.wi_type == WI_RID_DEFLT_CRYPT_KEYS && suser(td))
+               if (wreq.wi_type == WI_RID_DEFLT_CRYPT_KEYS &&
+                   suser_cred(cr, NULL_CRED_OKAY))
                        break;
                if (wreq.wi_type == WI_RID_IFACE_STATS) {
                        bcopy((char *)&sc->wi_stats, (char *)&wreq.wi_val,
@@ -1740,7 +1741,7 @@ wi_ioctl(ifp, command, data)
                error = copyout(&wreq, ifr->ifr_data, sizeof(wreq));
                break;
        case SIOCSWAVELAN:
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                error = copyin(ifr->ifr_data, &wreq, sizeof(wreq));
                if (error)
@@ -1787,7 +1788,7 @@ wi_ioctl(ifp, command, data)
                        error = copyout(&wreq, ifr->ifr_data, sizeof(wreq));
                break;
        case SIOCSPRISM2DEBUG:
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                error = copyin(ifr->ifr_data, &wreq, sizeof(wreq));
                if (error)
@@ -1836,7 +1837,7 @@ wi_ioctl(ifp, command, data)
                                break;
                        }
                        len = sc->wi_keys.wi_keys[ireq->i_val].wi_keylen;
-                       if (suser(td))
+                       if (suser_cred(cr, NULL_CRED_OKAY))
                                bcopy(sc->wi_keys.wi_keys[ireq->i_val].wi_keydat,
                                    tmpkey, len);
                        else
@@ -1889,7 +1890,7 @@ wi_ioctl(ifp, command, data)
                }
                break;
        case SIOCS80211:
-               if ((error = suser(td)))
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)))
                        goto out;
                switch(ireq->i_type) {
                case IEEE80211_IOC_SSID:
index 00ab1cf..a3acbe7 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/pci/if_wx.c,v 1.5.2.12 2003/03/05 18:42:34 njl Exp $ */
-/* $DragonFly: src/sys/dev/netif/wx/Attic/if_wx.c,v 1.7 2004/03/14 15:36:53 joerg Exp $ */
+/* $DragonFly: src/sys/dev/netif/wx/Attic/if_wx.c,v 1.8 2004/03/23 22:19:05 hsu Exp $ */
 /*
  * Principal Author: Matthew Jacob <mjacob@feral.com>
  * Copyright (c) 1999, 2001 by Traakan Software
@@ -79,7 +79,7 @@ static void wx_check_link(wx_softc_t *);
 static void wx_handle_rxint(wx_softc_t *);
 static void wx_gc(wx_softc_t *);
 static void wx_start(struct ifnet *);
-static int wx_ioctl(struct ifnet *, IOCTL_CMD_TYPE, caddr_t);
+static int wx_ioctl(struct ifnet *, IOCTL_CMD_TYPE, caddr_t, struct ucred *);
 static int wx_ifmedia_upd(struct ifnet *);
 static void wx_ifmedia_sts(struct ifnet *, struct ifmediareq *);
 static int wx_init(void *);
@@ -1910,7 +1910,8 @@ wx_get_rbuf(wx_softc_t *sc, rxpkt_t *rxpkt)
 }
 
 static int
-wx_ioctl(struct ifnet *ifp, IOCTL_CMD_TYPE command, caddr_t data)
+wx_ioctl(struct ifnet *ifp, IOCTL_CMD_TYPE command, caddr_t data,
+    struct ucred *cr)
 {
        wx_softc_t *sc = SOFTC_IFP(ifp);
        struct ifreq *ifr = (struct ifreq *) data;
index ae53940..ed6720b 100644 (file)
@@ -25,7 +25,7 @@
  *
  *     $Id: if_xe.c,v 1.20 1999/06/13 19:17:40 scott Exp $
  * $FreeBSD: src/sys/dev/xe/if_xe.c,v 1.13.2.6 2003/02/05 22:03:57 mbr Exp $
- * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.8 2004/03/14 15:36:53 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.9 2004/03/23 22:19:05 hsu Exp $
  */
 
 /*
@@ -175,7 +175,7 @@ static int   xe_activate            (device_t dev);
 static void     xe_deactivate          (device_t dev);
 static void      xe_init               (void *xscp);
 static void      xe_start              (struct ifnet *ifp);
-static int       xe_ioctl              (struct ifnet *ifp, u_long command, caddr_t data);
+static int       xe_ioctl              (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *);
 static void      xe_watchdog           (struct ifnet *ifp);
 static int       xe_media_change       (struct ifnet *ifp);
 static void      xe_media_status       (struct ifnet *ifp, struct ifmediareq *mrp);
@@ -724,7 +724,7 @@ xe_start(struct ifnet *ifp) {
  * Process an ioctl request.  Adapted from the ed driver.
  */
 static int
-xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data) {
+xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) {
   struct xe_softc *scp;
   int s, error;
 
index eac098f..ffea59f 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_xl.c,v 1.72.2.28 2003/10/08 06:01:57 murray Exp $
- * $DragonFly: src/sys/dev/netif/xl/if_xl.c,v 1.10 2004/03/19 06:30:08 dillon Exp $
+ * $DragonFly: src/sys/dev/netif/xl/if_xl.c,v 1.11 2004/03/23 22:19:05 hsu Exp $
  */
 
 /*
@@ -217,7 +217,8 @@ static void xl_txeoc                (struct xl_softc *);
 static void xl_intr            (void *);
 static void xl_start           (struct ifnet *);
 static void xl_start_90xB      (struct ifnet *);
-static int xl_ioctl            (struct ifnet *, u_long, caddr_t);
+static int xl_ioctl            (struct ifnet *, u_long, caddr_t,
+                                               struct ucred *);
 static void xl_init            (void *);
 static void xl_stop            (struct xl_softc *);
 static void xl_watchdog                (struct ifnet *);
@@ -3107,10 +3108,11 @@ xl_ifmedia_sts(ifp, ifmr)
 }
 
 static int
-xl_ioctl(ifp, command, data)
+xl_ioctl(ifp, command, data, cr)
        struct ifnet            *ifp;
        u_long                  command;
        caddr_t                 data;
+       struct ucred            *cr;
 {
        struct xl_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
index 1252671..4426e1a 100644 (file)
@@ -38,7 +38,7 @@
  *      @(#)bpf.c      8.2 (Berkeley) 3/28/94
  *
  * $FreeBSD: src/sys/net/bpf.c,v 1.59.2.12 2002/04/14 21:41:48 luigi Exp $
- * $DragonFly: src/sys/net/bpf.c,v 1.13 2004/03/09 14:57:18 hmp Exp $
+ * $DragonFly: src/sys/net/bpf.c,v 1.14 2004/03/23 22:19:05 hsu Exp $
  */
 
 #include "use_bpf.h"
@@ -727,7 +727,8 @@ bpfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td)
                                error = EINVAL;
                        else {
                                ifp = d->bd_bif->bif_ifp;
-                               error = (*ifp->if_ioctl)(ifp, cmd, addr);
+                               error = (*ifp->if_ioctl)(ifp, cmd, addr,
+                                                        td->td_proc->p_ucred);
                        }
                        break;
                }
index 66e9199..6c4c476 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     From: @(#)if_loop.c     8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/if_disc.c,v 1.26.2.2 2001/12/20 10:30:16 ru Exp $
- * $DragonFly: src/sys/net/disc/if_disc.c,v 1.5 2004/01/06 03:17:25 dillon Exp $
+ * $DragonFly: src/sys/net/disc/if_disc.c,v 1.6 2004/03/23 22:19:06 hsu Exp $
  */
 
 /*
@@ -68,7 +68,7 @@ static struct ifnet discif;
 static int discoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
                    struct rtentry *);
 static void discrtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info);
-static int discioctl(struct ifnet *, u_long, caddr_t);
+static int discioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 
 /* ARGSUSED */
 static void
@@ -170,10 +170,11 @@ discrtrequest(cmd, rt, info)
  */
 /* ARGSUSED */
 static int
-discioctl(ifp, cmd, data)
+discioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifaddr *ifa;
        struct ifreq *ifr = (struct ifreq *)data;
index d8705ea..dbc49dd 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/net/if_ef.c,v 1.2.2.4 2001/02/22 09:27:04 bp Exp $
- * $DragonFly: src/sys/net/ef/if_ef.c,v 1.8 2004/03/14 15:36:54 joerg Exp $
+ * $DragonFly: src/sys/net/ef/if_ef.c,v 1.9 2004/03/23 22:19:06 hsu Exp $
  */
 
 #include "opt_inet.h"
@@ -102,7 +102,7 @@ static void ef_reset (struct ifnet *);
 static int ef_attach(struct efnet *sc);
 static int ef_detach(struct efnet *sc);
 static void ef_init(void *);
-static int ef_ioctl(struct ifnet *, u_long, caddr_t);
+static int ef_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static void ef_start(struct ifnet *);
 static int ef_input(struct ifnet*, struct ether_header *, struct mbuf *);
 static int ef_output(struct ifnet *ifp, struct mbuf **mp,
@@ -175,7 +175,7 @@ ef_init(void *foo) {
 }
 
 static int
-ef_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+ef_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct efnet *sc = ifp->if_softc;
        struct ifaddr *ifa = (struct ifaddr*)data;
index cd41304..918f289 100644 (file)
@@ -33,7 +33,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/net/if_faith.c,v 1.3.2.6 2002/04/28 05:40:25 suz Exp $
- * $DragonFly: src/sys/net/faith/if_faith.c,v 1.7 2004/01/06 01:40:50 dillon Exp $
+ * $DragonFly: src/sys/net/faith/if_faith.c,v 1.8 2004/03/23 22:19:06 hsu Exp $
  */
 /*
  * derived from
@@ -94,7 +94,7 @@ struct faith_softc {
        LIST_ENTRY(faith_softc) sc_list;
 };
 
-static int faithioctl (struct ifnet *, u_long, caddr_t);
+static int faithioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 int faithoutput (struct ifnet *, struct mbuf *, struct sockaddr *,
        struct rtentry *);
 static void faithrtrequest (int, struct rtentry *, struct rt_addrinfo *);
@@ -290,10 +290,11 @@ faithrtrequest(cmd, rt, info)
  */
 /* ARGSUSED */
 static int
-faithioctl(ifp, cmd, data)
+faithioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifaddr *ifa;
        struct ifreq *ifr = (struct ifreq *)data;
index 9a05e1c..8413800 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/net/if_gif.c,v 1.4.2.15 2002/11/08 16:57:13 ume Exp $ */
-/*     $DragonFly: src/sys/net/gif/if_gif.c,v 1.8 2004/01/06 01:40:50 dillon Exp $     */
+/*     $DragonFly: src/sys/net/gif/if_gif.c,v 1.9 2004/03/23 22:19:06 hsu Exp $        */
 /*     $KAME: if_gif.c,v 1.87 2001/10/19 08:50:27 itojun Exp $ */
 
 /*
@@ -450,10 +450,11 @@ gif_input(m, af, ifp)
 
 /* XXX how should we handle IPv6 scope on SIOC[GS]IFPHYADDR? */
 int
-gif_ioctl(ifp, cmd, data)
+gif_ioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct gif_softc *sc  = (struct gif_softc*)ifp;
        struct ifreq     *ifr = (struct ifreq*)data;
index cd9904c..5b7b38f 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/net/if_gif.h,v 1.2.2.5 2002/11/08 16:23:08 ume Exp $  */
-/*     $DragonFly: src/sys/net/gif/if_gif.h,v 1.3 2003/08/26 20:49:48 rob Exp $        */
+/*     $DragonFly: src/sys/net/gif/if_gif.h,v 1.4 2004/03/23 22:19:06 hsu Exp $        */
 /*     $KAME: if_gif.h,v 1.17 2000/09/11 11:36:41 sumikawa Exp $       */
 
 /*
@@ -79,7 +79,7 @@ void gifattach0 (struct gif_softc *);
 void gif_input (struct mbuf *, int, struct ifnet *);
 int gif_output (struct ifnet *, struct mbuf *,
                    struct sockaddr *, struct rtentry *);
-int gif_ioctl (struct ifnet *, u_long, caddr_t);
+int gif_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 int gif_set_tunnel (struct ifnet *, struct sockaddr *, struct sockaddr *);
 void gif_delete_tunnel (struct ifnet *);
 int gif_encapcheck (const struct mbuf *, int, int, void *);
index 3fd937b..7ef3cbc 100644 (file)
@@ -1,6 +1,6 @@
 /*     $NetBSD: if_gre.c,v 1.42 2002/08/14 00:23:27 itojun Exp $ */
 /*     $FreeBSD: src/sys/net/if_gre.c,v 1.9.2.3 2003/01/23 21:06:44 sam Exp $ */
-/*     $DragonFly: src/sys/net/gre/if_gre.c,v 1.8 2004/03/06 01:58:55 hsu Exp $ */
+/*     $DragonFly: src/sys/net/gre/if_gre.c,v 1.9 2004/03/23 22:19:06 hsu Exp $ */
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -100,7 +100,7 @@ struct gre_softc_head gre_softc_list;
 
 static int     gre_clone_create(struct if_clone *, int);
 static void    gre_clone_destroy(struct ifnet *);
-static int     gre_ioctl(struct ifnet *, u_long, caddr_t);
+static int     gre_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
 static int     gre_output(struct ifnet *, struct mbuf *, struct sockaddr *,
                    struct rtentry *rt);
 
@@ -396,7 +396,7 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
 }
 
 static int
-gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct ifreq *ifr = (struct ifreq *)data;
        struct if_laddrreq *lifr = (struct if_laddrreq *)data;
@@ -407,7 +407,6 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
        struct sockaddr *sa = NULL;
        int error;
        struct sockaddr_in sp, sm, dp, dm;
-       struct thread *td = curthread;
 
        error = 0;
 
@@ -419,7 +418,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
        case SIOCSIFDSTADDR: 
                break;
        case SIOCSIFFLAGS:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if ((ifr->ifr_flags & IFF_LINK0) != 0)
                        sc->g_proto = IPPROTO_GRE;
@@ -427,7 +426,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                        sc->g_proto = IPPROTO_MOBILE;
                goto recompute;
        case SIOCSIFMTU:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if (ifr->ifr_mtu < 576) {
                        error = EINVAL;
@@ -440,7 +439,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                break;
        case SIOCADDMULTI:
        case SIOCDELMULTI:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if (ifr == 0) {
                        error = EAFNOSUPPORT;
@@ -457,7 +456,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                }
                break;
        case GRESPROTO:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                sc->g_proto = ifr->ifr_flags;
                switch (sc->g_proto) {
@@ -477,7 +476,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                break;
        case GRESADDRS:
        case GRESADDRD:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                /*
                 * set tunnel endpoints, compute a less specific route
@@ -543,7 +542,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                ifr->ifr_addr = *sa;
                break;
        case SIOCSIFPHYADDR:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if (aifr->ifra_addr.sin_family != AF_INET ||
                    aifr->ifra_dstaddr.sin_family != AF_INET) {
@@ -559,7 +558,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                sc->g_dst = aifr->ifra_dstaddr.sin_addr;
                goto recompute;
        case SIOCSLIFPHYADDR:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                if (lifr->addr.ss_family != AF_INET ||
                    lifr->dstaddr.ss_family != AF_INET) {
@@ -576,7 +575,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                    (satosin((struct sockadrr *)&lifr->dstaddr))->sin_addr;
                goto recompute;
        case SIOCDIFPHYADDR:
-               if ((error = suser(td)) != 0)
+               if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0)
                        break;
                sc->g_src.s_addr = INADDR_ANY;
                sc->g_dst.s_addr = INADDR_ANY;
index 8454a17..e604bda 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)if.c        8.3 (Berkeley) 1/4/94
  * $FreeBSD: src/sys/net/if.c,v 1.185 2004/03/13 02:35:03 brooks Exp $ 
- * $DragonFly: src/sys/net/if.c,v 1.14 2004/03/15 22:37:40 hmp Exp $
+ * $DragonFly: src/sys/net/if.c,v 1.15 2004/03/23 22:19:05 hsu Exp $
  */
 
 #include "opt_compat.h"
@@ -1082,7 +1082,8 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
                        ifp->if_flags &= ~IFF_PROMISC;
                }
                if (ifp->if_ioctl)
-                       (void) (*ifp->if_ioctl)(ifp, cmd, data);
+                       (void) (*ifp->if_ioctl)(ifp, cmd, data,
+                                               td->td_proc->p_ucred);
                getmicrotime(&ifp->if_lastchange);
                break;
 
@@ -1092,7 +1093,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
                        return (error);
                if (ifr->ifr_reqcap & ~ifp->if_capabilities)
                        return (EINVAL);
-               (void) (*ifp->if_ioctl)(ifp, cmd, data);
+               (void) (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred);
                break;
 
        case SIOCSIFNAME:
@@ -1151,7 +1152,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
                        return error;
                if (!ifp->if_ioctl)
                        return EOPNOTSUPP;
-               error = (*ifp->if_ioctl)(ifp, cmd, data);
+               error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred);
                if (error == 0)
                        getmicrotime(&ifp->if_lastchange);
                return(error);
@@ -1167,7 +1168,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
                        return (EOPNOTSUPP);
                if (ifr->ifr_mtu < IF_MINMTU || ifr->ifr_mtu > IF_MAXMTU)
                        return (EINVAL);
-               error = (*ifp->if_ioctl)(ifp, cmd, data);
+               error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred);
                if (error == 0) {
                        getmicrotime(&ifp->if_lastchange);
                        rt_ifmsg(ifp);
@@ -1220,7 +1221,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
                        return (error);
                if (ifp->if_ioctl == 0)
                        return (EOPNOTSUPP);
-               error = (*ifp->if_ioctl)(ifp, cmd, data);
+               error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred);
                if (error == 0)
                        getmicrotime(&ifp->if_lastchange);
                return error;
@@ -1236,7 +1237,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td)
        case SIOCGIFGENERIC:
                if (ifp->if_ioctl == 0)
                        return (EOPNOTSUPP);
-               return ((*ifp->if_ioctl)(ifp, cmd, data));
+               return ((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred));
 
        case SIOCSIFLLADDR:
                error = suser(td);
@@ -1359,7 +1360,8 @@ ifpromisc(ifp, pswitch)
        }
        ifr.ifr_flags = ifp->if_flags;
        ifr.ifr_flagshigh = ifp->if_ipending >> 16;
-       error = (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr);
+       error = (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr,
+                                (struct ucred *)NULL);
        if (error == 0)
                rt_ifmsg(ifp);
        else
@@ -1471,7 +1473,8 @@ if_allmulti(ifp, onswitch)
                        ifp->if_flags |= IFF_ALLMULTI;
                        ifr.ifr_flags = ifp->if_flags;
                        ifr.ifr_flagshigh = ifp->if_ipending >> 16;
-                       error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr);
+                       error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr,
+                                             (struct ucred *)NULL);
                }
        } else {
                if (ifp->if_amcount > 1) {
@@ -1481,7 +1484,8 @@ if_allmulti(ifp, onswitch)
                        ifp->if_flags &= ~IFF_ALLMULTI;
                        ifr.ifr_flags = ifp->if_flags;
                        ifr.ifr_flagshigh = ifp->if_ipending >> 16;
-                       error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr);
+                       error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr,
+                                             (struct ucred *)NULL);
                }
        }
        splx(s);
@@ -1576,7 +1580,7 @@ if_addmulti(ifp, sa, retifma)
         * interface to let them know about it.
         */
        s = splimp();
-       ifp->if_ioctl(ifp, SIOCADDMULTI, 0);
+       ifp->if_ioctl(ifp, SIOCADDMULTI, 0, (struct ucred *)NULL);
        splx(s);
 
        return 0;
@@ -1614,7 +1618,7 @@ if_delmulti(ifp, sa)
         * in the case of a link layer mcast group being left.
         */
        if (ifma->ifma_addr->sa_family == AF_LINK && sa == 0)
-               ifp->if_ioctl(ifp, SIOCDELMULTI, 0);
+               ifp->if_ioctl(ifp, SIOCDELMULTI, 0, (struct ucred *)NULL);
        splx(s);
        free(ifma->ifma_addr, M_IFMADDR);
        free(ifma, M_IFMADDR);
@@ -1645,7 +1649,7 @@ if_delmulti(ifp, sa)
 
        s = splimp();
        LIST_REMOVE(ifma, ifma_link);
-       ifp->if_ioctl(ifp, SIOCDELMULTI, 0);
+       ifp->if_ioctl(ifp, SIOCDELMULTI, 0, (struct ucred *)NULL);
        splx(s);
        free(ifma->ifma_addr, M_IFMADDR);
        free(sa, M_IFMADDR);
@@ -1698,11 +1702,13 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len)
                ifp->if_flags &= ~IFF_UP;
                ifr.ifr_flags = ifp->if_flags;
                ifr.ifr_flagshigh = ifp->if_ipending >> 16;
-               (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr);
+               (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr,
+                                (struct ucred *)NULL);
                ifp->if_flags |= IFF_UP;
                ifr.ifr_flags = ifp->if_flags;
                ifr.ifr_flagshigh = ifp->if_ipending >> 16;
-               (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr);
+               (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr,
+                                (struct ucred *)NULL);
 #ifdef INET
                /*
                 * Also send gratuitous ARPs to notify other nodes about
index 3b4deb7..e79594e 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)if_loop.c   8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/if_loop.c,v 1.47.2.8 2003/06/01 01:46:11 silby Exp $
- * $DragonFly: src/sys/net/if_loop.c,v 1.9 2004/01/06 03:17:25 dillon Exp $
+ * $DragonFly: src/sys/net/if_loop.c,v 1.10 2004/03/23 22:19:05 hsu Exp $
  */
 
 /*
@@ -87,7 +87,7 @@
 #include <netproto/atalk/at_var.h>
 #endif
 
-int loioctl (struct ifnet *, u_long, caddr_t);
+int loioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 static void lortrequest (int, struct rtentry *, struct rt_addrinfo *);
 
 static void loopattach (void *);
@@ -317,10 +317,11 @@ lortrequest(cmd, rt, info)
  */
 /* ARGSUSED */
 int
-loioctl(ifp, cmd, data)
+loioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifaddr *ifa;
        struct ifreq *ifr = (struct ifreq *)data;
index dfce54f..9a80099 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     From: @(#)if.h  8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.16 2003/04/15 18:11:19 fjoe Exp $
- * $DragonFly: src/sys/net/if_var.h,v 1.9 2004/03/15 20:08:40 joerg Exp $
+ * $DragonFly: src/sys/net/if_var.h,v 1.10 2004/03/23 22:19:05 hsu Exp $
  */
 
 #ifndef        _NET_IF_VAR_H_
@@ -73,6 +73,7 @@ struct        rtentry;
 struct rt_addrinfo;
 struct socket;
 struct ether_header;
+struct ucred;
 #endif
 
 #include <sys/queue.h>         /* get TAILQ macros */
@@ -162,7 +163,7 @@ struct ifnet {
                int     uif_capabilities;       /* interface capabilities */
        } _u1;
        int     (*if_ioctl)             /* ioctl routine */
-               (struct ifnet *, u_long, caddr_t);
+               (struct ifnet *, u_long, caddr_t, struct ucred *);
        void    (*if_watchdog)          /* timer routine */
                (struct ifnet *);
        union {
index f813547..aecf575 100644 (file)
@@ -70,7 +70,7 @@
  */
 
 /* $FreeBSD: src/sys/net/if_ppp.c,v 1.67.2.4 2002/04/14 21:41:48 luigi Exp $ */
-/* $DragonFly: src/sys/net/ppp/if_ppp.c,v 1.12 2004/03/06 01:58:55 hsu Exp $ */
+/* $DragonFly: src/sys/net/ppp/if_ppp.c,v 1.13 2004/03/23 22:19:06 hsu Exp $ */
 /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */
 /* from NetBSD: if_ppp.c,v 1.15.2.2 1994/07/28 05:17:58 cgd Exp */
 
@@ -138,7 +138,8 @@ extern void pppasyncattach (void *);
 static void    pppattach (void *);
 PSEUDO_SET(pppattach, if_ppp);
 
-static int     pppsioctl (struct ifnet *ifp, u_long cmd, caddr_t data);
+static int     pppsioctl (struct ifnet *ifp, u_long cmd, caddr_t data,
+                          struct ucred *);
 static void    pppintr (struct netmsg *msg);
 
 static void    ppp_requeue (struct ppp_softc *);
@@ -543,10 +544,11 @@ pppioctl(struct ppp_softc *sc, u_long cmd, caddr_t data,
  * Process an ioctl request to the ppp network interface.
  */
 static int
-pppsioctl(ifp, cmd, data)
+pppsioctl(ifp, cmd, data, cr)
     struct ifnet *ifp;
     u_long cmd;
     caddr_t data;
+    struct ucred *cr;
 {
     struct thread *td = curthread;     /* XXX */
     struct ppp_softc *sc = &ppp_softc[ifp->if_dunit];
index 2dd81cf..96f4e16 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)if_sl.c     8.6 (Berkeley) 2/1/94
  * $FreeBSD: src/sys/net/if_sl.c,v 1.84.2.2 2002/02/13 00:43:10 dillon Exp $
- * $DragonFly: src/sys/net/sl/if_sl.c,v 1.10 2004/01/06 03:17:26 dillon Exp $
+ * $DragonFly: src/sys/net/sl/if_sl.c,v 1.11 2004/03/23 22:19:06 hsu Exp $
  */
 
 /*
@@ -186,7 +186,7 @@ static timeout_t sl_keepalive;
 static timeout_t sl_outfill;
 static int     slclose (struct tty *,int);
 static int     slinput (int, struct tty *);
-static int     slioctl (struct ifnet *, u_long, caddr_t);
+static int     slioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 static int     sltioctl (struct tty *, u_long, caddr_t, int, struct thread *);
 static int     slopen (dev_t, struct tty *);
 static int     sloutput (struct ifnet *,
@@ -928,10 +928,11 @@ newpack:
  * Process an ioctl request.
  */
 static int
-slioctl(ifp, cmd, data)
+slioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifaddr *ifa = (struct ifaddr *)data;
        struct ifreq *ifr = (struct ifreq *)data;
index 1bea66c..7bf890e 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/net/if_stf.c,v 1.1.2.11 2003/01/23 21:06:44 sam Exp $ */
-/*     $DragonFly: src/sys/net/stf/if_stf.c,v 1.7 2004/01/06 01:40:51 dillon Exp $     */
+/*     $DragonFly: src/sys/net/stf/if_stf.c,v 1.8 2004/03/23 22:19:07 hsu Exp $        */
 /*     $KAME: if_stf.c,v 1.73 2001/12/03 11:08:30 keiichi Exp $        */
 
 /*
@@ -153,7 +153,7 @@ static int stf_checkaddr4 (struct stf_softc *, struct in_addr *,
 static int stf_checkaddr6 (struct stf_softc *, struct in6_addr *,
        struct ifnet *);
 static void stf_rtrequest (int, struct rtentry *, struct rt_addrinfo *);
-static int stf_ioctl (struct ifnet *, u_long, caddr_t);
+static int stf_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 
 static int
 stfmodevent(mod, type, data)
@@ -633,10 +633,11 @@ stf_rtrequest(cmd, rt, info)
 }
 
 static int
-stf_ioctl(ifp, cmd, data)
+stf_ioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifaddr *ifa;
        struct ifreq *ifr;
index ad4da6e..c3898a5 100644 (file)
@@ -32,7 +32,7 @@
 
 /*
  * $FreeBSD: src/sys/net/if_tap.c,v 1.3.2.3 2002/04/14 21:41:48 luigi Exp $
- * $DragonFly: src/sys/net/tap/if_tap.c,v 1.10 2004/03/14 15:36:54 joerg Exp $
+ * $DragonFly: src/sys/net/tap/if_tap.c,v 1.11 2004/03/23 22:19:07 hsu Exp $
  * $Id: if_tap.c,v 0.21 2000/07/23 21:46:02 max Exp $
  */
 
@@ -84,7 +84,8 @@ static void           tapcreate       (dev_t);
 
 /* network interface */
 static void            tapifstart      (struct ifnet *);
-static int             tapifioctl      (struct ifnet *, u_long, caddr_t);
+static int             tapifioctl      (struct ifnet *, u_long, caddr_t,
+                                        struct ucred *);
 static void            tapifinit       (void *);
 
 /* character device */
@@ -404,10 +405,11 @@ tapifinit(xtp)
  * Process an ioctl request on network interface
  */
 int
-tapifioctl(ifp, cmd, data)
+tapifioctl(ifp, cmd, data, cr)
        struct ifnet    *ifp;
        u_long           cmd;
        caddr_t          data;
+       struct ucred    *cr;
 {
        struct tap_softc        *tp = (struct tap_softc *)(ifp->if_softc);
        struct ifstat           *ifs = NULL;
index 1e37a89..f8f3fee 100644 (file)
@@ -14,7 +14,7 @@
  * operation though.
  *
  * $FreeBSD: src/sys/net/if_tun.c,v 1.74.2.8 2002/02/13 00:43:11 dillon Exp $
- * $DragonFly: src/sys/net/tun/if_tun.c,v 1.11 2004/01/06 01:40:51 dillon Exp $
+ * $DragonFly: src/sys/net/tun/if_tun.c,v 1.12 2004/03/23 22:19:07 hsu Exp $
  */
 
 #include "opt_atalk.h"
@@ -67,7 +67,7 @@ SYSCTL_INT(_debug, OID_AUTO, if_tun_debug, CTLFLAG_RW, &tundebug, 0, "");
 
 static int tunoutput (struct ifnet *, struct mbuf *, struct sockaddr *,
            struct rtentry *rt);
-static int tunifioctl (struct ifnet *, u_long, caddr_t);
+static int tunifioctl (struct ifnet *, u_long, caddr_t, struct ucred *);
 static int tuninit (struct ifnet *);
 
 static d_open_t        tunopen;
@@ -258,10 +258,11 @@ tuninit(ifp)
  * Process an ioctl request.
  */
 int
-tunifioctl(ifp, cmd, data)
+tunifioctl(ifp, cmd, data, cr)
        struct ifnet *ifp;
        u_long  cmd;
        caddr_t data;
+       struct ucred *cr;
 {
        struct ifreq *ifr = (struct ifreq *)data;
        struct tun_softc *tp = ifp->if_softc;
index c720f91..1ead59a 100644 (file)
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/net/if_vlan.c,v 1.15.2.13 2003/02/14 22:25:58 fenner Exp $
- * $DragonFly: src/sys/net/vlan/if_vlan.c,v 1.7 2004/03/14 15:36:54 joerg Exp $
+ * $DragonFly: src/sys/net/vlan/if_vlan.c,v 1.8 2004/03/23 22:19:07 hsu Exp $
  */
 
 /*
@@ -101,7 +101,8 @@ static      void vlan_ifinit(void *foo);
 static int vlan_input(struct ether_header *eh, struct mbuf *m);
 static int vlan_input_tag(struct ether_header *eh, struct mbuf *m,
                u_int16_t t);
-static int vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t addr);
+static int vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t addr,
+               struct ucred *cr);
 static int vlan_setmulti(struct ifnet *ifp);
 static int vlan_unconfig(struct ifnet *ifp);
 static int vlan_config(struct ifvlan *ifv, struct ifnet *p);
@@ -554,7 +555,7 @@ vlan_unconfig(struct ifnet *ifp)
 }
 
 static int
-vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr)
 {
        struct ifaddr *ifa;
        struct ifnet *p;
@@ -594,7 +595,8 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 
        case SIOCGIFMEDIA:
                if (ifv->ifv_p != NULL) {
-                       error = (ifv->ifv_p->if_ioctl)(ifv->ifv_p, SIOCGIFMEDIA, data);
+                       error = (ifv->ifv_p->if_ioctl)(ifv->ifv_p,
+                                                      SIOCGIFMEDIA, data, cr);
                        /* Limit the result to the parent's current config. */
                        if (error == 0) {
                                struct ifmediareq *ifmr;
index 8828fc3..2604bb0 100644 (file)
@@ -33,7 +33,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netgraph/ng_fec.c,v 1.1.2.1 2002/11/01 21:39:31 julian Exp $
- * $DragonFly: src/sys/netgraph/fec/ng_fec.c,v 1.5 2004/03/14 15:36:54 joerg Exp $
+ * $DragonFly: src/sys/netgraph/fec/ng_fec.c,v 1.6 2004/03/23 22:19:07 hsu Exp $
  */
 /*
  * Copyright (c) 1996-1999 Whistle Communications, Inc.
@@ -444,7 +444,7 @@ ng_fec_delport(struct ng_fec_private *priv, char *iface)
 
        /* Stop interface */
        bifp->if_flags &= ~IFF_UP;
-       (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL);
+       (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL);
 
        /* Restore MAC address. */
        ac = (struct arpcom *)bifp;
@@ -480,7 +480,7 @@ ng_fec_setport(struct ifnet *ifp, u_long command, caddr_t data)
        TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) {
                oifp = p->fec_if;
                if (oifp != NULL)
-                       (*oifp->if_ioctl)(oifp, command, data);
+                       (*oifp->if_ioctl)(oifp, command, data, NULL);
        }
 
        return(0);
@@ -510,7 +510,7 @@ ng_fec_init(void *arg)
        TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) {
                bifp = p->fec_if;
                bifp->if_flags |= IFF_UP;
-                (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL);
+                (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL);
                /* mark iface as up and let the monitor check it */
                p->fec_ifstat = -1;
        }
@@ -534,7 +534,7 @@ ng_fec_stop(struct ifnet *ifp)
        TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) {
                bifp = p->fec_if;
                bifp->if_flags &= ~IFF_UP;
-                (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL);
+                (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL);
        }
 
        untimeout(ng_fec_tick, priv, priv->fec_ch);
@@ -558,7 +558,8 @@ ng_fec_tick(void *arg)
        TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) {
                bzero((char *)&ifmr, sizeof(ifmr));
                ifp = p->fec_if;
-               error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (caddr_t)&ifmr);
+               error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (caddr_t)&ifmr,
+                                        NULL);
                if (error) {
                        printf("fec%d: failed to check status "
                            "of link %s\n", priv->unit, ifp->if_xname);
index 342e4de..a690b26 100644 (file)
@@ -37,7 +37,7 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_iface.c,v 1.7.2.5 2002/07/02 23:44:02 archie Exp $
- * $DragonFly: src/sys/netgraph/iface/ng_iface.c,v 1.6 2004/01/06 03:17:27 dillon Exp $
+ * $DragonFly: src/sys/netgraph/iface/ng_iface.c,v 1.7 2004/03/23 22:19:07 hsu Exp $
  * $Whistle: ng_iface.c,v 1.33 1999/11/01 09:24:51 julian Exp $
  */
 
@@ -112,7 +112,8 @@ typedef struct ng_iface_private *priv_p;
 
 /* Interface methods */
 static void    ng_iface_start(struct ifnet *ifp);
-static int     ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
+static int     ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data,
+                       struct ucred *cr);
 static int     ng_iface_output(struct ifnet *ifp, struct mbuf *m0,
                        struct sockaddr *dst, struct rtentry *rt0);
 static void    ng_iface_bpftap(struct ifnet *ifp,
@@ -337,7 +338,8 @@ ng_iface_free_unit(int unit)
  * Process an ioctl for the virtual interface
  */
 static int
-ng_iface_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+ng_iface_ioctl(struct ifnet *ifp, u_long command, caddr_t data,
+    struct ucred *cr)
 {
        struct ifreq *const ifr = (struct ifreq *) data;
        int s, error = 0;
index 7b5a782..4f86163 100644 (file)
@@ -32,7 +32,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netinet/if_atm.c,v 1.8.2.1 2001/12/20 10:30:18 ru Exp $
- * $DragonFly: src/sys/netinet/if_atm.c,v 1.4 2003/08/07 21:54:32 dillon Exp $
+ * $DragonFly: src/sys/netinet/if_atm.c,v 1.5 2004/03/23 22:19:07 hsu Exp $
  */
 
 /*
@@ -155,7 +155,7 @@ atm_rtrequest(req, rt, info)
                bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph));
                api.rxhand = NULL;
                if (rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMENA, 
-                                                       (caddr_t)&api) != 0) {
+                   (caddr_t)&api, (struct ucred *)NULL) != 0) {
                        printf("atm: couldn't add VC\n");
                        goto failed;
                }
@@ -198,7 +198,7 @@ failed:
                bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph));
                api.rxhand = NULL;
                (void)rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMDIS, 
-                                                       (caddr_t)&api);
+                   (caddr_t)&api, (struct ucred *)NULL);
 
                break;
        }
index 417f8b1..1f80ccd 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)in.c        8.4 (Berkeley) 1/9/95
  * $FreeBSD: src/sys/netinet/in.c,v 1.44.2.14 2002/11/08 00:45:50 suz Exp $
- * $DragonFly: src/sys/netinet/in.c,v 1.8 2004/03/06 05:00:41 hsu Exp $
+ * $DragonFly: src/sys/netinet/in.c,v 1.9 2004/03/23 22:19:07 hsu Exp $
  */
 
 #include "opt_bootp.h"
@@ -347,8 +347,9 @@ in_control(so, cmd, data, ifp, td)
                        return (EINVAL);
                oldaddr = ia->ia_dstaddr;
                ia->ia_dstaddr = *(struct sockaddr_in *)&ifr->ifr_dstaddr;
-               if (ifp->if_ioctl && (error = (*ifp->if_ioctl)
-                                       (ifp, SIOCSIFDSTADDR, (caddr_t)ia))) {
+               if (ifp->if_ioctl &&
+                   (error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, (caddr_t)ia,
+                                             td->td_proc->p_ucred))) {
                        ia->ia_dstaddr = oldaddr;
                        return (error);
                }
@@ -441,9 +442,9 @@ in_control(so, cmd, data, ifp, td)
                break;
 
        default:
-               if (ifp == 0 || ifp->if_ioctl == 0)
+               if (ifp == NULL || ifp->if_ioctl == NULL)
                        return (EOPNOTSUPP);
-               return ((*ifp->if_ioctl)(ifp, cmd, data));
+               return ((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred));
        }
 
        /*
@@ -686,7 +687,8 @@ in_ifinit(ifp, ia, sin, scrub)
         * and to validate the address if necessary.
         */
        if (ifp->if_ioctl &&
-           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia))) {
+           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia,
+                                     (struct ucred *)NULL))) {
                splx(s);
                /* LIST_REMOVE(ia, ia_hash) is done in in_control */
                ia->ia_addr = oldaddr;
index cbd84ca..15cd5f0 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/netinet6/in6.c,v 1.7.2.9 2002/04/28 05:40:26 suz Exp $        */
-/*     $DragonFly: src/sys/netinet6/in6.c,v 1.6 2003/08/23 11:02:45 rob Exp $  */
+/*     $DragonFly: src/sys/netinet6/in6.c,v 1.7 2004/03/23 22:19:08 hsu Exp $  */
 /*     $KAME: in6.c,v 1.259 2002/01/21 11:37:50 keiichi Exp $  */
 
 /*
@@ -755,7 +755,7 @@ in6_control(struct socket *so, u_long cmd, caddr_t data,
        default:
                if (ifp == NULL || ifp->if_ioctl == 0)
                        return(EOPNOTSUPP);
-               return((*ifp->if_ioctl)(ifp, cmd, data));
+               return((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred));
        }
 
        return(0);
@@ -1594,7 +1594,8 @@ in6_ifinit(ifp, ia, sin6, newhost)
        ia->ia_addr = *sin6;
 
        if (ifacount <= 1 && ifp->if_ioctl &&
-           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia))) {
+           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia,
+                                     (struct ucred *)NULL))) {
                splx(s);
                return(error);
        }
index 2671c71..3a8ea09 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/netinet6/ip6_mroute.c,v 1.2.2.9 2003/01/23 21:06:47 sam Exp $ */
-/*     $DragonFly: src/sys/netinet6/ip6_mroute.c,v 1.5 2004/01/08 18:39:18 asmodai Exp $       */
+/*     $DragonFly: src/sys/netinet6/ip6_mroute.c,v 1.6 2004/03/23 22:19:08 hsu Exp $   */
 /*     $KAME: ip6_mroute.c,v 1.58 2001/12/18 02:36:31 itojun Exp $     */
 
 /*
@@ -463,7 +463,8 @@ ip6_mrouter_done()
                                ifr.ifr_addr.sin6_addr= in6addr_any;
                                ifp = mif6table[mifi].m6_ifp;
                                (*ifp->if_ioctl)(ifp, SIOCDELMULTI,
-                                                (caddr_t)&ifr);
+                                                (caddr_t)&ifr,
+                                                (struct ucred *)NULL);
                        }
                }
        }
index 4088e24..010e525 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
  * All Rights Reserved.
  *
- * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.5 2003/08/07 21:17:33 dillon Exp $
+ * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.6 2004/03/23 22:19:08 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -323,7 +323,7 @@ at_control(struct socket *so, u_long cmd, caddr_t data,
     default:
        if ( ifp == 0 || ifp->if_ioctl == 0 )
            return( EOPNOTSUPP );
-       return( (*ifp->if_ioctl)( ifp, cmd, data ));
+       return( (*ifp->if_ioctl)( ifp, cmd, data, td->td_proc->p_ucred ));
     }
     return( 0 );
 }
@@ -575,7 +575,8 @@ at_ifinit( ifp, aa, sat )
      * about it, just in case it needs to adjust something.
      */
     if ( ifp->if_ioctl &&
-           ( error = (*ifp->if_ioctl)( ifp, SIOCSIFADDR, (caddr_t)aa ))) {
+           ( error = (*ifp->if_ioctl)( ifp, SIOCSIFADDR, (caddr_t)aa,
+                                       (struct ucred *)NULL ))) {
        /*
         * of course this could mean that it objects violently
         * so if it does, we back out again..
index 23a29d1..68b87b4 100644 (file)
@@ -34,7 +34,7 @@
  *     @(#)ipx.c
  *
  * $FreeBSD: src/sys/netipx/ipx.c,v 1.17.2.3 2003/04/04 09:35:43 tjr Exp $
- * $DragonFly: src/sys/netproto/ipx/ipx.c,v 1.5 2003/08/07 21:17:37 dillon Exp $
+ * $DragonFly: src/sys/netproto/ipx/ipx.c,v 1.6 2004/03/23 22:19:08 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -164,7 +164,9 @@ ipx_control(struct socket *so, u_long cmd, caddr_t data,
                        ia->ia_flags &= ~IFA_ROUTE;
                }
                if (ifp->if_ioctl) {
-                       error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, (void *)ia);
+                       error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR,
+                                                (void *)ia,
+                                                (struct ucred *)NULL);
                        if (error)
                                return (error);
                }
@@ -220,7 +222,7 @@ ipx_control(struct socket *so, u_long cmd, caddr_t data,
        default:
                if (ifp->if_ioctl == NULL)
                        return (EOPNOTSUPP);
-               return ((*ifp->if_ioctl)(ifp, cmd, data));
+               return ((*ifp->if_ioctl)(ifp, cmd, data, (struct ucred *)NULL));
        }
 }
 
@@ -272,7 +274,8 @@ ipx_ifinit(ifp, ia, sipx, scrub)
         * and to validate the address if necessary.
         */
        if (ifp->if_ioctl != NULL &&
-           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (void *)ia))) {
+           (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (void *)ia,
+                                     (struct ucred *)NULL))) {
                ia->ia_addr = oldaddr;
                splx(s);
                return (error);
index cdcd418..50989c3 100644 (file)
@@ -1,6 +1,6 @@
 /*     $NetBSD: natm.c,v 1.5 1996/11/09 03:26:26 chuck Exp $   */
 /* $FreeBSD: src/sys/netnatm/natm.c,v 1.12 2000/02/13 03:32:03 peter Exp $ */
-/* $DragonFly: src/sys/netproto/natm/natm.c,v 1.11 2004/03/06 01:58:57 hsu Exp $ */
+/* $DragonFly: src/sys/netproto/natm/natm.c,v 1.12 2004/03/23 22:19:08 hsu Exp $ */
 
 /*
  *
@@ -210,7 +210,8 @@ natm_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
     api.rxhand = npcb;
     s2 = splimp();
     if (ifp->if_ioctl == NULL || 
-       ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api) != 0) {
+       ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api,
+                     (struct ucred *)NULL) != 0) {
        splx(s2);
        npcb_free(npcb, NPCB_REMOVE);
         error = EIO;
@@ -257,7 +258,7 @@ natm_usr_disconnect(struct socket *so)
     api.rxhand = npcb;
     s2 = splimp();
     if (ifp->if_ioctl != NULL)
-       ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api);
+       ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api, (struct ucred *)NULL);
     splx(s2);
 
     npcb_free(npcb, NPCB_REMOVE);
@@ -375,7 +376,8 @@ natm_usr_control(struct socket *so, u_long cmd, caddr_t arg,
         ario.npcb = npcb;
         ario.rawvalue = *((int *)arg);
         error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, 
-                                        SIOCXRAWATM, (caddr_t) &ario);
+                                        SIOCXRAWATM, (caddr_t) &ario,
+                                        (struct ucred *)NULL);
        if (!error) {
            if (ario.rawvalue) 
                npcb->npcb_flags |= NPCB_RAW;
@@ -546,7 +548,8 @@ struct proc *p;
       api.rxhand = npcb;
       s2 = splimp();
       if (ifp->if_ioctl == NULL || 
-         ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api) != 0) {
+         ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api,
+                       (struct ucred *)NULL) != 0) {
        splx(s2);
        npcb_free(npcb, NPCB_REMOVE);
         error = EIO;
@@ -577,7 +580,7 @@ struct proc *p;
       api.rxhand = npcb;
       s2 = splimp();
       if (ifp->if_ioctl != NULL)
-         ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api);
+         ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api, (struct ucred *)NULL);
       splx(s2);
 
       npcb_free(npcb, NPCB_REMOVE);
@@ -646,8 +649,8 @@ struct proc *p;
         }
         ario.npcb = npcb;
         ario.rawvalue = *((int *)nam);
-        error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, 
-                               SIOCXRAWATM, (caddr_t) &ario);
+        error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, SIOCXRAWATM,
+                                        (caddr_t) &ario, (struct ucred *)NULL);
        if (!error) {
           if (ario.rawvalue) 
            npcb->npcb_flags |= NPCB_RAW;
index 4c3cb3c..86a0fd0 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ns.c        8.2 (Berkeley) 11/15/93
  * $FreeBSD: src/sys/netns/ns.c,v 1.9 1999/08/28 00:49:47 peter Exp $
- * $DragonFly: src/sys/netproto/ns/ns.c,v 1.6 2004/02/16 20:37:20 dillon Exp $
+ * $DragonFly: src/sys/netproto/ns/ns.c,v 1.7 2004/03/23 22:19:08 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -177,7 +177,8 @@ ns_control(so, cmd, data, ifp)
                }
                if (ifp->if_ioctl) {
                        error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, 
-                                                       (caddr_t)ia);
+                                                       (caddr_t)ia,
+                                                       (struct ucred *)NULL);
                        if (error)
                                return (error);
                }
@@ -239,7 +240,7 @@ ns_control(so, cmd, data, ifp)
        default:
                if (ifp->if_ioctl == 0)
                        return (EOPNOTSUPP);
-               return ((*ifp->if_ioctl)(ifp, cmd, data));
+               return ((*ifp->if_ioctl)(ifp, cmd, data, (struct ucred *)NULL));
        }
 }
 
@@ -294,7 +295,8 @@ ns_ifinit(ifp, ia, sns, scrub)
        if (ns_hosteqnh(ns_thishost, ns_zerohost)) {
                if (ifp->if_ioctl &&
                     (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, 
-                                               (caddr_t)ia))) {
+                                               (caddr_t)ia,
+                                               (struct ucred *)NULL))) {
                        ia->ia_addr = oldaddr;
                        splx(s);
                        return (error);
@@ -305,7 +307,8 @@ ns_ifinit(ifp, ia, sns, scrub)
                *h = ns_thishost;
                if (ifp->if_ioctl &&
                     (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, 
-                                               (caddr_t)ia))) {
+                                               (caddr_t)ia,
+                                               (struct ucred *)NULL))) {
                        ia->ia_addr = oldaddr;
                        splx(s);
                        return (error);