From owner-p4-projects@FreeBSD.ORG Wed Oct 17 22:58:05 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EC9216A46B; Wed, 17 Oct 2007 22:58:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6C1E16A417 for ; Wed, 17 Oct 2007 22:58:04 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AAC9613C48D for ; Wed, 17 Oct 2007 22:58:04 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l9HMw4rx061208 for ; Wed, 17 Oct 2007 22:58:04 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l9HMw33S061205 for perforce@freebsd.org; Wed, 17 Oct 2007 22:58:03 GMT (envelope-from zec@FreeBSD.org) Date: Wed, 17 Oct 2007 22:58:03 GMT Message-Id: <200710172258.l9HMw33S061205@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 127639 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Oct 2007 22:58:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=127639 Change 127639 by zec@zec_tpx32 on 2007/10/17 22:57:48 Introduce a few macros for easier and more readable fetching of virtualized resource context from a ptr to a proc or thread. The additional benefit is that if we ever decide not to hang vimage / vnet etc. from struct ucred but use some other method instead, we won't have to change hundreds of lines of code, but only those few new macros... Affected files ... .. //depot/projects/vimage/src/sys/compat/linprocfs/linprocfs.c#13 edit .. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#6 edit .. //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#11 edit .. //depot/projects/vimage/src/sys/dev/firewire/firewire.c#9 edit .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_rrip.c#3 edit .. //depot/projects/vimage/src/sys/i386/i386/dump_machdep.c#4 edit .. //depot/projects/vimage/src/sys/i386/i386/minidump_machdep.c#5 edit .. //depot/projects/vimage/src/sys/kern/init_main.c#13 edit .. //depot/projects/vimage/src/sys/kern/kern_clock.c#12 edit .. //depot/projects/vimage/src/sys/kern/kern_exit.c#12 edit .. //depot/projects/vimage/src/sys/kern/kern_fork.c#12 edit .. //depot/projects/vimage/src/sys/kern/kern_jail.c#5 edit .. //depot/projects/vimage/src/sys/kern/kern_linker.c#10 edit .. //depot/projects/vimage/src/sys/kern/kern_mib.c#7 edit .. //depot/projects/vimage/src/sys/kern/kern_prot.c#6 edit .. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#9 edit .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#47 edit .. //depot/projects/vimage/src/sys/kern/kern_xxx.c#4 edit .. //depot/projects/vimage/src/sys/kern/sched_4bsd.c#16 edit .. //depot/projects/vimage/src/sys/kern/sched_ule.c#16 edit .. //depot/projects/vimage/src/sys/kern/tty.c#11 edit .. //depot/projects/vimage/src/sys/kern/uipc_socket.c#13 edit .. //depot/projects/vimage/src/sys/kern/vfs_export.c#8 edit .. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#9 edit .. //depot/projects/vimage/src/sys/net/bpf.c#14 edit .. //depot/projects/vimage/src/sys/net/if.c#21 edit .. //depot/projects/vimage/src/sys/netinet6/icmp6.c#17 edit .. //depot/projects/vimage/src/sys/netinet6/in6.c#13 edit .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#14 edit .. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#8 edit .. //depot/projects/vimage/src/sys/sys/sysctl.h#12 edit .. //depot/projects/vimage/src/sys/sys/ucred.h#5 edit .. //depot/projects/vimage/src/sys/sys/vimage.h#44 edit .. //depot/projects/vimage/src/sys/vm/vm_meter.c#7 edit Differences ... ==== //depot/projects/vimage/src/sys/compat/linprocfs/linprocfs.c#13 (text+ko) ==== @@ -378,7 +378,7 @@ static int linprocfs_dostat(PFS_FILL_ARGS) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); int i; sbuf_printf(sb, "cpu %ld %ld %ld %ld\n", @@ -415,7 +415,7 @@ static int linprocfs_douptime(PFS_FILL_ARGS) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); struct timeval tv; getmicrouptime(&tv); @@ -502,7 +502,7 @@ static int linprocfs_doloadavg(PFS_FILL_ARGS) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); sbuf_printf(sb, "%d.%02d %d.%02d %d.%02d %d/%d %d\n", @@ -994,7 +994,7 @@ static int linprocfs_donetdev(PFS_FILL_ARGS) { - INIT_VNET_NET(curthread->td_ucred->cr_vimage->v_vnet); + INIT_VNET_NET(TD_TO_VNET(curthread)); char ifname[16]; /* XXX LINUX_IFNAMSIZ */ struct ifnet *ifp; ==== //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#6 (text+ko) ==== @@ -2075,7 +2075,7 @@ static struct ifnet * ifname_linux_to_bsd(const char *lxname, char *bsdname) { - INIT_VNET_NET(curthread->td_ucred->cr_vimage->v_vnet); + INIT_VNET_NET(TD_TO_VNET(curthread)); struct ifnet *ifp; int len, unit; char *ep; @@ -2116,7 +2116,7 @@ static int linux_ifconf(struct thread *td, struct ifconf *uifc) { - INIT_VNET_NET(td->td_ucred->cr_vimage->v_vnet); + INIT_VNET_NET(TD_TO_VNET(td)); #ifdef COMPAT_LINUX32 struct l_ifconf ifc; #else ==== //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#11 (text+ko) ==== @@ -125,7 +125,7 @@ int linux_sysinfo(struct thread *td, struct linux_sysinfo_args *args) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); struct l_sysinfo sysinfo; vm_object_t object; int i, j; @@ -697,7 +697,7 @@ int linux_newuname(struct thread *td, struct linux_newuname_args *args) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); struct l_new_utsname utsname; char osname[LINUX_MAX_UTSNAME]; char osrelease[LINUX_MAX_UTSNAME]; ==== //depot/projects/vimage/src/sys/dev/firewire/firewire.c#9 (text+ko) ==== @@ -677,7 +677,7 @@ static void fw_reset_crom(struct firewire_comm *fc) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); /* XXX */ + INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX */ struct crom_src_buf *buf; struct crom_src *src; struct crom_chunk *root; ==== //depot/projects/vimage/src/sys/fs/cd9660/cd9660_rrip.c#3 (text+ko) ==== @@ -116,7 +116,7 @@ ISO_RRIP_SLINK *p; ISO_RRIP_ANALYZE *ana; { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); ISO_RRIP_SLINK_COMPONENT *pcomp; ISO_RRIP_SLINK_COMPONENT *pcompe; int len, wlen, cont; @@ -226,7 +226,7 @@ ISO_RRIP_ALTNAME *p; ISO_RRIP_ANALYZE *ana; { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); char *inbuf; int wlen; int cont; ==== //depot/projects/vimage/src/sys/i386/i386/dump_machdep.c#4 (text+ko) ==== @@ -112,7 +112,7 @@ mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen, uint32_t blksz) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); /* XXX */ + INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX */ bzero(kdh, sizeof(*kdh)); strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic)); ==== //depot/projects/vimage/src/sys/i386/i386/minidump_machdep.c#5 (text) ==== @@ -86,7 +86,7 @@ mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen, uint32_t blksz) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); bzero(kdh, sizeof(*kdh)); strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic)); ==== //depot/projects/vimage/src/sys/kern/init_main.c#13 (text+ko) ==== ==== //depot/projects/vimage/src/sys/kern/kern_clock.c#12 (text+ko) ==== @@ -94,7 +94,7 @@ static int sysctl_kern_cp_time(SYSCTL_HANDLER_ARGS) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); int error; #ifdef SCTL_MASK32 @@ -421,8 +421,8 @@ td = curthread; p = td->td_proc; #ifdef VIMAGE - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); - INIT_VCPU(td->td_ucred->cr_vimage->v_cpu); + INIT_VPROCG(TD_TO_VPROCG(td)); + INIT_VCPU(TD_TO_VCPU(td)); struct vprocg *vprocg_iter; #endif ==== //depot/projects/vimage/src/sys/kern/kern_exit.c#12 (text+ko) ==== ==== //depot/projects/vimage/src/sys/kern/kern_fork.c#12 (text+ko) ==== ==== //depot/projects/vimage/src/sys/kern/kern_jail.c#5 (text+ko) ==== ==== //depot/projects/vimage/src/sys/kern/kern_linker.c#10 (text+ko) ==== @@ -857,12 +857,12 @@ return (error); #ifdef VIMAGE - if (!IS_DEFAULT_VIMAGE(td->td_ucred->cr_vimage)) + if (!IS_DEFAULT_VIMAGE(TD_TO_VIMAGE(td))) return (EPERM); + + CURVNET_SET(TD_TO_VNET(td)); #endif - CURVNET_SET(td->td_ucred->cr_vimage->v_vnet); - /* * If file does not contain a qualified name or any dot in it * (kldname.ko, or kldname.ver.ko) treat it as an interface @@ -929,9 +929,9 @@ return (error); /* XXX should suser catch this for us? */ - VNET_ASSERT(IS_DEFAULT_VIMAGE(td->td_ucred->cr_vimage)); + VNET_ASSERT(IS_DEFAULT_VIMAGE(TD_TO_VIMAGE(td))); - CURVNET_SET(td->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(td)); KLD_LOCK(); lf = linker_find_file_by_id(fileid); @@ -1176,7 +1176,7 @@ } #ifdef VIMAGE if (lf == NULL) { - CURVNET_SET(td->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(td)); error = vi_symlookup(&lookup, symstr); CURVNET_RESTORE(); if (error == 0) { ==== //depot/projects/vimage/src/sys/kern/kern_mib.c#7 (text+ko) ==== @@ -211,7 +211,7 @@ static int sysctl_hostname(SYSCTL_HANDLER_ARGS) { - INIT_VPROCG(req->td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(req->td)); struct prison *pr; char tmphostname[MAXHOSTNAMELEN]; int error; ==== //depot/projects/vimage/src/sys/kern/kern_prot.c#6 (text+ko) ==== @@ -1723,7 +1723,7 @@ KASSERT(td == curthread, ("%s: td not curthread", __func__)); PROC_LOCK_ASSERT(p, MA_OWNED); #ifdef VIMAGE - if (!vi_child_of(td->td_ucred->cr_vimage, p->p_ucred->cr_vimage)) + if (!vi_child_of(TD_TO_VIMAGE(td), P_TO_VIMAGE(p))) #endif if ((error = prison_check(td->td_ucred, p->p_ucred))) return (error); ==== //depot/projects/vimage/src/sys/kern/kern_sysctl.c#9 (text+ko) ==== @@ -1503,8 +1503,7 @@ req.lock = REQ_LOCKED; SYSCTL_LOCK(); - CURVNET_SET(curthread->td_ucred->cr_vimage->v_vnet); - VNET_ASSERT(td == curthread); + CURVNET_SET(TD_TO_VNET(curthread)); do { req.oldidx = 0; ==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#47 (text+ko) ==== @@ -450,7 +450,7 @@ struct thread *td; { int error; - struct vimage *vip = td->td_ucred->cr_vimage; + struct vimage *vip = TD_TO_VIMAGE(td); struct vimage *vip_r = NULL; struct vimage *tvip; @@ -533,7 +533,7 @@ PROC_UNLOCK(p); sx_xlock(&allproc_lock); oldcred->cr_vimage->v_procg->nprocs--; - p->p_ucred->cr_vimage->v_procg->nprocs++; + P_TO_VPROCG(p)->nprocs++; sched_load_reassign(oldcred->cr_vimage->v_procg, newcred->cr_vimage->v_procg); sx_xunlock(&allproc_lock); ==== //depot/projects/vimage/src/sys/kern/kern_xxx.c#4 (text+ko) ==== @@ -247,7 +247,7 @@ struct thread *td; struct getdomainname_args *uap; { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); int domainnamelen; int error; @@ -272,7 +272,7 @@ struct thread *td; struct setdomainname_args *uap; { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); int error, domainnamelen; error = priv_check(td, PRIV_SETDOMAINNAME); ==== //depot/projects/vimage/src/sys/kern/sched_4bsd.c#16 (text+ko) ==== @@ -236,7 +236,7 @@ static __inline void sched_load_add(struct thread *td) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); V_sched_tdcnt++; CTR1(KTR_SCHED, "global load: %d", V_sched_tdcnt); @@ -245,7 +245,7 @@ static __inline void sched_load_rem(struct thread *td) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); V_sched_tdcnt--; CTR1(KTR_SCHED, "global load: %d", V_sched_tdcnt); @@ -405,7 +405,7 @@ PROC_SLOCK(p); #ifdef VIMAGE if (p->p_ucred != NULL) { - INIT_VPROCG(p->p_ucred->cr_vimage->v_procg); + INIT_VPROCG(P_TO_VPROCG(p)); loadfac = loadfactor(V_averunnable.ldavg[0]); } else loadfac = 0; @@ -516,7 +516,7 @@ static void updatepri(struct thread *td) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); struct td_sched *ts; fixpt_t loadfac; unsigned int newcpu; ==== //depot/projects/vimage/src/sys/kern/sched_ule.c#16 (text+ko) ==== @@ -1356,7 +1356,7 @@ #ifndef VIMAGE tdq_load_add(tdq, &td_sched0); #else - tdq_load_add(tdq, &td_sched0, thread0.td_ucred->cr_vimage->v_procg); + tdq_load_add(tdq, &td_sched0, TD_TO_VPROCG(&thread0)); #endif TDQ_UNLOCK(tdq); } @@ -1893,7 +1893,7 @@ #ifndef VIMAGE tdq_load_rem(tdq, ts); #else - tdq_load_rem(tdq, ts, td->td_ucred->cr_vimage->v_procg); + tdq_load_rem(tdq, ts, TD_TO_VPROCG(td)); #endif srqflag = (flags & SW_PREEMPT) ? SRQ_OURSELF|SRQ_YIELDING|SRQ_PREEMPTED : @@ -1909,7 +1909,7 @@ #ifndef VIMAGE tdq_load_rem(tdq, ts); #else - tdq_load_rem(tdq, ts, td->td_ucred->cr_vimage->v_procg); + tdq_load_rem(tdq, ts, TD_TO_VPROCG(td)); #endif } /* @@ -2417,7 +2417,7 @@ #ifndef VIMAGE tdq_load_add(tdq, ts); #else - tdq_load_add(tdq, ts, td->td_ucred->cr_vimage->v_procg); + tdq_load_add(tdq, ts, TD_TO_VPROCG(td)); #endif } @@ -2501,7 +2501,7 @@ #ifndef VIMAGE tdq_load_rem(tdq, ts); #else - tdq_load_rem(tdq, ts, td->td_ucred->cr_vimage->v_procg); + tdq_load_rem(tdq, ts, TD_TO_VPROCG(td)); #endif TD_SET_CAN_RUN(td); } @@ -2690,8 +2690,7 @@ #ifndef VIMAGE tdq_load_rem(tdq, td->td_sched); #else - tdq_load_rem(tdq, td->td_sched, - td->td_ucred->cr_vimage->v_procg); + tdq_load_rem(tdq, td->td_sched, TD_TO_VPROCG(td)); #endif } KASSERT(curthread->td_md.md_spinlock_count == 1, ("invalid count")); ==== //depot/projects/vimage/src/sys/kern/tty.c#11 (text+ko) ==== @@ -1143,7 +1143,7 @@ if (t == tp->t_line) return (0); s = spltty(); - CURVNET_SET(curthread->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(curthread)); ttyld_close(tp, flag); tp->t_line = t; /* XXX: we should use the correct cdev here */ @@ -2534,7 +2534,7 @@ void ttyinfo(struct tty *tp) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); struct timeval utime, stime; struct proc *p, *pick; struct thread *td, *picktd; @@ -3203,7 +3203,7 @@ goto out; goto open_top; } - CURVNET_SET(curthread->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(curthread)); error = ttyld_open(tp, dev); CURVNET_RESTORE(); ttyldoptim(tp); @@ -3222,7 +3222,7 @@ struct tty *tp; tp = dev->si_tty; - CURVNET_SET(curthread->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(curthread)); ttyld_close(tp, flag); CURVNET_RESTORE(); ttyldoptim(tp); ==== //depot/projects/vimage/src/sys/kern/uipc_socket.c#13 (text+ko) ==== @@ -364,7 +364,7 @@ if (prp->pr_type != type) return (EPROTOTYPE); #ifdef VIMAGE - so = soalloc(td->td_ucred->cr_vimage->v_vnet); + so = soalloc(TD_TO_VNET(td)); #else so = soalloc(NULL); #endif ==== //depot/projects/vimage/src/sys/kern/vfs_export.c#8 (text+ko) ==== @@ -138,7 +138,7 @@ } #endif - CURVNET_SET(curthread->td_ucred->cr_vimage->v_vnet); /* XXX MARKO */ + CURVNET_SET(TD_TO_VNET(curthread)); /* XXX MARKO */ i = sizeof(struct netcred) + argp->ex_addrlen + argp->ex_masklen; np = (struct netcred *) malloc(i, M_NETADDR, M_WAITOK | M_ZERO); saddr = (struct sockaddr *) (np + 1); ==== //depot/projects/vimage/src/sys/kern/vfs_lookup.c#9 (text+ko) ==== @@ -141,7 +141,7 @@ struct proc *p = td->td_proc; int vfslocked; #ifdef IMUNES_SYMLINK_HACK - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); #endif KASSERT((cnp->cn_flags & MPSAFE) != 0 || mtx_owned(&Giant) != 0, @@ -301,7 +301,7 @@ #ifdef IMUNES_SYMLINK_HACK if (V_morphing_symlinks) { char *sp = strchr(cp, '@'); - int vnamelen = strlen(td->td_ucred->cr_vimage->vi_name); + int vnamelen = strlen(TD_TO_VIMAGE(td)->vi_name); if (sp) { if (vnamelen >= auio.uio_resid) { @@ -312,8 +312,7 @@ } bcopy(sp + 1, sp + vnamelen, linklen - (sp - cp)); - bcopy(td->td_ucred->cr_vimage->vi_name, sp, - vnamelen); + bcopy(TD_TO_VIMAGE(td)->vi_name, sp, vnamelen); linklen += (vnamelen - 1); } } ==== //depot/projects/vimage/src/sys/net/bpf.c#14 (text+ko) ==== @@ -767,7 +767,7 @@ return (EPERM); } } - CURVNET_SET(td->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(td)); switch (cmd) { default: ==== //depot/projects/vimage/src/sys/net/if.c#21 (text+ko) ==== @@ -1987,7 +1987,7 @@ error = suser(td); if (error == 0) error = vi_if_move((struct vi_req *) data, NULL, - td->td_ucred->cr_vimage); + TD_TO_VIMAGE(td)); return (error); /* ==== //depot/projects/vimage/src/sys/netinet6/icmp6.c#17 (text+ko) ==== ==== //depot/projects/vimage/src/sys/netinet6/in6.c#13 (text+ko) ==== @@ -799,8 +799,7 @@ struct in6_ifaddr *ia, int flags) { INIT_VNET_INET6(ifp->if_vnet); - /* XXX this bellow is WRONG - MARKO */ - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX V_hostname needs this */ int error = 0, hostIsNew = 0, plen = -1; struct in6_ifaddr *oia; struct sockaddr_in6 dst6; ==== //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#14 (text+ko) ==== @@ -102,8 +102,7 @@ static int get_rand_ifid(struct ifnet *ifp, struct in6_addr *in6) { - /* XXX this bellow is WRONG - MARKO */ - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX V_hostname needs this */ MD5_CTX ctxt; u_int8_t digest[16]; int hostnamelen = strlen(V_hostname); ==== //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#8 (text+ko) ==== @@ -401,7 +401,7 @@ int nfs_mountroot(struct mount *mp, struct thread *td) { - INIT_VPROCG(td->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(td)); struct nfsv3_diskless *nd = &nfsv3_diskless; struct socket *so; struct vnode *vp; @@ -411,7 +411,7 @@ char buf[128]; char *cp; - CURVNET_SET(td->td_ucred->cr_vimage->v_vnet); + CURVNET_SET(TD_TO_VNET(td)); #if defined(BOOTP_NFSROOT) && defined(BOOTP) bootpc_init(); /* use bootp to get nfs_diskless filled in */ #elif defined(NFS_ROOT) ==== //depot/projects/vimage/src/sys/sys/sysctl.h#12 (text+ko) ==== @@ -412,15 +412,15 @@ void *ptr; \ switch (subs) { \ case V_NET: \ - ptr = curthread->td_ucred->cr_vimage->v_vnet->mod_data[mod]; \ + ptr = TD_TO_VNET(curthread)->mod_data[mod]; \ arg1 = (void *) ((int) ptr + (int) arg1); \ break; \ case V_PROCG: \ - ptr = curthread->td_ucred->cr_vimage->v_procg; \ + ptr = TD_TO_VPROCG(curthread); \ arg1 = (void *) ((int) ptr + (int) arg1); \ break; \ case V_CPU: \ - ptr = curthread->td_ucred->cr_vimage->v_cpu; \ + ptr = TD_TO_VCPU(curthread); \ arg1 = (void *) ((int) ptr + (int) arg1); \ break; \ default: \ ==== //depot/projects/vimage/src/sys/sys/ucred.h#5 (text+ko) ==== ==== //depot/projects/vimage/src/sys/sys/vimage.h#44 (text+ko) ==== @@ -275,6 +275,15 @@ #define INIT_VCPU(arg) struct vcpu *vcpu = (arg); +#define TD_TO_VIMAGE(td) (td)->td_ucred->cr_vimage +#define TD_TO_VNET(td) (td)->td_ucred->cr_vimage->v_vnet +#define TD_TO_VPROCG(td) (td)->td_ucred->cr_vimage->v_procg +#define TD_TO_VCPU(td) (td)->td_ucred->cr_vimage->v_cpu +#define P_TO_VIMAGE(p) (p)->p_ucred->cr_vimage +#define P_TO_VNET(p) (p)->p_ucred->cr_vimage->v_vnet +#define P_TO_VPROCG(p) (p)->p_ucred->cr_vimage->v_procg +#define P_TO_VCPU(p) (p)->p_ucred->cr_vimage->v_cpu + #else /* !VIMAGE */ /* Non-VIMAGE null-macros */ @@ -294,6 +303,14 @@ #define VPROCG_ITERLOOP_BEGIN() #define VPROCG_ITERLOOP_END() #define INIT_VCPU(arg) +#define TD_TO_VIMAGE(td) +#define TD_TO_VNET(td) +#define TD_TO_VPROCG(td) +#define TD_TO_VCPU(td) +#define P_TO_VIMAGE(p) +#define P_TO_VNET(p) +#define P_TO_VPROCG(p) +#define P_TO_VCPU(p) #endif /* !VIMAGE */ ==== //depot/projects/vimage/src/sys/vm/vm_meter.c#7 (text+ko) ==== @@ -79,7 +79,7 @@ static int sysctl_vm_loadavg(SYSCTL_HANDLER_ARGS) { - INIT_VPROCG(curthread->td_ucred->cr_vimage->v_procg); + INIT_VPROCG(TD_TO_VPROCG(curthread)); #ifdef SCTL_MASK32 u_int32_t la[4];