diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/cam/scsi/scsi_target.c | 7 | ||||
-rw-r--r-- | sys/coda/coda_fbsd.c | 7 | ||||
-rw-r--r-- | sys/dev/firewire/firewirereg.h | 2 | ||||
-rw-r--r-- | sys/dev/firewire/fwdev.c | 3 | ||||
-rw-r--r-- | sys/dev/nmdm/nmdm.c | 3 | ||||
-rw-r--r-- | sys/dev/snp/snp.c | 5 | ||||
-rw-r--r-- | sys/dev/sound/pcm/dsp.c | 3 | ||||
-rw-r--r-- | sys/dev/sound/pcm/mixer.c | 3 | ||||
-rw-r--r-- | sys/dev/vkbd/vkbd.c | 6 | ||||
-rw-r--r-- | sys/fs/coda/coda_fbsd.c | 7 | ||||
-rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 11 | ||||
-rw-r--r-- | sys/kern/tty_pty.c | 2 | ||||
-rw-r--r-- | sys/kern/tty_tty.c | 3 | ||||
-rw-r--r-- | sys/net/bpf.c | 5 | ||||
-rw-r--r-- | sys/net/if_tap.c | 6 | ||||
-rw-r--r-- | sys/net/if_tun.c | 6 | ||||
-rw-r--r-- | sys/netsmb/smb_dev.c | 3 | ||||
-rw-r--r-- | sys/sys/conf.h | 9 |
18 files changed, 51 insertions, 40 deletions
diff --git a/sys/cam/scsi/scsi_target.c b/sys/cam/scsi/scsi_target.c index 0b7caac..1e3d893 100644 --- a/sys/cam/scsi/scsi_target.c +++ b/sys/cam/scsi/scsi_target.c @@ -141,8 +141,8 @@ static void targfreeccb(struct targ_softc *softc, union ccb *ccb); static struct targ_cmd_descr * targgetdescr(struct targ_softc *softc); static periph_init_t targinit; -static void targclone(void *arg, char *name, int namelen, - struct cdev **dev); +static void targclone(void *arg, struct ucred *cred, char *name, + int namelen, struct cdev **dev); static void targasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); static void abort_all_pending(struct targ_softc *softc); @@ -1025,7 +1025,8 @@ targinit(void) } static void -targclone(void *arg, char *name, int namelen, struct cdev **dev) +targclone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { int u; diff --git a/sys/coda/coda_fbsd.c b/sys/coda/coda_fbsd.c index ac6ad48..dd379d7 100644 --- a/sys/coda/coda_fbsd.c +++ b/sys/coda/coda_fbsd.c @@ -70,8 +70,8 @@ int vcdebug = 1; #define VCDEBUG if (vcdebug) printf /* for DEVFS, using bpf & tun drivers as examples*/ -static void coda_fbsd_clone(void *arg, char *name, int namelen, - struct cdev **dev); +static void coda_fbsd_clone(void *arg, struct ucred *cred, char *name, + int namelen, struct cdev **dev); static int codadev_modevent(module_t mod, int type, void *data) @@ -105,8 +105,9 @@ static moduledata_t codadev_mod = { }; DECLARE_MODULE(codadev, codadev_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE); -static void coda_fbsd_clone(arg, name, namelen, dev) +static void coda_fbsd_clone(arg, cred, name, namelen, dev) void *arg; + struct ucred *cred; char *name; int namelen; struct cdev **dev; diff --git a/sys/dev/firewire/firewirereg.h b/sys/dev/firewire/firewirereg.h index 3b991ea..4061b8b 100644 --- a/sys/dev/firewire/firewirereg.h +++ b/sys/dev/firewire/firewirereg.h @@ -303,7 +303,7 @@ struct fw_bind *fw_bindlookup (struct firewire_comm *, uint16_t, uint32_t); void fw_drain_txq (struct firewire_comm *); int fwdev_makedev (struct firewire_softc *); int fwdev_destroydev (struct firewire_softc *); -void fwdev_clone (void *, char *, int, struct cdev **); +void fwdev_clone (void *, struct ucred *, char *, int, struct cdev **); extern int firewire_debug; extern devclass_t firewire_devclass; diff --git a/sys/dev/firewire/fwdev.c b/sys/dev/firewire/fwdev.c index ecd56c4..e42c30a 100644 --- a/sys/dev/firewire/fwdev.c +++ b/sys/dev/firewire/fwdev.c @@ -840,7 +840,8 @@ fwdev_destroydev(struct firewire_softc *sc) #if defined(__FreeBSD__) && __FreeBSD_version >= 500000 #define NDEVTYPE 2 void -fwdev_clone(void *arg, char *name, int namelen, struct cdev **dev) +fwdev_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { struct firewire_softc *sc; char *devnames[NDEVTYPE] = {"fw", "fwmem"}; diff --git a/sys/dev/nmdm/nmdm.c b/sys/dev/nmdm/nmdm.c index e61a05f..1c118d2 100644 --- a/sys/dev/nmdm/nmdm.c +++ b/sys/dev/nmdm/nmdm.c @@ -104,7 +104,8 @@ static struct clonedevs *nmdmclones; static TAILQ_HEAD(,nm_softc) nmdmhead = TAILQ_HEAD_INITIALIZER(nmdmhead); static void -nmdm_clone(void *arg, char *name, int nameen, struct cdev **dev) +nmdm_clone(void *arg, struct ucred *cred, char *name, int nameen, + struct cdev **dev) { int i, unit; char *p; diff --git a/sys/dev/snp/snp.c b/sys/dev/snp/snp.c index 8be2b19..3e190c7 100644 --- a/sys/dev/snp/snp.c +++ b/sys/dev/snp/snp.c @@ -114,7 +114,7 @@ static LIST_HEAD(, snoop) snp_sclist = LIST_HEAD_INITIALIZER(&snp_sclist); static struct clonedevs *snpclones; static struct tty *snpdevtotty(struct cdev *dev); -static void snp_clone(void *arg, char *name, +static void snp_clone(void *arg, struct ucred *cred, char *name, int namelen, struct cdev **dev); static int snp_detach(struct snoop *snp); static int snp_down(struct snoop *snp); @@ -627,8 +627,9 @@ snppoll(dev, events, td) } static void -snp_clone(arg, name, namelen, dev) +snp_clone(arg, cred, name, namelen, dev) void *arg; + struct ucred *cred; char *name; int namelen; struct cdev **dev; diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index c57b59f..9c34f65 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -1130,7 +1130,8 @@ dsp_mmap(struct cdev *i_dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) * if xN.i isn't busy, return its dev_t */ static void -dsp_clone(void *arg, char *name, int namelen, struct cdev **dev) +dsp_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { struct cdev *pdev; struct snddev_info *pcm_dev; diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c index 96b08fc..e7e3e0c 100644 --- a/sys/dev/sound/pcm/mixer.c +++ b/sys/dev/sound/pcm/mixer.c @@ -486,7 +486,8 @@ mixer_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, struct thread #ifdef USING_DEVFS static void -mixer_clone(void *arg, char *name, int namelen, struct cdev **dev) +mixer_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { struct snddev_info *sd; diff --git a/sys/dev/vkbd/vkbd.c b/sys/dev/vkbd/vkbd.c index ed39007..b399726 100644 --- a/sys/dev/vkbd/vkbd.c +++ b/sys/dev/vkbd/vkbd.c @@ -124,7 +124,8 @@ typedef struct vkbd_state vkbd_state_t; ***************************************************************************** *****************************************************************************/ -static void vkbd_dev_clone(void *, char *, int, struct cdev **); +static void vkbd_dev_clone(void *, struct ucred *, char *, int, + struct cdev **); static d_open_t vkbd_dev_open; static d_close_t vkbd_dev_close; static d_read_t vkbd_dev_read; @@ -152,7 +153,8 @@ static struct clonedevs *vkbd_dev_clones = NULL; /* Clone device */ static void -vkbd_dev_clone(void *arg, char *name, int namelen, struct cdev **dev) +vkbd_dev_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { int unit; diff --git a/sys/fs/coda/coda_fbsd.c b/sys/fs/coda/coda_fbsd.c index ac6ad48..dd379d7 100644 --- a/sys/fs/coda/coda_fbsd.c +++ b/sys/fs/coda/coda_fbsd.c @@ -70,8 +70,8 @@ int vcdebug = 1; #define VCDEBUG if (vcdebug) printf /* for DEVFS, using bpf & tun drivers as examples*/ -static void coda_fbsd_clone(void *arg, char *name, int namelen, - struct cdev **dev); +static void coda_fbsd_clone(void *arg, struct ucred *cred, char *name, + int namelen, struct cdev **dev); static int codadev_modevent(module_t mod, int type, void *data) @@ -105,8 +105,9 @@ static moduledata_t codadev_mod = { }; DECLARE_MODULE(codadev, codadev_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE); -static void coda_fbsd_clone(arg, name, namelen, dev) +static void coda_fbsd_clone(arg, cred, name, namelen, dev) void *arg; + struct ucred *cred; char *name; int namelen; struct cdev **dev; diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 34e78d9..8f14bcf 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -705,13 +705,10 @@ devfs_lookupx(ap) goto notfound; cdev = NULL; - EVENTHANDLER_INVOKE(dev_clone_cred, td->td_ucred, pname, - strlen(pname), &cdev); - if (cdev == NULL) { - EVENTHANDLER_INVOKE(dev_clone, pname, strlen(pname), &cdev); - if (cdev == NULL) - goto notfound; - } + EVENTHANDLER_INVOKE(dev_clone, td->td_ucred, pname, strlen(pname), + &cdev); + if (cdev == NULL) + goto notfound; devfs_populate(dmp); diff --git a/sys/kern/tty_pty.c b/sys/kern/tty_pty.c index 92f6da1..d386601 100644 --- a/sys/kern/tty_pty.c +++ b/sys/kern/tty_pty.c @@ -720,7 +720,7 @@ static void ptc_drvinit(void *unused) { - EVENTHANDLER_REGISTER(dev_clone_cred, pty_clone, 0, 1000); + EVENTHANDLER_REGISTER(dev_clone, pty_clone, 0, 1000); } SYSINIT(ptcdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE,ptc_drvinit,NULL) diff --git a/sys/kern/tty_tty.c b/sys/kern/tty_tty.c index 8951e99..5a99d25 100644 --- a/sys/kern/tty_tty.c +++ b/sys/kern/tty_tty.c @@ -52,7 +52,8 @@ cttyopen(struct cdev *dev, int flag, int mode, struct thread *td) } static void -ctty_clone(void *arg, char *name, int namelen, struct cdev **dev) +ctty_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { if (*dev != NULL) diff --git a/sys/net/bpf.c b/sys/net/bpf.c index c42ea81..9ae3a96 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -108,7 +108,7 @@ static int bpf_setdlt(struct bpf_d *, u_int); static void filt_bpfdetach(struct knote *); static int filt_bpfread(struct knote *, long); static void bpf_drvinit(void *); -static void bpf_clone(void *, char *, int, struct cdev **); +static void bpf_clone(void *, struct ucred *, char *, int, struct cdev **); static int bpf_stats_sysctl(SYSCTL_HANDLER_ARGS); /* @@ -1614,8 +1614,9 @@ bpf_setdlt(d, dlt) } static void -bpf_clone(arg, name, namelen, dev) +bpf_clone(arg, cred, name, namelen, dev) void *arg; + struct ucred *cred; char *name; int namelen; struct cdev **dev; diff --git a/sys/net/if_tap.c b/sys/net/if_tap.c index f6ee9b0..f631c09 100644 --- a/sys/net/if_tap.c +++ b/sys/net/if_tap.c @@ -82,7 +82,8 @@ static int tapmodevent(module_t, int, void *); /* device */ -static void tapclone(void *, char *, int, struct cdev **); +static void tapclone(void *, struct ucred *, char *, int, + struct cdev **); static void tapcreate(struct cdev *); /* network interface */ @@ -231,8 +232,9 @@ tapmodevent(mod, type, data) * We need to support two kind of devices - tap and vmnet */ static void -tapclone(arg, name, namelen, dev) +tapclone(arg, cred, name, namelen, dev) void *arg; + struct ucred *cred; char *name; int namelen; struct cdev **dev; diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 4c23fa8..d9c31e2 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -107,7 +107,8 @@ static struct clonedevs *tunclones; static TAILQ_HEAD(,tun_softc) tunhead = TAILQ_HEAD_INITIALIZER(tunhead); SYSCTL_INT(_debug, OID_AUTO, if_tun_debug, CTLFLAG_RW, &tundebug, 0, ""); -static void tunclone(void *arg, char *name, int namelen, struct cdev **dev); +static void tunclone(void *arg, struct ucred *cred, char *name, + int namelen, struct cdev **dev); static void tuncreate(struct cdev *dev); static int tunifioctl(struct ifnet *, u_long, caddr_t); static int tuninit(struct ifnet *); @@ -136,7 +137,8 @@ static struct cdevsw tun_cdevsw = { }; static void -tunclone(void *arg, char *name, int namelen, struct cdev **dev) +tunclone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { int u, i; diff --git a/sys/netsmb/smb_dev.c b/sys/netsmb/smb_dev.c index 89a1676..17994cf 100644 --- a/sys/netsmb/smb_dev.c +++ b/sys/netsmb/smb_dev.c @@ -99,7 +99,8 @@ static struct cdevsw nsmb_cdevsw = { static eventhandler_tag nsmb_dev_tag; static void -nsmb_dev_clone(void *arg, char *name, int namelen, struct cdev **dev) +nsmb_dev_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) { int u; diff --git a/sys/sys/conf.h b/sys/sys/conf.h index 8784ace..2dfa956 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -68,7 +68,7 @@ struct cdev { uid_t si_uid; gid_t si_gid; mode_t si_mode; - struct ucred *si_cred; + struct ucred *si_cred; /* cached clone-time credential */ u_int si_drv0; int si_refcount; LIST_ENTRY(cdev) si_list; @@ -279,15 +279,12 @@ void devfs_destroy(struct cdev *dev); #define GID_GAMES 13 #define GID_DIALER 68 -typedef void (*dev_clone_fn)(void *arg, char *name, int namelen, struct cdev **result); +typedef void (*dev_clone_fn)(void *arg, struct ucred *cred, char *name, + int namelen, struct cdev **result); int dev_stdclone(char *_name, char **_namep, const char *_stem, int *_unit); EVENTHANDLER_DECLARE(dev_clone, dev_clone_fn); -typedef void (*dev_clone_cred_fn)(void *arg, struct ucred *cred, char *name, - int namelen, struct cdev **result); -EVENTHANDLER_DECLARE(dev_clone_cred, dev_clone_cred_fn); - /* Stuff relating to kernel-dump */ struct dumperinfo { |