From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:31:43 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DFCB1065670; Sun, 22 Jul 2012 14:31:43 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1949B8FC0A; Sun, 22 Jul 2012 14:31:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MEVg33094263; Sun, 22 Jul 2012 14:31:42 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MEVgn3094260; Sun, 22 Jul 2012 14:31:42 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221431.q6MEVgn3094260@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:31:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238688 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:31:43 -0000 Author: attilio Date: Sun Jul 22 14:31:42 2012 New Revision: 238688 URL: http://svn.freebsd.org/changeset/base/238688 Log: Handle the case where there are collision in the inode vfs hash struct. Reported by: pho Tested by: pho Modified: projects/fuse/sys/fs/fuse/fuse_node.c Modified: projects/fuse/sys/fs/fuse/fuse_node.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_node.c Sun Jul 22 13:41:45 2012 (r238687) +++ projects/fuse/sys/fs/fuse/fuse_node.c Sun Jul 22 14:31:42 2012 (r238688) @@ -213,18 +213,13 @@ fuse_vnode_alloc(struct mount *mp, } err = vfs_hash_insert(*vpp, fuse_vnode_hash(nodeid), LK_EXCLUSIVE, td, &vp2, fuse_vnode_cmp, &nodeid); - - if (err) { - fuse_vnode_destroy(*vpp); - *vpp = NULL; + if (err) return (err); + if (vp2 != NULL) { + *vpp = vp2; + return (0); } - /* - * XXXIP: Prevent silent vnode reuse. It may happen because several fuse - * filesystems ignore inode numbers - */ - KASSERT(vp2 == NULL, - ("vfs hash collision for node #%ju\n", (uintmax_t)nodeid)); + ASSERT_VOP_ELOCKED(*vpp, "fuse_vnode_alloc"); return (0); From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:33:15 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3ABD710657E3; Sun, 22 Jul 2012 14:33:15 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 25A178FC18; Sun, 22 Jul 2012 14:33:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MEXEph094501; Sun, 22 Jul 2012 14:33:14 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MEXEFg094499; Sun, 22 Jul 2012 14:33:14 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221433.q6MEXEFg094499@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:33:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238691 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:33:15 -0000 Author: attilio Date: Sun Jul 22 14:33:14 2012 New Revision: 238691 URL: http://svn.freebsd.org/changeset/base/238691 Log: Fix ISDOTDOT lookup that is completely broken by inlining vn_vget_ino() (for using internal nodes handover function). Reported by: pho Tested by: pho Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_vnops.c Sun Jul 22 14:33:04 2012 (r238690) +++ projects/fuse/sys/fs/fuse/fuse_vnops.c Sun Jul 22 14:33:14 2012 (r238691) @@ -933,9 +933,30 @@ calldaemon: goto out; } if (flags & ISDOTDOT) { + struct mount *mp; int ltype; + /* + * Expanded copy of vn_vget_ino() so that + * fuse_vnode_get() can be used. + */ + mp = dvp->v_mount; ltype = VOP_ISLOCKED(dvp); + err = vfs_busy(mp, MBF_NOWAIT); + if (err != 0) { + vfs_ref(mp); + VOP_UNLOCK(dvp, 0); + err = vfs_busy(mp, 0); + vn_lock(dvp, ltype | LK_RETRY); + vfs_rel(mp); + if (err) + goto out; + if ((dvp->v_iflag & VI_DOOMED) != 0) { + err = ENOENT; + vfs_unbusy(mp); + goto out; + } + } VOP_UNLOCK(dvp, 0); err = fuse_vnode_get(vnode_mount(dvp), nid, @@ -943,8 +964,15 @@ calldaemon: &vp, cnp, IFTOVT(fattr->mode)); + vfs_unbusy(mp); vn_lock(dvp, ltype | LK_RETRY); - vref(vp); + if ((dvp->v_iflag & VI_DOOMED) != 0) { + if (err == 0) + vput(vp); + err = ENOENT; + } + if (err) + goto out; *vpp = vp; } else if (nid == VTOI(dvp)) { vref(dvp); From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:37:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B8FD9106566B; Sun, 22 Jul 2012 14:37:29 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A3C3F8FC12; Sun, 22 Jul 2012 14:37:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MEbT7c094872; Sun, 22 Jul 2012 14:37:29 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MEbTjO094869; Sun, 22 Jul 2012 14:37:29 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221437.q6MEbTjO094869@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:37:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238692 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:37:29 -0000 Author: attilio Date: Sun Jul 22 14:37:28 2012 New Revision: 238692 URL: http://svn.freebsd.org/changeset/base/238692 Log: - Add a lock assert - Remove a wrong assert because the aw could be rescheduled again while the lock was dropped. Reported by: pho Tested by: pho Modified: projects/fuse/sys/fs/fuse/fuse_device.c projects/fuse/sys/fs/fuse/fuse_ipc.h Modified: projects/fuse/sys/fs/fuse/fuse_device.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_device.c Sun Jul 22 14:33:14 2012 (r238691) +++ projects/fuse/sys/fs/fuse/fuse_device.c Sun Jul 22 14:37:28 2012 (r238692) @@ -428,7 +428,12 @@ fuse_device_write(struct cdev *dev, stru /* pretender doesn't wanna do anything with answer */ DEBUG("stuff devalidated, so we drop it\n"); } - FUSE_ASSERT_AW_DONE(tick); + + /* + * As aw_mtx was not held during the callback execution the + * ticket may have been inserted again. However, this is safe + * because fuse_ticket_drop() will deal with refcount anyway. + */ fuse_ticket_drop(tick); } else { /* no callback at all! */ Modified: projects/fuse/sys/fs/fuse/fuse_ipc.h ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_ipc.h Sun Jul 22 14:33:14 2012 (r238691) +++ projects/fuse/sys/fs/fuse/fuse_ipc.h Sun Jul 22 14:37:28 2012 (r238692) @@ -320,6 +320,7 @@ fuse_aw_remove(struct fuse_ticket *ftick { DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n", ftick, ftick->tk_refcount); + mtx_assert(&ftick->tk_data->aw_mtx, MA_OWNED); TAILQ_REMOVE(&ftick->tk_data->aw_head, ftick, tk_aw_link); #ifdef INVARIANTS ftick->tk_aw_link.tqe_next = NULL; From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:41:36 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B43E2106566C; Sun, 22 Jul 2012 14:41:36 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9D9198FC08; Sun, 22 Jul 2012 14:41:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MEfaCH095212; Sun, 22 Jul 2012 14:41:36 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MEfaep095205; Sun, 22 Jul 2012 14:41:36 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221441.q6MEfaep095205@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:41:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238693 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:41:36 -0000 Author: attilio Date: Sun Jul 22 14:41:35 2012 New Revision: 238693 URL: http://svn.freebsd.org/changeset/base/238693 Log: Rewrite the fuse interface to the device: - Remove entirely the usage of interface cloning - Reimplement the passing of fdata using the devfs_*_cdevpriv interface - Implement a real refcounting for the fdata objects representing the former check on mnt and drv1 members This requires that mount_fusefs now passes the filedescriptor number when trying to mount a specific filesystem instance. Also, now all the devices will open /dev/fuse specifically and nothing else. This avoids some nasty races in the device cloning entries reusing from the cloning list or alternatively a big wastage of memory in situations where filesystems are frequently unmounted and mounted on long-running systems. Reported by: pho Tested by: pho Modified: projects/fuse/sys/fs/fuse/fuse.h projects/fuse/sys/fs/fuse/fuse_device.c projects/fuse/sys/fs/fuse/fuse_ipc.c projects/fuse/sys/fs/fuse/fuse_ipc.h projects/fuse/sys/fs/fuse/fuse_main.c projects/fuse/sys/fs/fuse/fuse_vfsops.c Modified: projects/fuse/sys/fs/fuse/fuse.h ============================================================================== --- projects/fuse/sys/fs/fuse/fuse.h Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse.h Sun Jul 22 14:41:35 2012 (r238693) @@ -214,3 +214,6 @@ do { \ void fuse_ipc_init(void); void fuse_ipc_destroy(void); + +int fuse_device_init(void); +void fuse_device_destroy(void); Modified: projects/fuse/sys/fs/fuse/fuse_device.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_device.c Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse_device.c Sun Jul 22 14:41:35 2012 (r238693) @@ -83,9 +83,7 @@ __FBSDID("$FreeBSD$"); #define FUSE_DEBUG_MODULE DEVICE #include "fuse_debug.h" -static __inline int -fuse_ohead_audit(struct fuse_out_header *ohead, - struct uio *uio); +static struct cdev *fuse_dev; static d_open_t fuse_device_open; static d_close_t fuse_device_close; @@ -93,10 +91,6 @@ static d_poll_t fuse_device_poll; static d_read_t fuse_device_read; static d_write_t fuse_device_write; -void -fuse_device_clone(void *arg, struct ucred *cred, char *name, - int namelen, struct cdev **dev); - static struct cdevsw fuse_device_cdevsw = { .d_open = fuse_device_open, .d_close = fuse_device_close, @@ -108,22 +102,21 @@ static struct cdevsw fuse_device_cdevsw .d_flags = D_NEEDMINOR, }; -/* - * This struct is not public, but we are eager to use it, - * so we have to put its def here. - */ -struct clonedevs { - LIST_HEAD(, cdev) head; -}; - -struct clonedevs *fuseclones; - /**************************** * * >>> Fuse device op defs * ****************************/ +static void +fdata_dtor(void *arg) +{ + struct fuse_data *fdata; + + fdata = arg; + fdata_trydestroy(fdata); +} + /* * Resources are set up on a per-open basis */ @@ -131,31 +124,18 @@ static int fuse_device_open(struct cdev *dev, int oflags, int devtype, struct thread *td) { struct fuse_data *fdata; - - if (dev->si_usecount > 1) - goto busy; + int error; DEBUG("device %p\n", dev); fdata = fdata_alloc(dev, td->td_ucred); - - FUSE_LOCK(); - if (fuse_get_devdata(dev)) { + error = devfs_set_cdevpriv(fdata, fdata_dtor); + if (error != 0) fdata_trydestroy(fdata); - FUSE_UNLOCK(); - goto busy; - } else { - fdata->dataflags |= FSESS_OPENED; - dev->si_drv1 = fdata; - } - FUSE_UNLOCK(); - - DEBUG("%s: device opened by thread %d.\n", dev->si_name, td->td_tid); - - return (0); - -busy: - return (EBUSY); + else + DEBUG("%s: device opened by thread %d.\n", dev->si_name, + td->td_tid); + return (error); } static int @@ -163,17 +143,16 @@ fuse_device_close(struct cdev *dev, int { struct fuse_data *data; struct fuse_ticket *tick; + int error; - data = fuse_get_devdata(dev); + error = devfs_get_cdevpriv((void **)&data); + if (error != 0) + return (error); if (!data) panic("no fuse data upon fuse device close"); - KASSERT(data->dataflags | FSESS_OPENED, - ("fuse device is already closed upon close")); fdata_set_dead(data); FUSE_LOCK(); - data->dataflags &= ~FSESS_OPENED; - fuse_lck_mtx_lock(data->aw_mtx); /* wakup poll()ers */ selwakeuppri(&data->ks_rsel, PZERO + 1); @@ -188,9 +167,6 @@ fuse_device_close(struct cdev *dev, int fuse_ticket_drop(tick); } fuse_lck_mtx_unlock(data->aw_mtx); - - dev->si_drv1 = NULL; - fdata_trydestroy(data); FUSE_UNLOCK(); DEBUG("%s: device closed by thread %d.\n", dev->si_name, td->td_tid); @@ -201,9 +177,12 @@ int fuse_device_poll(struct cdev *dev, int events, struct thread *td) { struct fuse_data *data; - int revents = 0; + int error, revents = 0; - data = fuse_get_devdata(dev); + error = devfs_get_cdevpriv((void **)&data); + if (error != 0) + return (events & + (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM)); if (events & (POLLIN | POLLRDNORM)) { fuse_lck_mtx_lock(data->ms_mtx); @@ -227,17 +206,19 @@ fuse_device_poll(struct cdev *dev, int e int fuse_device_read(struct cdev *dev, struct uio *uio, int ioflag) { - int err = 0; + int err; struct fuse_data *data; struct fuse_ticket *tick; void *buf[] = {NULL, NULL, NULL}; int buflen[3]; int i; - data = fuse_get_devdata(dev); - DEBUG("fuse device being read on thread %d\n", uio->uio_td->td_tid); + err = devfs_get_cdevpriv((void **)&data); + if (err != 0) + return (err); + fuse_lck_mtx_lock(data->ms_mtx); again: if (fdata_get_dead(data)) { @@ -374,7 +355,9 @@ fuse_device_write(struct cdev *dev, stru DEBUG("resid: %zd, iovcnt: %d, thread: %d\n", uio->uio_resid, uio->uio_iovcnt, uio->uio_td->td_tid); - data = fuse_get_devdata(dev); + err = devfs_get_cdevpriv((void **)&data); + if (err != 0) + return (err); if (uio->uio_resid < sizeof(struct fuse_out_header)) { DEBUG("got less than a header!\n"); @@ -444,81 +427,21 @@ fuse_device_write(struct cdev *dev, stru return (err); } -/* - * Modeled after tunclone() of net/if_tun.c ... - * boosted with a hack so that devices can be reused. - */ -void -fuse_device_clone(void *arg, struct ucred *cred, char *name, int namelen, - struct cdev **dev) +int +fuse_device_init(void) { - /* - * Why cloning? We do need per-open info, but we could as well put our - * hands on the file struct assigned to an open by implementing - * d_fdopen instead of d_open. - * - * From that on, the usual way to per-open (that is, file aware) - * I/O would be pushing our preferred set of ops into the f_op - * field of that file at open time. But that wouldn't work in - * FreeBSD, as the devfs open routine (which is the one who calls - * the device's d_(fd)open) overwrites that f_op with its own - * file ops mercilessly. - * - * Yet... even if we could get devfs to keep our file ops intact, - * I'd still say cloning is better. It makes fuse daemons' identity - * explicit and globally visible to userspace, and we are not forced - * to get the mount done by the daemon itself like in linux (where - * I/O is file aware by default). (The possibilities of getting the - * daemon do the mount or getting the mount util spawn the daemon - * are still open, of course; I guess I will go for the latter - * appcocroach.) - */ - int i, unit; - - if (*dev != NULL) - return; - - if (strcmp(name, "fuse") == 0) { - struct cdev *xdev; - - unit = -1; + fuse_dev = make_dev(&fuse_device_cdevsw, 0, UID_ROOT, GID_OPERATOR, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, "fuse"); + if (fuse_dev == NULL) + return (ENOMEM); + return (0); +} - /* - * Before falling back to the standard routine, we try - * to find an existing free device by ourselves, so that - * it will be reused instead of having the clone machinery - * dummily spawn a new one. - */ - dev_lock(); - LIST_FOREACH(xdev, &fuseclones->head, si_clone) { - KASSERT(xdev->si_flags & SI_CLONELIST, - ("Dev %p(%s) should be on clonelist", xdev, xdev->si_name)); - - if (!xdev->si_drv1) { - unit = dev2unit(xdev); - break; - } - } - dev_unlock(); - } else if (dev_stdclone(name, NULL, "fuse", &unit) != 1) { - return; - } - /* find any existing device, or allocate new unit number */ - i = clone_create(&fuseclones, &fuse_device_cdevsw, &unit, dev, 0); - if (i) { - *dev = make_dev(&fuse_device_cdevsw, - unit, - UID_ROOT, GID_OPERATOR, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, - "fuse%d", unit); - if (*dev == NULL) - return; - } - KASSERT(*dev, ("no device after apparently successful cloning")); - dev_ref(*dev); - (*dev)->si_drv1 = NULL; - (*dev)->si_flags |= SI_CHEAPCLONE; +void +fuse_device_destroy(void) +{ - DEBUG("clone done: %d\n", unit); + MPASS(fuse_dev != NULL); + destroy_dev(fuse_dev); } Modified: projects/fuse/sys/fs/fuse/fuse_ipc.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_ipc.c Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse_ipc.c Sun Jul 22 14:41:35 2012 (r238693) @@ -399,6 +399,7 @@ fdata_alloc(struct cdev *fdev, struct uc data->daemoncred = crhold(cred); data->daemon_timeout = FUSE_DEFAULT_DAEMON_TIMEOUT; sx_init(&data->rename_lock, "fuse rename lock"); + data->ref = 1; return data; } @@ -409,16 +410,11 @@ fdata_trydestroy(struct fuse_data *data) DEBUG("data=%p data.mp=%p data.fdev=%p data.flags=%04x\n", data, data->mp, data->fdev, data->dataflags); - if (data->mp != NULL) { - MPASS(data->mp->mnt_data == data); - return; - } - if (data->fdev->si_drv1 != NULL) { - MPASS(data->fdev->si_drv1 == data); - return; - } DEBUG("destroy: data=%p\n", data); - MPASS((data->dataflags & FSESS_OPENED) == 0); + data->ref--; + MPASS(data->ref >= 0); + if (data->ref != 0) + return; /* Driving off stage all that stuff thrown at device... */ mtx_destroy(&data->ms_mtx); Modified: projects/fuse/sys/fs/fuse/fuse_ipc.h ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_ipc.h Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse_ipc.h Sun Jul 22 14:41:35 2012 (r238693) @@ -170,6 +170,7 @@ struct fuse_data { struct vnode *vroot; struct ucred *daemoncred; int dataflags; + int ref; struct mtx ms_mtx; STAILQ_HEAD(, fuse_ticket) ms_head; @@ -196,7 +197,7 @@ struct fuse_data { }; #define FSESS_DEAD 0x0001 /* session is to be closed */ -#define FSESS_OPENED 0x0002 /* session device has been opened */ +#define FSESS_UNUSED0 0x0002 /* unused */ #define FSESS_INITED 0x0004 /* session has been inited */ #define FSESS_DAEMON_CAN_SPY 0x0010 /* let non-owners access this fs */ /* (and being observed by the daemon) */ @@ -217,13 +218,6 @@ extern int fuse_fix_broken_io; static __inline__ struct fuse_data * -fuse_get_devdata(struct cdev *fdev) -{ - return fdev->si_drv1; -} - -static __inline__ -struct fuse_data * fuse_get_mpdata(struct mount *mp) { return mp->mnt_data; Modified: projects/fuse/sys/fs/fuse/fuse_main.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_main.c Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse_main.c Sun Jul 22 14:41:35 2012 (r238693) @@ -79,15 +79,9 @@ static int fuse_loader(struct module *m, struct mtx fuse_mtx; - -extern void -fuse_device_clone(void *arg, struct ucred *cred, char *name, - int namelen, struct cdev **dev); - extern struct vfsops fuse_vfsops; extern struct cdevsw fuse_cdevsw; extern struct vop_vector fuse_vnops; -extern struct clonedevs *fuseclones; extern int fuse_pbuf_freecnt; static struct vfsconf fuse_vfsconf = { @@ -113,10 +107,8 @@ static void fuse_bringdown(eventhandler_tag eh_tag) { - EVENTHANDLER_DEREGISTER(dev_clone, eh_tag); - fuse_ipc_destroy(); - clone_cleanup(&fuseclones); + fuse_device_destroy(); mtx_destroy(&fuse_mtx); } @@ -129,14 +121,11 @@ fuse_loader(struct module *m, int what, switch (what) { case MOD_LOAD: /* kldload */ fuse_pbuf_freecnt = nswbuf / 2 + 1; - clone_setup(&fuseclones); mtx_init(&fuse_mtx, "fuse_mtx", NULL, MTX_DEF); - eh_tag = EVENTHANDLER_REGISTER(dev_clone, fuse_device_clone, 0, - 1000); - if (eh_tag == NULL) { - clone_cleanup(&fuseclones); + err = fuse_device_init(); + if (err) { mtx_destroy(&fuse_mtx); - return (ENOMEM); + return (err); } fuse_ipc_init(); Modified: projects/fuse/sys/fs/fuse/fuse_vfsops.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_vfsops.c Sun Jul 22 14:37:28 2012 (r238692) +++ projects/fuse/sys/fs/fuse/fuse_vfsops.c Sun Jul 22 14:41:35 2012 (r238693) @@ -62,7 +62,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include @@ -202,27 +204,31 @@ fuse_getdevice(const char *fspec, struct static int fuse_vfsop_mount(struct mount *mp) { - int err = 0; - -#if __FreeBSD_version >= 900040 - uint64_t mntopts = 0, __mntopts = 0; - -#else - int mntopts = 0, __mntopts = 0; + int err; -#endif - int max_read_set = 0; - uint32_t max_read = ~0; + uint64_t mntopts, __mntopts; + int max_read_set; + uint32_t max_read; int daemon_timeout; + int fd; size_t len; struct cdev *fdev; struct fuse_data *data; - struct thread *td = curthread; - char *fspec, *subtype = NULL; + struct thread *td; + struct file *fp, *fptmp; + char *fspec, *subtype; struct vfsoptlist *opts; + subtype = NULL; + max_read_set = 0; + max_read = ~0; + err = 0; + mntopts = 0; + __mntopts = 0; + td = curthread; + fuse_trace_printf_vfsop(); if (mp->mnt_flag & MNT_UPDATE) @@ -245,6 +251,12 @@ fuse_vfsop_mount(struct mount *mp) if (!fspec) return err; + /* `fd' contains the filedescriptor for this session; REQUIRED */ + if (!vfs_scanopt(opts, "fd", "%d", &fd)) { + printf("coglione\n"); + return err; + } + err = fuse_getdevice(fspec, td, &fdev); if (err != 0) return err; @@ -274,22 +286,26 @@ fuse_vfsop_mount(struct mount *mp) daemon_timeout = FUSE_DEFAULT_DAEMON_TIMEOUT; } subtype = vfs_getopts(opts, "subtype=", &err); - err = 0; DEBUG2G("mntopts 0x%jx\n", (uintmax_t)mntopts); + err = fget(td, fd, CAP_READ, &fp); + if (err != 0) { + DEBUG("invalid or not opened device: data=%p\n", data); + goto out; + } + fptmp = td->td_fpop; + td->td_fpop = fp; + err = devfs_get_cdevpriv((void **)&data); + td->td_fpop = fptmp; + fdrop(fp, td); FUSE_LOCK(); - data = fuse_get_devdata(fdev); - if (data == NULL || data->mp != NULL || - (data->dataflags & FSESS_OPENED) == 0) { + if (err != 0 || data == NULL || data->mp != NULL) { DEBUG("invalid or not opened device: data=%p data.mp=%p\n", data, data != NULL ? data->mp : NULL); err = ENXIO; FUSE_UNLOCK(); goto out; - } else { - DEBUG("set mp: data=%p mp=%p\n", data, mp); - data->mp = mp; } if (fdata_get_dead(data)) { DEBUG("device is dead during mount: data=%p\n", data); @@ -312,6 +328,7 @@ fuse_vfsop_mount(struct mount *mp) /* We need this here as this slot is used by getnewvnode() */ mp->mnt_stat.f_iosize = PAGE_SIZE; mp->mnt_data = data; + data->ref++; data->mp = mp; data->dataflags |= mntopts; data->max_read = max_read; From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:47:17 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 442CB106566C; Sun, 22 Jul 2012 14:47:17 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2B8198FC14; Sun, 22 Jul 2012 14:47:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MElHEh095875; Sun, 22 Jul 2012 14:47:17 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MElGoV095846; Sun, 22 Jul 2012 14:47:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221447.q6MElGoV095846@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238694 - in projects/fuse: . bin/cat bin/ps bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma cddl/contrib... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:47:17 -0000 Author: attilio Date: Sun Jul 22 14:47:15 2012 New Revision: 238694 URL: http://svn.freebsd.org/changeset/base/238694 Log: MFC Added: projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/fuse/share/dtrace/hotopen - copied unchanged from r238693, head/share/dtrace/hotopen projects/fuse/share/dtrace/nfsattrstats - copied unchanged from r238693, head/share/dtrace/nfsattrstats projects/fuse/share/examples/libusb20/ - copied from r238693, head/share/examples/libusb20/ projects/fuse/tools/tools/ath/athratestats/ - copied from r238693, head/tools/tools/ath/athratestats/ Deleted: projects/fuse/sys/vm/vm_contig.c Modified: projects/fuse/ObsoleteFiles.inc projects/fuse/bin/cat/cat.c projects/fuse/bin/ps/print.c projects/fuse/bin/stty/extern.h projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/fuse/etc/mtree/BSD.usr.dist projects/fuse/etc/rc.d/bgfsck projects/fuse/etc/rc.d/ip6addrctl projects/fuse/etc/rc.d/jail projects/fuse/gnu/usr.bin/groff/tmac/Makefile projects/fuse/lib/libc/net/getaddrinfo.c projects/fuse/lib/libc/sys/fcntl.2 projects/fuse/lib/libc/sys/fcntl.c projects/fuse/lib/libedit/makelist projects/fuse/lib/libedit/tokenizer.c projects/fuse/lib/libthr/thread/thr_getschedparam.c projects/fuse/lib/libthr/thread/thr_info.c projects/fuse/lib/libthr/thread/thr_setprio.c projects/fuse/lib/libthr/thread/thr_setschedparam.c projects/fuse/sbin/hastd/hast.conf.5 projects/fuse/sbin/ipfw/ipfw.8 projects/fuse/share/dtrace/Makefile projects/fuse/share/examples/Makefile projects/fuse/share/man/man4/gpib.4 projects/fuse/share/man/man5/moduli.5 projects/fuse/share/man/man9/ieee80211_node.9 projects/fuse/share/man/man9/kernel_mount.9 projects/fuse/share/man/man9/malloc.9 projects/fuse/sys/amd64/amd64/fpu.c projects/fuse/sys/amd64/amd64/machdep.c projects/fuse/sys/amd64/amd64/pmap.c projects/fuse/sys/amd64/amd64/ptrace_machdep.c projects/fuse/sys/amd64/amd64/trap.c projects/fuse/sys/amd64/amd64/vm_machdep.c projects/fuse/sys/amd64/include/fpu.h projects/fuse/sys/amd64/include/pcpu.h projects/fuse/sys/arm/arm/nexus.c projects/fuse/sys/arm/at91/at91.c projects/fuse/sys/arm/econa/econa.c projects/fuse/sys/arm/s3c2xx0/s3c24x0.c projects/fuse/sys/arm/xscale/i8134x/i81342.c projects/fuse/sys/arm/xscale/pxa/pxa_obio.c projects/fuse/sys/cam/scsi/scsi_all.c projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/fuse/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/fuse/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/fuse/sys/compat/ia32/ia32_sysvec.c projects/fuse/sys/compat/ia32/ia32_util.h projects/fuse/sys/conf/files projects/fuse/sys/contrib/pf/net/pf_if.c projects/fuse/sys/dev/aac/aac_disk.c projects/fuse/sys/dev/ata/ata-all.c projects/fuse/sys/dev/ata/ata-lowlevel.c projects/fuse/sys/dev/ath/ath_hal/ah.h projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/fuse/sys/dev/ath/ath_rate/amrr/amrr.c projects/fuse/sys/dev/ath/ath_rate/onoe/onoe.c projects/fuse/sys/dev/ath/ath_rate/sample/sample.c projects/fuse/sys/dev/ath/ath_rate/sample/sample.h projects/fuse/sys/dev/ath/if_ath.c projects/fuse/sys/dev/ath/if_ath_beacon.c projects/fuse/sys/dev/ath/if_ath_rx.c projects/fuse/sys/dev/ath/if_ath_rx_edma.c projects/fuse/sys/dev/ath/if_ath_sysctl.c projects/fuse/sys/dev/ath/if_ath_tx.c projects/fuse/sys/dev/ath/if_athioctl.h projects/fuse/sys/dev/ath/if_athrate.h projects/fuse/sys/dev/ath/if_athvar.h projects/fuse/sys/dev/mps/mps_sas_lsi.c projects/fuse/sys/dev/sdhci/sdhci.c projects/fuse/sys/dev/sym/sym_hipd.c projects/fuse/sys/dev/usb/controller/xhci_pci.c projects/fuse/sys/dev/usb/controller/xhcireg.h projects/fuse/sys/dev/usb/serial/u3g.c projects/fuse/sys/dev/usb/usbdevs projects/fuse/sys/fs/smbfs/smbfs_node.c projects/fuse/sys/geom/geom.h projects/fuse/sys/geom/geom_subr.c projects/fuse/sys/geom/part/g_part.c projects/fuse/sys/i386/i386/ptrace_machdep.c projects/fuse/sys/i386/i386/trap.c projects/fuse/sys/i386/include/npx.h projects/fuse/sys/i386/isa/npx.c projects/fuse/sys/kern/imgact_aout.c projects/fuse/sys/kern/imgact_elf.c projects/fuse/sys/kern/kern_descrip.c projects/fuse/sys/kern/kern_malloc.c projects/fuse/sys/kern/kern_proc.c projects/fuse/sys/kern/kern_tc.c projects/fuse/sys/mips/mips/pmap.c projects/fuse/sys/net/if_stf.c projects/fuse/sys/netinet/in_var.h projects/fuse/sys/netinet/ip_output.c projects/fuse/sys/netinet/sctp_asconf.c projects/fuse/sys/netinet/sctp_output.c projects/fuse/sys/netinet/sctp_pcb.c projects/fuse/sys/netinet/sctp_uio.h projects/fuse/sys/netinet/sctp_usrreq.c projects/fuse/sys/netinet/sctputil.c projects/fuse/sys/netinet/tcp_output.c projects/fuse/sys/netinet6/sctp6_usrreq.c projects/fuse/sys/sys/fcntl.h projects/fuse/sys/sys/user.h projects/fuse/sys/vm/memguard.c projects/fuse/sys/vm/memguard.h projects/fuse/sys/vm/vm_kern.c projects/fuse/sys/vm/vm_map.h projects/fuse/sys/vm/vm_page.c projects/fuse/sys/vm/vm_pageout.c projects/fuse/sys/vm/vm_pageout.h projects/fuse/sys/vm/vm_reserv.c projects/fuse/tools/tools/ath/Makefile projects/fuse/tools/tools/ath/common/diag.h projects/fuse/usr.bin/Makefile projects/fuse/usr.bin/du/du.1 projects/fuse/usr.bin/du/du.c projects/fuse/usr.bin/netstat/Makefile projects/fuse/usr.bin/netstat/sctp.c projects/fuse/usr.bin/procstat/procstat.1 projects/fuse/usr.bin/procstat/procstat_vm.c projects/fuse/usr.sbin/ipfwpcap/ipfwpcap.8 projects/fuse/usr.sbin/lpr/common_source/common.c projects/fuse/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/fuse/ (props changed) projects/fuse/cddl/contrib/opensolaris/ (props changed) projects/fuse/lib/libc/ (props changed) projects/fuse/sbin/ (props changed) projects/fuse/sbin/ipfw/ (props changed) projects/fuse/share/man/man4/ (props changed) projects/fuse/sys/ (props changed) projects/fuse/sys/cddl/contrib/opensolaris/ (props changed) projects/fuse/sys/conf/ (props changed) projects/fuse/sys/contrib/pf/ (props changed) projects/fuse/usr.bin/procstat/ (props changed) Modified: projects/fuse/ObsoleteFiles.inc ============================================================================== --- projects/fuse/ObsoleteFiles.inc Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/ObsoleteFiles.inc Sun Jul 22 14:47:15 2012 (r238694) @@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/fuse/bin/cat/cat.c ============================================================================== --- projects/fuse/bin/cat/cat.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/cat/cat.c Sun Jul 22 14:47:15 2012 (r238694) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/fuse/bin/ps/print.c ============================================================================== --- projects/fuse/bin/ps/print.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/ps/print.c Sun Jul 22 14:47:15 2012 (r238694) @@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused) size_t buflen = 100; char *buf; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); if (use_ampm < 0) use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); then = k->ki_p->ki_start.tv_sec; @@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused) char *buf; size_t buflen = 100; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); then = k->ki_p->ki_start.tv_sec; (void)strftime(buf, buflen, "%c", localtime(&then)); return (buf); Modified: projects/fuse/bin/stty/extern.h ============================================================================== --- projects/fuse/bin/stty/extern.h Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/stty/extern.h Sun Jul 22 14:47:15 2012 (r238694) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Copied: projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Sun Jul 22 14:47:15 2012 (r238694, copy of r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + end = strrchr(dld->dtld_library, '/'); + /* dt_lib_depend_add ensures this */ + assert(end != NULL); + if (strcmp(end + 1, dp->d_name) == 0) + break; + } + + if (dld != NULL) { + dt_dprintf("skipping library %s, already processed " + "library with the same name: %s", dp->d_name, + dld->dtld_library); + continue; + } + dtp->dt_filetag = fname; if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) - goto err; + return (-1); /* preserve dt_errno */ rv = dt_compile(dtp, DT_CTX_DPROG, DTRACE_PROBESPEC_NAME, NULL, @@ -2203,7 +2221,7 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons if (rv != NULL && dtp->dt_errno && (dtp->dt_errno != EDT_COMPILER || dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) - goto err; + return (-1); /* preserve dt_errno */ if (dtp->dt_errno) dt_dprintf("error parsing library %s: %s\n", @@ -2214,6 +2232,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons } (void) closedir(dirp); + + return (0); +} + +/* + * Perform a topological sorting of all the libraries found across the entire + * dt_lib_path. Once sorted, compile each one in topological order to cache its + * inlines and translators, etc. We silently ignore any missing directories and + * other files found therein. We only fail (and thereby fail dt_load_libs()) if + * we fail to compile a library and the error is something other than #pragma D + * depends_on. Dependency errors are silently ignored to permit a library + * directory to contain libraries which may not be accessible depending on our + * privileges. + */ +static int +dt_load_libs_sort(dtrace_hdl_t *dtp) +{ + dtrace_prog_t *pgp; + FILE *fp; + dt_lib_depend_t *dld; + /* * Finish building the graph containing the library dependencies * and perform a topological sort to generate an ordered list @@ -2274,7 +2313,14 @@ dt_load_libs(dtrace_hdl_t *dtp) dtp->dt_cflags |= DTRACE_C_NOLIBS; - for (dirp = dt_list_next(&dtp->dt_lib_path); + /* + * /usr/lib/dtrace is always at the head of the list. The rest of the + * list is specified in the precedence order the user requested. Process + * everything other than the head first. DTRACE_C_NOLIBS has already + * been spcified so dt_vopen will ensure that there is always one entry + * in dt_lib_path. + */ + for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path)); dirp != NULL; dirp = dt_list_next(dirp)) { if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { dtp->dt_cflags &= ~DTRACE_C_NOLIBS; @@ -2282,6 +2328,16 @@ dt_load_libs(dtrace_hdl_t *dtp) } } + /* Handle /usr/lib/dtrace */ + dirp = dt_list_next(&dtp->dt_lib_path); + if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { + dtp->dt_cflags &= ~DTRACE_C_NOLIBS; + return (-1); /* errno is set for us */ + } + + if (dt_load_libs_sort(dtp) < 0) + return (-1); /* errno is set for us */ + return (0); } Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sun Jul 22 14:47:15 2012 (r238694) @@ -21,7 +21,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -31,9 +31,13 @@ #if defined(sun) #include #endif +#include #include #include +#include +#include + #include #include #include @@ -201,6 +205,29 @@ dt_pragma_binding(const char *prname, dt dtp->dt_globals->dh_defer = &dt_pragma_apply; } +static void +dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib, + size_t len) +{ + dt_dirpath_t *dirp; + struct stat sbuf; + int found = 0; + + for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL; + dirp = dt_list_next(dirp)) { + (void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname); + + if (stat(lib, &sbuf) == 0) { + found = 1; + break; + } + } + + if (!found) + xyerror(D_PRAGMA_DEPEND, + "failed to find dependency in libpath: %s", lname); +} + /* * The #pragma depends_on directive can be used to express a dependency on a * module, provider or library which if not present will cause processing to @@ -230,16 +257,13 @@ dt_pragma_depends(const char *prname, dt if (yypcb->pcb_cflags & DTRACE_C_CTL) { assert(dtp->dt_filetag != NULL); - /* - * We have the file we are working on in dtp->dt_filetag - * so find that node and add the dependency in. - */ + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); + dld = dt_lib_depend_lookup(&dtp->dt_lib_dep, dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies, lib)) != 0) { xyerror(D_PRAGMA_DEPEND, @@ -261,8 +285,8 @@ dt_pragma_depends(const char *prname, dt dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); dld = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted, lib); assert(dld != NULL); Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sun Jul 22 14:47:15 2012 (r238694) @@ -29,23 +29,6 @@ #include #include -#include - -/* - * Create a copy of string s, but only duplicate the first n bytes. - */ -char * -strndup(const char *s, size_t n) -{ - char *s2 = malloc(n + 1); - - if (s2 == NULL) - longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); - - (void) strncpy(s2, s, n); - s2[n] = '\0'; - return (s2); -} /* * Transform string s inline, converting each embedded C escape sequence string Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sun Jul 22 14:47:15 2012 (r238694) @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,14 +19,12 @@ * CDDL HEADER END */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. */ #ifndef _DT_STRING_H #define _DT_STRING_H -#pragma ident "%Z%%M% %I% %E% SMI" #include #include @@ -36,7 +33,6 @@ extern "C" { #endif -extern char *strndup(const char *, size_t); extern size_t stresc2chr(char *); extern char *strchr2esc(const char *, size_t); extern const char *strbasename(const char *); Modified: projects/fuse/etc/mtree/BSD.usr.dist ============================================================================== --- projects/fuse/etc/mtree/BSD.usr.dist Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/mtree/BSD.usr.dist Sun Jul 22 14:47:15 2012 (r238694) @@ -271,6 +271,8 @@ .. .. .. + libusb20 + .. libvgl .. mdoc Modified: projects/fuse/etc/rc.d/bgfsck ============================================================================== --- projects/fuse/etc/rc.d/bgfsck Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/bgfsck Sun Jul 22 14:47:15 2012 (r238694) @@ -17,7 +17,7 @@ stop_cmd=":" bgfsck_start() { if [ -z "${rc_force}" ]; then - background_fsck_delay=${background_fsck_delay:=0} + background_fsck_delay=${background_fsck_delay:-0} else background_fsck_delay=0 fi Modified: projects/fuse/etc/rc.d/ip6addrctl ============================================================================== --- projects/fuse/etc/rc.d/ip6addrctl Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/ip6addrctl Sun Jul 22 14:47:15 2012 (r238694) @@ -83,6 +83,9 @@ ip6addrctl_start() # Backward compatibility when ipv6_prefer=NO ip6addrctl_prefer_ipv4 ;; + [Nn][Oo][Nn][Ee]) + ip6addrctl flush >/dev/null 2>&1 + ;; *) warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \ " \"ipv4_prefer\" is used instead." Modified: projects/fuse/etc/rc.d/jail ============================================================================== --- projects/fuse/etc/rc.d/jail Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/jail Sun Jul 22 14:47:15 2012 (r238694) @@ -641,7 +641,7 @@ jail_start() i=$((i + 1)) done - eval ${_setfib} jail ${_flags} -n ${_jail} -i ${_rootdir} ${_hostname} \ + eval ${_setfib} jail -n ${_jail} ${_flags} -i ${_rootdir} ${_hostname} \ \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \ e_wild & 0x01) #define WILD_SOCKTYPE(ex) ((ex)->e_wild & 0x02) @@ -164,21 +163,21 @@ struct explore { static const struct explore explore[] = { #if 0 - { PF_LOCAL, ANY, ANY, NULL, 0x01 }, + { PF_LOCAL, ANY, ANY, 0x01 }, #endif #ifdef INET6 - { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, - { PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, - { PF_INET6, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 }, - { PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 }, - { PF_INET6, SOCK_RAW, ANY, NULL, 0x05 }, -#endif - { PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, - { PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, - { PF_INET, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 }, - { PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 }, - { PF_INET, SOCK_RAW, ANY, NULL, 0x05 }, - { -1, 0, 0, NULL, 0 }, + { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, 0x07 }, + { PF_INET6, SOCK_STREAM, IPPROTO_TCP, 0x07 }, + { PF_INET6, SOCK_STREAM, IPPROTO_SCTP, 0x03 }, + { PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 }, + { PF_INET6, SOCK_RAW, ANY, 0x05 }, +#endif + { PF_INET, SOCK_DGRAM, IPPROTO_UDP, 0x07 }, + { PF_INET, SOCK_STREAM, IPPROTO_TCP, 0x07 }, + { PF_INET, SOCK_STREAM, IPPROTO_SCTP, 0x03 }, + { PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 }, + { PF_INET, SOCK_RAW, ANY, 0x05 }, + { -1, 0, 0, 0 }, }; #ifdef INET6 @@ -693,6 +692,8 @@ get_addrselectpolicy(struct policyhead * if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0) return (0); + if (l == 0) + return (0); if ((buf = malloc(l)) == NULL) return (0); if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &l, NULL, 0) < 0) { Modified: projects/fuse/lib/libc/sys/fcntl.2 ============================================================================== --- projects/fuse/lib/libc/sys/fcntl.2 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libc/sys/fcntl.2 Sun Jul 22 14:47:15 2012 (r238694) @@ -28,7 +28,7 @@ .\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 .\" $FreeBSD$ .\" -.Dd January 28, 2012 +.Dd July 18, 2012 .Dt FCNTL 2 .Os .Sh NAME @@ -54,7 +54,7 @@ Depending on the value of .Fn fcntl can take an additional third argument .Fa "int arg" . -.Bl -tag -width F_GETOWNX +.Bl -tag -width F_DUPFD_CLOEXEC .It Dv F_DUPFD Return a new descriptor as follows: .Pp @@ -73,11 +73,22 @@ Same access mode (read, write or read/wr Same file status flags (i.e., both file descriptors share the same file status flags). .It -The close-on-exec flag associated with the new file descriptor -is set to remain open across +The close-on-exec flag +.Dv FD_CLOEXEC +associated with the new file descriptor is cleared, so the file descriptor is +to remain open across .Xr execve 2 system calls. .El +.It Dv F_DUPFD_CLOEXEC +Like +.Dv F_DUPFD , +but the +.Dv FD_CLOEXEC +flag associated with the new file descriptor is set, so the file descriptor +is closed when +.Xr execve 2 +system call executes. .It Dv F_DUP2FD It is functionally equivalent to .Bd -literal -offset indent Modified: projects/fuse/lib/libc/sys/fcntl.c ============================================================================== --- projects/fuse/lib/libc/sys/fcntl.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libc/sys/fcntl.c Sun Jul 22 14:47:15 2012 (r238694) @@ -41,7 +41,7 @@ __fcntl_compat(int fd, int cmd, ...) { va_list args; long arg; - struct oflock ofl; + struct __oflock ofl; struct flock *flp; int res; Modified: projects/fuse/lib/libedit/makelist ============================================================================== --- projects/fuse/lib/libedit/makelist Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libedit/makelist Sun Jul 22 14:47:15 2012 (r238694) @@ -1,5 +1,5 @@ #!/bin/sh - -# $NetBSD: makelist,v 1.10 2005/08/08 14:04:49 christos Exp $ +# $NetBSD: makelist,v 1.11 2005/10/22 16:45:03 christos Exp $ # $FreeBSD$ # # Copyright (c) 1992, 1993 @@ -141,7 +141,7 @@ case $FLAG in # -fh) cat $FILES | $AWK '/el_action_t/ { print $3 }' | \ - sort | LC_ALL=C tr 'a-z' 'A-Z' | $AWK ' + sort | LC_ALL=C tr '[:lower:]' '[:upper:]' | $AWK ' BEGIN { printf("/* Automatically generated file, do not edit */\n"); printf("#ifndef _h_fcns_c\n#define _h_fcns_c\n"); Modified: projects/fuse/lib/libedit/tokenizer.c ============================================================================== --- projects/fuse/lib/libedit/tokenizer.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libedit/tokenizer.c Sun Jul 22 14:47:15 2012 (r238694) @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $NetBSD: tokenizer.c,v 1.14 2003/12/05 13:37:48 lukem Exp $ + * $NetBSD: tokenizer.c,v 1.15 2009/02/15 21:55:23 christos Exp $ */ #if !defined(lint) && !defined(SCCSID) @@ -198,7 +198,7 @@ tok_line(Tokenizer *tok, const LineInfo ptr = ""; if (ptr == line->cursor) { cc = tok->argc; - co = tok->wptr - tok->wstart; + co = (int)(tok->wptr - tok->wstart); } switch (*ptr) { case '\'': @@ -417,7 +417,7 @@ tok_line(Tokenizer *tok, const LineInfo tok_line_outok: if (cc == -1 && co == -1) { cc = tok->argc; - co = tok->wptr - tok->wstart; + co = (int)(tok->wptr - tok->wstart); } if (cursorc != NULL) *cursorc = cc; Modified: projects/fuse/lib/libthr/thread/thr_getschedparam.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_getschedparam.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_getschedparam.c Sun Jul 22 14:47:15 2012 (r238694) @@ -48,30 +48,21 @@ _pthread_getschedparam(pthread_t pthread struct sched_param *param) { struct pthread *curthread = _get_curthread(); - int ret; + int ret = 0; if (policy == NULL || param == NULL) return (EINVAL); - if (pthread == curthread) { - /* - * Avoid searching the thread list when it is the current - * thread. - */ + /* + * Avoid searching the thread list when it is the current + * thread. + */ + if (pthread == curthread) THR_LOCK(curthread); - *policy = curthread->attr.sched_policy; - param->sched_priority = curthread->attr.prio; - THR_UNLOCK(curthread); - ret = 0; - } - /* Find the thread in the list of active threads. */ - else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - *policy = pthread->attr.sched_policy; - param->sched_priority = pthread->attr.prio; - THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); - } + else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0))) + return (ret); + *policy = pthread->attr.sched_policy; + param->sched_priority = pthread->attr.prio; + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/lib/libthr/thread/thr_info.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_info.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_info.c Sun Jul 22 14:47:15 2012 (r238694) @@ -51,16 +51,12 @@ _pthread_set_name_np(pthread_t thread, c if (thr_set_name(thread->tid, name)) ret = errno; } else { - if (_thr_ref_add(curthread, thread, 0) == 0) { - THR_THREAD_LOCK(curthread, thread); + if ((ret=_thr_find_thread(curthread, thread, 0)) == 0) { if (thread->state != PS_DEAD) { if (thr_set_name(thread->tid, name)) ret = errno; } THR_THREAD_UNLOCK(curthread, thread); - _thr_ref_delete(curthread, thread); - } else { - ret = ESRCH; } } #if 0 Modified: projects/fuse/lib/libthr/thread/thr_setprio.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_setprio.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_setprio.c Sun Jul 22 14:47:15 2012 (r238694) @@ -45,38 +45,22 @@ _pthread_setprio(pthread_t pthread, int int ret; param.sched_priority = prio; - if (pthread == curthread) { + if (pthread == curthread) THR_LOCK(curthread); - if (curthread->attr.sched_policy == SCHED_OTHER || - curthread->attr.prio == prio) { - curthread->attr.prio = prio; - ret = 0; - } else { - ret = _thr_setscheduler(curthread->tid, - curthread->attr.sched_policy, ¶m); - if (ret == -1) - ret = errno; - else - curthread->attr.prio = prio; - } - THR_UNLOCK(curthread); - } else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - if (pthread->attr.sched_policy == SCHED_OTHER || - pthread->attr.prio == prio) { + else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0))) + return (ret); + if (pthread->attr.sched_policy == SCHED_OTHER || + pthread->attr.prio == prio) { + pthread->attr.prio = prio; + ret = 0; + } else { + ret = _thr_setscheduler(pthread->tid, + pthread->attr.sched_policy, ¶m); + if (ret == -1) + ret = errno; + else pthread->attr.prio = prio; - ret = 0; - } else { - ret = _thr_setscheduler(pthread->tid, - curthread->attr.sched_policy, ¶m); - if (ret == -1) - ret = errno; - else - pthread->attr.prio = prio; - } - THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); } + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/lib/libthr/thread/thr_setschedparam.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_setschedparam.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_setschedparam.c Sun Jul 22 14:47:15 2012 (r238694) @@ -53,42 +53,25 @@ _pthread_setschedparam(pthread_t pthread struct pthread *curthread = _get_curthread(); int ret; - if (pthread == curthread) { + if (pthread == curthread) THR_LOCK(curthread); - if (curthread->attr.sched_policy == policy && - (policy == SCHED_OTHER || - curthread->attr.prio == param->sched_priority)) { - pthread->attr.prio = param->sched_priority; - THR_UNLOCK(curthread); - return (0); - } - ret = _thr_setscheduler(curthread->tid, policy, param); - if (ret == -1) - ret = errno; - else { - curthread->attr.sched_policy = policy; - curthread->attr.prio = param->sched_priority; - } - THR_UNLOCK(curthread); - } else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - if (pthread->attr.sched_policy == policy && - (policy == SCHED_OTHER || - pthread->attr.prio == param->sched_priority)) { - pthread->attr.prio = param->sched_priority; - THR_THREAD_UNLOCK(curthread, pthread); - return (0); - } - ret = _thr_setscheduler(pthread->tid, policy, param); - if (ret == -1) - ret = errno; - else { - pthread->attr.sched_policy = policy; - pthread->attr.prio = param->sched_priority; - } + else if ((ret = _thr_find_thread(curthread, pthread, + /*include dead*/0)) != 0) + return (ret); + if (pthread->attr.sched_policy == policy && + (policy == SCHED_OTHER || + pthread->attr.prio == param->sched_priority)) { + pthread->attr.prio = param->sched_priority; THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); + return (0); } + ret = _thr_setscheduler(pthread->tid, policy, param); + if (ret == -1) + ret = errno; + else { + pthread->attr.sched_policy = policy; + pthread->attr.prio = param->sched_priority; + } + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/sbin/hastd/hast.conf.5 ============================================================================== --- projects/fuse/sbin/hastd/hast.conf.5 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/sbin/hastd/hast.conf.5 Sun Jul 22 14:47:15 2012 (r238694) @@ -63,7 +63,7 @@ checksum compression timeout exec -metaflush "on" | "off" +metaflush on | off pidfile on { @@ -89,14 +89,14 @@ resource { local timeout exec - metaflush "on" | "off" + metaflush on | off on { # Resource-node section name # Required local - metaflush "on" | "off" + metaflush on | off # Required remote source @@ -106,7 +106,7 @@ resource { name # Required local - metaflush "on" | "off" + metaflush on | off # Required remote source Modified: projects/fuse/sbin/ipfw/ipfw.8 ============================================================================== --- projects/fuse/sbin/ipfw/ipfw.8 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/sbin/ipfw/ipfw.8 Sun Jul 22 14:47:15 2012 (r238694) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 9, 2012 +.Dd July 16, 2012 .Dt IPFW 8 .Os .Sh NAME @@ -2967,9 +2967,11 @@ This will let the firewall install dynam those connection which start with a regular SYN packet coming from the inside of our network. Dynamic rules are checked when encountering the first -.Cm check-state -or +occurrence of a +.Cm check-state , .Cm keep-state +or +.Cm limit rule. A .Cm check-state Modified: projects/fuse/share/dtrace/Makefile ============================================================================== --- projects/fuse/share/dtrace/Makefile Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/share/dtrace/Makefile Sun Jul 22 14:47:15 2012 (r238694) @@ -12,9 +12,9 @@ SUBDIR= ${_toolkit} _toolkit= toolkit .endif -SCRIPTS= nfsclienttime +SCRIPTS= nfsclienttime hotopen -SCRIPTSDIR= ${SHAREDIR}/dtrace/ +SCRIPTSDIR= ${SHAREDIR}/dtrace NO_OBJ= Copied: projects/fuse/share/dtrace/hotopen (from r238693, head/share/dtrace/hotopen) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse/share/dtrace/hotopen Sun Jul 22 14:47:15 2012 (r238694, copy of r238693, head/share/dtrace/hotopen) @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Copyright (c) 2012 George V. Neville-Neil +# All rights reserved. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 15:07:36 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8096D106566B; Sun, 22 Jul 2012 15:07:36 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C54B8FC12; Sun, 22 Jul 2012 15:07:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MF7a82097615; Sun, 22 Jul 2012 15:07:36 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MF7aIO097613; Sun, 22 Jul 2012 15:07:36 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221507.q6MF7aIO097613@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 15:07:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238695 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 15:07:36 -0000 Author: attilio Date: Sun Jul 22 15:07:35 2012 New Revision: 238695 URL: http://svn.freebsd.org/changeset/base/238695 Log: Remove bogus __FreeBSD_version opt-in, caming probabily from the port era. Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_vnops.c Sun Jul 22 14:47:15 2012 (r238694) +++ projects/fuse/sys/fs/fuse/fuse_vnops.c Sun Jul 22 15:07:35 2012 (r238695) @@ -185,17 +185,10 @@ SYSCTL_INT(_vfs_fuse, OID_AUTO, reclaim_ int fuse_pbuf_freecnt = -1; -#if __FreeBSD_version >= 900011 #define fuse_vm_page_lock(m) vm_page_lock((m)); #define fuse_vm_page_unlock(m) vm_page_unlock((m)); #define fuse_vm_page_lock_queues() ((void)0) #define fuse_vm_page_unlock_queues() ((void)0) -#else -#define fuse_vm_page_lock(m) ((void)0) -#define fuse_vm_page_unlock(m) ((void)0) -#define fuse_vm_page_lock_queues() vm_page_lock_queues() -#define fuse_vm_page_unlock_queues() vm_page_unlock_queues() -#endif /* struct vnop_access_args { @@ -1928,11 +1921,7 @@ fuse_vnop_getpages(struct vop_getpages_a * Read operation filled a partial page. */ m->valid = 0; -#if __FreeBSD_version >= 1000002 vm_page_set_valid_range(m, 0, size - toff); -#else - vm_page_set_valid(m, 0, size - toff); -#endif KASSERT(m->dirty == 0, ("fuse_getpages: page %p is dirty", m)); } else { From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 15:08:35 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF8F8106566C; Sun, 22 Jul 2012 15:08:34 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DBA698FC0C; Sun, 22 Jul 2012 15:08:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MF8YII097725; Sun, 22 Jul 2012 15:08:34 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MF8YGY097723; Sun, 22 Jul 2012 15:08:34 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221508.q6MF8YGY097723@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 15:08:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238696 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 15:08:35 -0000 Author: attilio Date: Sun Jul 22 15:08:34 2012 New Revision: 238696 URL: http://svn.freebsd.org/changeset/base/238696 Log: Remove a debugging knob (good that not anyone can speak italian). Modified: projects/fuse/sys/fs/fuse/fuse_vfsops.c Modified: projects/fuse/sys/fs/fuse/fuse_vfsops.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_vfsops.c Sun Jul 22 15:07:35 2012 (r238695) +++ projects/fuse/sys/fs/fuse/fuse_vfsops.c Sun Jul 22 15:08:34 2012 (r238696) @@ -252,10 +252,8 @@ fuse_vfsop_mount(struct mount *mp) return err; /* `fd' contains the filedescriptor for this session; REQUIRED */ - if (!vfs_scanopt(opts, "fd", "%d", &fd)) { - printf("coglione\n"); + if (!vfs_scanopt(opts, "fd", "%d", &fd)) return err; - } err = fuse_getdevice(fspec, td, &fdev); if (err != 0) From owner-svn-src-projects@FreeBSD.ORG Wed Jul 25 00:21:17 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F0381065675; Wed, 25 Jul 2012 00:21:17 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1B1178FC12; Wed, 25 Jul 2012 00:21:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6P0LGaP090086; Wed, 25 Jul 2012 00:21:16 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6P0LG65090083; Wed, 25 Jul 2012 00:21:16 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201207250021.q6P0LG65090083@svn.freebsd.org> From: Neel Natu Date: Wed, 25 Jul 2012 00:21:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238758 - in projects/bhyve/sys: amd64/vmm/intel x86/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jul 2012 00:21:17 -0000 Author: neel Date: Wed Jul 25 00:21:16 2012 New Revision: 238758 URL: http://svn.freebsd.org/changeset/base/238758 Log: Verify that VMX operation has been enabled by BIOS before executing the VMXON instruction. Reported by "s vas" on freebsd-virtualization@ Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c projects/bhyve/sys/x86/include/specialreg.h Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx.c Tue Jul 24 22:48:12 2012 (r238757) +++ projects/bhyve/sys/amd64/vmm/intel/vmx.c Wed Jul 25 00:21:16 2012 (r238758) @@ -427,7 +427,7 @@ static int vmx_init(void) { int error; - uint64_t fixed0, fixed1; + uint64_t fixed0, fixed1, feature_control; uint32_t tmp; /* CPUID.1:ECX[bit 5] must be 1 for processor to support VMX */ @@ -436,6 +436,16 @@ vmx_init(void) return (ENXIO); } + /* + * Verify that MSR_IA32_FEATURE_CONTROL lock and VMXON enable bits + * are set (bits 0 and 2 respectively). + */ + feature_control = rdmsr(MSR_IA32_FEATURE_CONTROL); + if ((feature_control & 0x5) != 0x5) { + printf("vmx_init: VMX operation disabled by BIOS\n"); + return (ENXIO); + } + /* Check support for primary processor-based VM-execution controls */ error = vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS, MSR_VMX_TRUE_PROCBASED_CTLS, Modified: projects/bhyve/sys/x86/include/specialreg.h ============================================================================== --- projects/bhyve/sys/x86/include/specialreg.h Tue Jul 24 22:48:12 2012 (r238757) +++ projects/bhyve/sys/x86/include/specialreg.h Wed Jul 25 00:21:16 2012 (r238758) @@ -294,6 +294,7 @@ #define MSR_APICBASE 0x01b #define MSR_EBL_CR_POWERON 0x02a #define MSR_TEST_CTL 0x033 +#define MSR_IA32_FEATURE_CONTROL 0x03a #define MSR_BIOS_UPDT_TRIG 0x079 #define MSR_BBL_CR_D0 0x088 #define MSR_BBL_CR_D1 0x089 From owner-svn-src-projects@FreeBSD.ORG Wed Jul 25 01:05:49 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B74D3106564A; Wed, 25 Jul 2012 01:05:49 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A2A6B8FC08; Wed, 25 Jul 2012 01:05:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6P15nnO093463; Wed, 25 Jul 2012 01:05:49 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6P15nED093461; Wed, 25 Jul 2012 01:05:49 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201207250105.q6P15nED093461@svn.freebsd.org> From: Neel Natu Date: Wed, 25 Jul 2012 01:05:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238759 - projects/bhyve/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jul 2012 01:05:49 -0000 Author: neel Date: Wed Jul 25 01:05:49 2012 New Revision: 238759 URL: http://svn.freebsd.org/changeset/base/238759 Log: Fix compilation error when compiling a kernel without KDTRACE_HOOKS Modified: projects/bhyve/sys/kern/subr_devstat.c Modified: projects/bhyve/sys/kern/subr_devstat.c ============================================================================== --- projects/bhyve/sys/kern/subr_devstat.c Wed Jul 25 00:21:16 2012 (r238758) +++ projects/bhyve/sys/kern/subr_devstat.c Wed Jul 25 01:05:49 2012 (r238759) @@ -87,8 +87,12 @@ uint32_t dtio_wait_done_id; #define DTRACE_DEVSTAT_START() +#define DTRACE_DEVSTAT_BIO_START() + #define DTRACE_DEVSTAT_DONE() +#define DTRACE_DEVSTAT_BIO_DONE() + #define DTRACE_DEVSTAT_WAIT_START() #define DTRACE_DEVSTAT_WAIT_DONE() From owner-svn-src-projects@FreeBSD.ORG Wed Jul 25 11:50:37 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9868D1065670; Wed, 25 Jul 2012 11:50:37 +0000 (UTC) (envelope-from monthadar@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 832F98FC0C; Wed, 25 Jul 2012 11:50:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6PBobCv054392; Wed, 25 Jul 2012 11:50:37 GMT (envelope-from monthadar@svn.freebsd.org) Received: (from monthadar@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6PBobhm054390; Wed, 25 Jul 2012 11:50:37 GMT (envelope-from monthadar@svn.freebsd.org) Message-Id: <201207251150.q6PBobhm054390@svn.freebsd.org> From: Monthadar Al Jaberi Date: Wed, 25 Jul 2012 11:50:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238767 - projects/net80211_testsuite/wtap/006 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jul 2012 11:50:37 -0000 Author: monthadar Date: Wed Jul 25 11:50:36 2012 New Revision: 238767 URL: http://svn.freebsd.org/changeset/base/238767 Log: Update test.sh for 006 test case to use correct flag for MeshGate. Modified: projects/net80211_testsuite/wtap/006/bpf.c Modified: projects/net80211_testsuite/wtap/006/bpf.c ============================================================================== --- projects/net80211_testsuite/wtap/006/bpf.c Wed Jul 25 11:33:43 2012 (r238766) +++ projects/net80211_testsuite/wtap/006/bpf.c Wed Jul 25 11:50:36 2012 (r238767) @@ -39,7 +39,7 @@ hwmp_recv_action_meshpath(const struct i { printf("PREQ with "); preq = (struct ieee80211_meshpreq_ie *)iefrm; - if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_PR) { + if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_GATE) { printf("GateAnnouncement!\n"); return 0; } else { From owner-svn-src-projects@FreeBSD.ORG Wed Jul 25 17:15:53 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06A92106564A; Wed, 25 Jul 2012 17:15:53 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6CF98FC0A; Wed, 25 Jul 2012 17:15:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6PHFqTx080887; Wed, 25 Jul 2012 17:15:52 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6PHFqui080885; Wed, 25 Jul 2012 17:15:52 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207251715.q6PHFqui080885@svn.freebsd.org> From: Attilio Rao Date: Wed, 25 Jul 2012 17:15:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238773 - projects/fuse/sys/fs/fuse X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jul 2012 17:15:53 -0000 Author: attilio Date: Wed Jul 25 17:15:52 2012 New Revision: 238773 URL: http://svn.freebsd.org/changeset/base/238773 Log: In VOP_RMDIR and VOP_REMOVE the last comonent name will be used, thus when doing lookup the buffer must not be freed when nameiop == DELETE. Reported by: pho Tested by: pho, flo Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c Modified: projects/fuse/sys/fs/fuse/fuse_vnops.c ============================================================================== --- projects/fuse/sys/fs/fuse/fuse_vnops.c Wed Jul 25 13:11:36 2012 (r238772) +++ projects/fuse/sys/fs/fuse/fuse_vnops.c Wed Jul 25 17:15:52 2012 (r238773) @@ -871,19 +871,19 @@ calldaemon: if (nid == VTOI(dvp)) { vref(dvp); *vpp = dvp; - goto out; - } - err = fuse_vnode_get(dvp->v_mount, - nid, - dvp, - &vp, - cnp, - IFTOVT(fattr->mode)); - if (err) { - goto out; + } else { + err = fuse_vnode_get(dvp->v_mount, nid, dvp, + &vp, cnp, IFTOVT(fattr->mode)); + if (err) + goto out; + *vpp = vp; } - *vpp = vp; + /* + * Save the name for use in VOP_RMDIR and VOP_REMOVE + * later. + */ + cnp->cn_flags |= SAVENAME; goto out; } From owner-svn-src-projects@FreeBSD.ORG Thu Jul 26 10:47:26 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3A7F106564A; Thu, 26 Jul 2012 10:47:26 +0000 (UTC) (envelope-from monthadar@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8DD398FC08; Thu, 26 Jul 2012 10:47:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6QAlQXi068359; Thu, 26 Jul 2012 10:47:26 GMT (envelope-from monthadar@svn.freebsd.org) Received: (from monthadar@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6QAlQrq068358; Thu, 26 Jul 2012 10:47:26 GMT (envelope-from monthadar@svn.freebsd.org) Message-Id: <201207261047.q6QAlQrq068358@svn.freebsd.org> From: Monthadar Al Jaberi Date: Thu, 26 Jul 2012 10:47:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238797 - projects/net80211_testsuite/wtap/007 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 10:47:26 -0000 Author: monthadar Date: Thu Jul 26 10:47:26 2012 New Revision: 238797 URL: http://svn.freebsd.org/changeset/base/238797 Log: Added test 007 (intermediate) PREP reply for proxy entry. Added: projects/net80211_testsuite/wtap/007/ projects/net80211_testsuite/wtap/007/test.sh (contents, props changed) Added: projects/net80211_testsuite/wtap/007/test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/net80211_testsuite/wtap/007/test.sh Thu Jul 26 10:47:26 2012 (r238797) @@ -0,0 +1,297 @@ +#!/bin/sh + +# This program requires: +# + wtap - to create/destroy the wtap instances +# + vis_map - to setup the visibility map between wtap instances +# + vimage - to configure/destroy vtap nodes + +# The name of the test that will be printed in the begining +TEST_NBR="007" +TEST_NAME="test (intermediate) PREP reply for proxy entry" + +# Return value from this test, 0 success failure otherwise +TEST_RESULT=127 + +# The maximum number of nodes to test +# not counting the mesh gate. +# This will iterate from 0 to MAX_NBR_NODES +MAX_NBR_NODES=5 + +# The subnet prefix +IP_SUBNET="192.168.2." + +cmd() +{ + echo "***${TEST_NBR}*** " $* + $* +} + +info() +{ + echo "***${TEST_NBR}*** " $* +} + +descr() +{ + cat < MG(A) <-> MAX_NBR_NODES <-> MP(Z) | + --------------------------------------- + +* does a ping test from end-to-end. + +It is expected that the initial creation and discovery phase +will take some time so the initial run will fail until discovery +is done. A future extension to the test suite should be to +set lower/upper bounds on the discovery phase time. + +EOL +} + +intr_setup() +{ + NBR_WTAPS=$1 + info "Internal setup called $NBR_WTAPS" + # Initialize output file + info "TEST: ${TEST_NAME}" + info `date` + + # Create wtap/vimage nodes + cmd vimage -c 1 # proxyA + info "Setup: vimage 2 - wtap0" + cmd vimage -c 2 # MG(A) + cmd wtap c 0 + info "Setup: vimage 3 - wtap1" + cmd vimage -c 3 # MP(Z) + cmd wtap c 1 + if [ $NBR_WTAPS != 0 ]; then + for i in `seq 1 $NBR_WTAPS`; do + wtap_if="`expr $i + 1`" + vimage="`expr $i + 3`" + info "Setup: vimage $vimage - wtap$wtap_if" + cmd vimage -c $vimage + cmd wtap c $wtap_if + done + fi + + # Set visibility for each node to see the + # next node. + n="`expr $NBR_WTAPS + 2 - 1`" + for l in `seq 0 ${n}`; do + k="`expr ${l} + 1`" + cmd vis_map a $k $l + cmd vis_map a $l $k + done + + # Makes the visibility map plugin deliver packets to resp. dest. + cmd vis_map o + + # Create and setup PROXY node with corresponding bridge + cmd ifconfig epair0 create + cmd ifconfig epair0a vnet 1 + cmd ifconfig epair0b vnet 2 + cmd ifconfig bridge0 create + # Disables bridge filtering + cmd sysctl net.link.bridge.pfil_member=0 + cmd sysctl net.link.bridge.pfil_bridge=0 + cmd ifconfig bridge0 vnet 2 + + # Create each wlan subinterface, place into the correct vnet + # MP(A) + cmd ifconfig wlan0 create wlandev wtap0 wlanmode mesh + cmd ifconfig wlan0 meshid mymesh + cmd wlandebug -i wlan0 hwmp + cmd ifconfig wlan0 vnet 2 + # MP(Z) + cmd ifconfig wlan1 create wlandev wtap1 wlanmode mesh + cmd ifconfig wlan1 meshid mymesh + cmd wlandebug -i wlan1 hwmp + cmd ifconfig wlan1 vnet 3 + # MPs inbetween + if [ $NBR_WTAPS != 0 ]; then + for l in `seq 1 $NBR_WTAPS`; do + wtap_if="`expr ${l} + 1`" + vimage="`expr ${l} + 3`" + cmd ifconfig wlan${wtap_if} create wlandev wtap${wtap_if} wlanmode mesh + cmd ifconfig wlan${wtap_if} meshid mymesh + cmd wlandebug -i wlan${wtap_if} hwmp + cmd ifconfig wlan${wtap_if} vnet ${vimage} + cmd jexec ${vimage} ifconfig wlan${wtap_if} inet ${IP_SUBNET}${vimage} + done + fi + + # Bring all interfaces up. + # NB: Bridge need to be brought up before the bridged interfaces + cmd jexec 1 ifconfig epair0a inet 192.168.2.1 + cmd jexec 2 ifconfig bridge0 addm epair0b addm wlan0 up + cmd jexec 2 ifconfig epair0b up + cmd jexec 2 ifconfig wlan0 up + cmd jexec 2 ifconfig wlan0 inet ${IP_SUBNET}2 + cmd jexec 3 ifconfig wlan1 up + cmd jexec 3 ifconfig wlan1 inet ${IP_SUBNET}3 + + sleep 5 +} + +intr_run() +{ + NBR_WTAPS=$1 + MP_Z_VIMAGE="3" + MP_Z_WTAP="1" + PROXY_A_VIMAGE="1" + PROXY_A_WTAP="0" + INTR_TEST_FAIL="0" + info "internal run called with $NBR_WTAPS inbetween wtaps" + + LAST_VIMAGE="`expr $NBR_WTAPS + 3`" + for k in `seq 3 ${LAST_VIMAGE}`; do + # From vimage '$i' to vimage '$j'.. + info "Checking MP(${k}) -> proxyA.." + # Return after a single successful packet + cmd jexec ${k} ping -q -t 5 -c 5 \ + -o ${IP_SUBNET}${PROXY_A_VIMAGE} + + if [ "$?" = "0" ]; then + info "CHECK: MP(${k}) -> proxyA: SUCCESS" + else + info "CHECK: MP(${k}) -> proxyA: FAILURE" + INTR_TEST_FAIL="127" + fi + done + return $INTR_TEST_FAIL +} + +intr_teardown() +{ + NBR_WTAPS=$1 + info "Internal teardown called $NBR_WTAPS" + cmd vis_map c + # Unlink all links + # XXX: this is a limitation of the current plugin, + # no way to reset vis_map without unload wtap. + n="`expr $NBR_WTAPS + 2 - 1`" + for l in `seq 0 ${n}`; do + k="`expr ${l} + 1`" + cmd vis_map d $k $l + cmd vis_map d $l $k + done + + # We need to destroy the bridge first otherwise + # we panic the system. + cmd jexec 2 ifconfig bridge0 destroy + # Bring epair back to host view, we bring both back + # otherwise a panic occurs, ie one is not enough. + cmd ifconfig epair0a -vnet 1 + cmd ifconfig epair0b -vnet 2 + cmd ifconfig epair0a destroy + + # Destroy wtap/vimage nodes + cmd vimage -d 1 # proxyA + info "Teardown: vimage 2 - wtap0" + cmd cat /dev/wtap0 > itr${NBR_WTAPS}_wtap0.debug + cmd jexec 2 ifconfig wlan0 destroy + cmd vimage -d 2 # MG(A) + cmd wtap d 0 + info "Teardown: vimage 3 - wtap1" + cmd cat /dev/wtap1 > itr${NBR_WTAPS}_wtap1.debug + cmd jexec 3 ifconfig wlan1 destroy + cmd vimage -d 3 # MP(Z) + cmd wtap d 1 + if [ $NBR_WTAPS != 0 ]; then + for l in `seq 1 $1`; do + wtap_if="`expr $l + 1`" + vimage="`expr $l + 3`" + info "Teardown: vimage $vimage - wtap$wtap_if" + cmd cat /dev/wtap${wtap_if} > itr${NBR_WTAPS}_wtap${wtap_if}.debug + cmd jexec ${vimage} ifconfig wlan${wtap_if} destroy + cmd vimage -d $vimage + cmd wtap d $wtap_if + done + fi +} + +run() +{ + NBR_TESTS=0 NBR_FAIL=0 RUN_STATUS=0 + + for i in `seq 0 ${MAX_NBR_NODES}`; do + NBR_TESTS="`expr ${NBR_TESTS} + 1`" + intr_setup ${i} + intr_run ${i} + if [ $? = 0 ]; then + info "Iteration ${i} PASSED" + else + info "Iteration ${i} FAILED" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + intr_teardown ${i} + done + + if [ $NBR_FAIL = 0 ]; then + info "ALL TESTS PASSED" + TEST_RESULT=0 + else + info "FAILED ${NBR_FAIL} of ${NBR_TESTS} TESTS" + fi +} + +teardown() +{ + exit ${TEST_RESULT} +} + +EXEC_RUN=0 +EXEC_TEARDOWN=0 +while [ "$#" -gt "0" ] +do + case $1 in + 'all') + EXEC_RUN=1 + EXEC_TEARDOWN=1 + ;; + 'setup') + info "Does nothing. This is an iterative test." + ;; + 'run') + EXEC_RUN=1 + ;; + 'teardown') + EXEC_TEARDOWN=1 + ;; + 'descr') + descr + exit 0 + ;; + *) + echo "$0 {all | setup | run | teardown | descr}" + exit 127 + ;; + esac + shift +done + +if [ $EXEC_RUN = 1 ]; then + run +fi +if [ $EXEC_TEARDOWN = 1 ]; then + teardown +fi + +exit 0 + From owner-svn-src-projects@FreeBSD.ORG Thu Jul 26 14:03:30 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98A881065670; Thu, 26 Jul 2012 14:03:30 +0000 (UTC) (envelope-from monthadar@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7930A8FC12; Thu, 26 Jul 2012 14:03:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6QE3UXf091389; Thu, 26 Jul 2012 14:03:30 GMT (envelope-from monthadar@svn.freebsd.org) Received: (from monthadar@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6QE3UAt091388; Thu, 26 Jul 2012 14:03:30 GMT (envelope-from monthadar@svn.freebsd.org) Message-Id: <201207261403.q6QE3UAt091388@svn.freebsd.org> From: Monthadar Al Jaberi Date: Thu, 26 Jul 2012 14:03:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238807 - projects/net80211_testsuite/wtap/008 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 14:03:30 -0000 Author: monthadar Date: Thu Jul 26 14:03:29 2012 New Revision: 238807 URL: http://svn.freebsd.org/changeset/base/238807 Log: Added test 008 - mesh should be empty when peer goes down. Added: projects/net80211_testsuite/wtap/008/ projects/net80211_testsuite/wtap/008/test.sh (contents, props changed) Added: projects/net80211_testsuite/wtap/008/test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/net80211_testsuite/wtap/008/test.sh Thu Jul 26 14:03:29 2012 (r238807) @@ -0,0 +1,205 @@ +#!/bin/sh + +# This program requires: +# + wtap - to create/destroy the wtap instances +# + vis_map - to setup the visibility map between wtap instances +# + vimage - to configure/destroy vtap nodes + +# The name of the test that will be printed in the begining +TEST_NBR="008" +TEST_NAME="mesh should be empty when peer goes down" + +# Return value from this test, 0 success failure otherwise +TEST_RESULT=127 + +# The number of nodes to test +NBR_NODES=3 + +# The subnet prefix +IP_SUBNET="192.168.2." + +cmd() +{ + echo "***${TEST_NBR}*** " $* + $* +} + +info() +{ + echo "***${TEST_NBR}*** " $* +} + +descr() +{ + cat < B <-> C + +* node B goes down after 5 seconds +* node A should not have any mesh path to B and C + +EOL +} + +setup() +{ + # Initialize output file + info "TEST: ${TEST_NAME}" + info `date` + + # Create wtap/vimage nodes + for i in `seq 1 ${NBR_NODES}`; do + wtap_if="`expr $i - 1`" + info "Setup: vimage $i - wtap$wtap_if" + cmd vimage -c $i + cmd wtap c $wtap_if + done + + # Set visibility for each node to see the + # next node. + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + j="`expr ${i} + 1`" + cmd vis_map a $i $j + cmd vis_map a $j $i + done + + # Makes the visibility map plugin deliver packets to resp. dest. + cmd vis_map o + + # Create each wlan subinterface, place into the correct vnet + for i in `seq 0 ${n}`; do + vnet="`expr ${i} + 1`" + cmd ifconfig wlan${i} create wlandev wtap${i} wlanmode mesh + cmd ifconfig wlan${i} meshid mymesh + cmd wlandebug -i wlan${i} hwmp+mesh + cmd ifconfig wlan${i} vnet ${vnet} + cmd jexec ${vnet} ifconfig wlan${i} up + cmd jexec ${vnet} ifconfig wlan${i} inet ${IP_SUBNET}${vnet} + done +} + +run() +{ + NBR_TESTS=4 NBR_FAIL=0 + + cmd sleep 5 + + cmd jexec 1 ping -q -t 5 -c 5 -o ${IP_SUBNET}3 + + TMP=`jexec 1 ifconfig wlan0 list mesh | grep "00:98:9a:98:96:98" | wc -l` + if [ $TMP != "2" ]; then # Node C jumps through node B + info "Node B is not in A's 'list mesh' table" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + TMP=`jexec 1 ifconfig wlan0 list mesh | grep "00:98:9a:98:96:99" | wc -l` + if [ $TMP != "1" ]; then + info "Node C is not in A's 'list mesh' table" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + + # take node B down + cmd jexec 2 ifconfig wlan1 down + + cmd sleep 1 + + TMP=`jexec 1 ifconfig wlan0 list mesh | grep "00:98:9a:98:96:98" | wc -l` + if [ $TMP != "0" ]; then + info "Node B still in A's 'list mesh' table" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + TMP=`jexec 1 ifconfig wlan0 list mesh | grep "00:98:9a:98:96:99" | wc -l` + if [ $TMP != "0" ]; then + info "Node C still in A's 'list mesh' table" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + + if [ $NBR_FAIL = 0 ]; then + info "ALL TESTS PASSED" + TEST_RESULT=0 + else + info "FAILED ${NBR_FAIL} of ${NBR_TESTS} TESTS" + fi +} + +teardown() +{ + cmd vis_map c + # Unlink all links + # XXX: this is a limitation of the current plugin, + # no way to reset vis_map without unload wtap. + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + j="`expr ${i} + 1`" + cmd vis_map d $i $j + cmd vis_map d $j $i + done + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + vnet="`expr ${i} + 1`" + cmd cat /dev/wtap${i} > wtap${i}.debug + cmd jexec ${vnet} ifconfig wlan${i} destroy + done + for i in `seq 1 ${NBR_NODES}`; do + wtap_if="`expr $i - 1`" + cmd wtap d ${wtap_if} + cmd vimage -d ${i} + done + exit ${TEST_RESULT} +} + +EXEC_SETUP=0 +EXEC_RUN=0 +EXEC_TEARDOWN=0 +while [ "$#" -gt "0" ] +do + case $1 in + 'all') + EXEC_SETUP=1 + EXEC_RUN=1 + EXEC_TEARDOWN=1 + ;; + 'setup') + EXEC_SETUP=1 + ;; + 'run') + EXEC_RUN=1 + ;; + 'teardown') + EXEC_TEARDOWN=1 + ;; + 'descr') + descr + exit 0 + ;; + *) + echo "$0 {all | setup | run | teardown | descr}" + exit 127 + ;; + esac + shift +done + +if [ $EXEC_SETUP = 1 ]; then + setup +fi +if [ $EXEC_RUN = 1 ]; then + run +fi +if [ $EXEC_TEARDOWN = 1 ]; then + teardown +fi + +exit 0 + From owner-svn-src-projects@FreeBSD.ORG Thu Jul 26 15:29:08 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0FDD10657A7; Thu, 26 Jul 2012 15:29:08 +0000 (UTC) (envelope-from monthadar@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8D0828FC14; Thu, 26 Jul 2012 15:29:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6QFT8AC098355; Thu, 26 Jul 2012 15:29:08 GMT (envelope-from monthadar@svn.freebsd.org) Received: (from monthadar@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6QFT82r098354; Thu, 26 Jul 2012 15:29:08 GMT (envelope-from monthadar@svn.freebsd.org) Message-Id: <201207261529.q6QFT82r098354@svn.freebsd.org> From: Monthadar Al Jaberi Date: Thu, 26 Jul 2012 15:29:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238809 - projects/net80211_testsuite/wtap/009 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 15:29:08 -0000 Author: monthadar Date: Thu Jul 26 15:29:08 2012 New Revision: 238809 URL: http://svn.freebsd.org/changeset/base/238809 Log: Added test 009 - test mesh peer code w/ ACL policy. Added: projects/net80211_testsuite/wtap/009/ projects/net80211_testsuite/wtap/009/test.sh (contents, props changed) Added: projects/net80211_testsuite/wtap/009/test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/net80211_testsuite/wtap/009/test.sh Thu Jul 26 15:29:08 2012 (r238809) @@ -0,0 +1,198 @@ +#!/bin/sh + +# This program requires: +# + wtap - to create/destroy the wtap instances +# + vis_map - to setup the visibility map between wtap instances +# + vimage - to configure/destroy vtap nodes + +# The name of the test that will be printed in the begining +TEST_NBR="009" +TEST_NAME="test mesh peer code w/ ACL policy" + +# Return value from this test, 0 success failure otherwise +TEST_RESULT=127 + +# The number of nodes to test +NBR_NODES=2 + +# The subnet prefix +IP_SUBNET="192.168.2." + +cmd() +{ + echo "***${TEST_NBR}*** " $* + $* +} + +info() +{ + echo "***${TEST_NBR}*** " $* +} + +descr() +{ + cat < B + +* node A filters out B with ACL deny policy +* node B should not flood with PEER OPEN + +EOL +} + +setup() +{ + # Initialize output file + info "TEST: ${TEST_NAME}" + info `date` + + # load mac ACL policy + cmd kldload wlan_acl + + # Create wtap/vimage nodes + for i in `seq 1 ${NBR_NODES}`; do + wtap_if="`expr $i - 1`" + info "Setup: vimage $i - wtap$wtap_if" + cmd vimage -c $i + cmd wtap c $wtap_if + done + + # Set visibility for each node to see the + # next node. + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + j="`expr ${i} + 1`" + cmd vis_map a $i $j + cmd vis_map a $j $i + done + + # Makes the visibility map plugin deliver packets to resp. dest. + cmd vis_map o + + # Create each wlan subinterface, place into the correct vnet + for i in `seq 0 ${n}`; do + vnet="`expr ${i} + 1`" + cmd ifconfig wlan${i} create wlandev wtap${i} wlanmode mesh + if [ ${i} = 0 ]; then + cmd ifconfig wlan${i} mac:add 00:98:9a:98:96:98 + cmd ifconfig wlan${i} mac:deny + fi + cmd ifconfig wlan${i} meshid mymesh + cmd wlandebug -i wlan${i} mesh + cmd ifconfig wlan${i} vnet ${vnet} + cmd jexec ${vnet} ifconfig wlan${i} up + cmd jexec ${vnet} ifconfig wlan${i} inet ${IP_SUBNET}${vnet} + done +} + +run() +{ + NBR_TESTS=1 NBR_FAIL=0 + + cmd sleep 10 + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + vnet="`expr ${i} + 1`" + cmd cat /dev/wtap${i} > wtap${i}.debug + done + TMP=`cat wtap${i}.debug | grep "send PEER OPEN" | wc -l` + + if [ $TMP -gt "3" ]; then # 3 is just random, should read from sysctl. + info "node B is flooding!" + NBR_FAIL="`expr ${NBR_FAIL} + 1`" + fi + + if [ $NBR_FAIL = 0 ]; then + info "ALL TESTS PASSED" + TEST_RESULT=0 + else + info "FAILED ${NBR_FAIL} of ${NBR_TESTS} TESTS" + fi +} + +teardown() +{ + cmd vis_map c + # Unlink all links + # XXX: this is a limitation of the current plugin, + # no way to reset vis_map without unload wtap. + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + j="`expr ${i} + 1`" + cmd vis_map d $i $j + cmd vis_map d $j $i + done + n="`expr ${NBR_NODES} - 1`" + for i in `seq 0 ${n}`; do + vnet="`expr ${i} + 1`" + cmd cat /dev/wtap${i} >> wtap${i}.debug + cmd jexec ${vnet} ifconfig wlan${i} destroy + done + for i in `seq 1 ${NBR_NODES}`; do + wtap_if="`expr $i - 1`" + cmd wtap d ${wtap_if} + cmd vimage -d ${i} + done + + # unload mac ACL policy + cmd kldunload wlan_acl + + exit ${TEST_RESULT} +} + +EXEC_SETUP=0 +EXEC_RUN=0 +EXEC_TEARDOWN=0 +while [ "$#" -gt "0" ] +do + case $1 in + 'all') + EXEC_SETUP=1 + EXEC_RUN=1 + EXEC_TEARDOWN=1 + ;; + 'setup') + EXEC_SETUP=1 + ;; + 'run') + EXEC_RUN=1 + ;; + 'teardown') + EXEC_TEARDOWN=1 + ;; + 'descr') + descr + exit 0 + ;; + *) + echo "$0 {all | setup | run | teardown | descr}" + exit 127 + ;; + esac + shift +done + +if [ $EXEC_SETUP = 1 ]; then + setup +fi +if [ $EXEC_RUN = 1 ]; then + run +fi +if [ $EXEC_TEARDOWN = 1 ]; then + teardown +fi + +exit 0 + From owner-svn-src-projects@FreeBSD.ORG Thu Jul 26 18:13:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B4314106566B; Thu, 26 Jul 2012 18:13:22 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8646F8FC0C; Thu, 26 Jul 2012 18:13:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6QIDMXO011826; Thu, 26 Jul 2012 18:13:22 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6QIDMQV011822; Thu, 26 Jul 2012 18:13:22 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201207261813.q6QIDMQV011822@svn.freebsd.org> From: Davide Italiano Date: Thu, 26 Jul 2012 18:13:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238814 - in projects/calloutng/sys: kern sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 18:13:22 -0000 Author: davide Date: Thu Jul 26 18:13:21 2012 New Revision: 238814 URL: http://svn.freebsd.org/changeset/base/238814 Log: Introduce tsleep_bt() function as part of the sleep(9) KPI. Use it in kern_nanosleep() so that we don't need to duplicate _sleep() code. Modified: projects/calloutng/sys/kern/kern_synch.c projects/calloutng/sys/kern/kern_time.c projects/calloutng/sys/sys/systm.h Modified: projects/calloutng/sys/kern/kern_synch.c ============================================================================== --- projects/calloutng/sys/kern/kern_synch.c Thu Jul 26 17:30:34 2012 (r238813) +++ projects/calloutng/sys/kern/kern_synch.c Thu Jul 26 18:13:21 2012 (r238814) @@ -162,7 +162,7 @@ _sleep(void *ident, struct lock_object * #endif WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, "Sleeping on \"%s\"", wmesg); - KASSERT(timo != 0 || mtx_owned(&Giant) || lock != NULL, + KASSERT(timo != 0 || bt != NULL || mtx_owned(&Giant) || lock != NULL, ("sleeping without a lock")); KASSERT(p != NULL, ("msleep1")); KASSERT(ident != NULL && TD_IS_RUNNING(td), ("msleep")); @@ -242,9 +242,9 @@ _sleep(void *ident, struct lock_object * lock_state = class->lc_unlock(lock); sleepq_lock(ident); } - if ((timo || bt) && catch) + if ((timo != 0 || bt != NULL) && catch) rval = sleepq_timedwait_sig(ident, pri); - else if (timo || bt) + else if (timo != 0 || bt != NULL) rval = sleepq_timedwait(ident, pri); else if (catch) rval = sleepq_wait_sig(ident, pri); Modified: projects/calloutng/sys/kern/kern_time.c ============================================================================== --- projects/calloutng/sys/kern/kern_time.c Thu Jul 26 17:30:34 2012 (r238813) +++ projects/calloutng/sys/kern/kern_time.c Thu Jul 26 18:13:21 2012 (r238814) @@ -365,10 +365,8 @@ kern_nanosleep(struct thread *td, struct timespec2bintime(rqt, &tmp); bintime_add(&bt,&tmp); for (;;) { - sleepq_lock(&nanowait); - sleepq_add(&nanowait, NULL, "nanslp", PWAIT | PCATCH, 0); - sleepq_set_timeout_bt(&nanowait, &bt, C_DIRECT_EXEC); - error = sleepq_timedwait_sig(&nanowait, PWAIT | PCATCH); + error = tsleep_bt(&nanowait, PWAIT | PCATCH, "nanslp", &bt, + C_DIRECT_EXEC); binuptime(&bt2); if (error != EWOULDBLOCK) { if (error == ERESTART) Modified: projects/calloutng/sys/sys/systm.h ============================================================================== --- projects/calloutng/sys/sys/systm.h Thu Jul 26 17:30:34 2012 (r238813) +++ projects/calloutng/sys/sys/systm.h Thu Jul 26 18:13:21 2012 (r238814) @@ -356,6 +356,8 @@ int msleep_spin(void *chan, struct mtx * int pause(const char *wmesg, int timo); #define tsleep(chan, pri, wmesg, timo) \ _sleep((chan), NULL, (pri), (wmesg), (timo), NULL, 0) +#define tsleep_bt(chan, pri, wmesg, bt, flags) \ + _sleep((chan), NULL, (pri), (wmesg), 0, (bt), (flags)) void wakeup(void *chan) __nonnull(1); void wakeup_one(void *chan) __nonnull(1); From owner-svn-src-projects@FreeBSD.ORG Thu Jul 26 18:15:48 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A06D0106566B; Thu, 26 Jul 2012 18:15:48 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8BE1F8FC08; Thu, 26 Jul 2012 18:15:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6QIFmpY012142; Thu, 26 Jul 2012 18:15:48 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6QIFmZS012140; Thu, 26 Jul 2012 18:15:48 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201207261815.q6QIFmZS012140@svn.freebsd.org> From: Davide Italiano Date: Thu, 26 Jul 2012 18:15:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238815 - projects/calloutng/sys/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 18:15:48 -0000 Author: davide Date: Thu Jul 26 18:15:48 2012 New Revision: 238815 URL: http://svn.freebsd.org/changeset/base/238815 Log: Fix a braino. Modified: projects/calloutng/sys/sys/callout.h Modified: projects/calloutng/sys/sys/callout.h ============================================================================== --- projects/calloutng/sys/sys/callout.h Thu Jul 26 18:13:21 2012 (r238814) +++ projects/calloutng/sys/sys/callout.h Thu Jul 26 18:15:48 2012 (r238815) @@ -48,7 +48,7 @@ #define CALLOUT_SHAREDLOCK 0x0020 /* callout lock held in shared mode */ #define CALLOUT_DFRMIGRATION 0x0040 /* callout in deferred migration mode */ #define CALLOUT_PROCESSED 0x0080 /* callout in wheel or processing list? */ -#define CALLOUT_DIRECT 0x1000 /* allow exec from hw int context */ +#define CALLOUT_DIRECT 0x0100 /* allow exec from hw int context */ #define C_DIRECT_EXEC 0x0001 /* direct execution of callout */ #define C_P1S 0x0002 /* fields related to precision */ From owner-svn-src-projects@FreeBSD.ORG Fri Jul 27 08:25:38 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF8F71065670; Fri, 27 Jul 2012 08:25:38 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9B07B8FC1A; Fri, 27 Jul 2012 08:25:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6R8PcPc082720; Fri, 27 Jul 2012 08:25:38 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6R8PcC4082718; Fri, 27 Jul 2012 08:25:38 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201207270825.q6R8PcC4082718@svn.freebsd.org> From: Mark Linimon Date: Fri, 27 Jul 2012 08:25:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238826 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2012 08:25:38 -0000 Author: linimon (doc,ports committer) Date: Fri Jul 27 08:25:37 2012 New Revision: 238826 URL: http://svn.freebsd.org/changeset/base/238826 Log: Allow PKGNG line to be commented out in make.conf, and check its value as well. Modified: projects/portbuild/scripts/buildscript Modified: projects/portbuild/scripts/buildscript ============================================================================== --- projects/portbuild/scripts/buildscript Fri Jul 27 08:24:12 2012 (r238825) +++ projects/portbuild/scripts/buildscript Fri Jul 27 08:25:37 2012 (r238826) @@ -166,7 +166,7 @@ pkg_sufx=${PKG_SUFX} # Use pkgng if available. #if [ -x /usr/sbin/pkg ]; then use_pkgng="no" -grep -q WITH_PKGNG /etc/make.conf && use_pkgng="yes" +grep "^WITH_PKGNG[ ]*=" make.conf.* | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" # Keep restricted distfiles in a subdirectory for extra protection # against leakage From owner-svn-src-projects@FreeBSD.ORG Fri Jul 27 14:48:42 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1BC2C1065672; Fri, 27 Jul 2012 14:48:42 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 07AC38FC16; Fri, 27 Jul 2012 14:48:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6REmfRC016716; Fri, 27 Jul 2012 14:48:41 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6REmfWE016714; Fri, 27 Jul 2012 14:48:41 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201207271448.q6REmfWE016714@svn.freebsd.org> From: Mark Linimon Date: Fri, 27 Jul 2012 14:48:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238845 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2012 14:48:42 -0000 Author: linimon (doc,ports committer) Date: Fri Jul 27 14:48:41 2012 New Revision: 238845 URL: http://svn.freebsd.org/changeset/base/238845 Log: Remember not to check in test lines that don't work in production. Reminded by: bapt Modified: projects/portbuild/scripts/buildscript Modified: projects/portbuild/scripts/buildscript ============================================================================== --- projects/portbuild/scripts/buildscript Fri Jul 27 13:57:28 2012 (r238844) +++ projects/portbuild/scripts/buildscript Fri Jul 27 14:48:41 2012 (r238845) @@ -166,7 +166,7 @@ pkg_sufx=${PKG_SUFX} # Use pkgng if available. #if [ -x /usr/sbin/pkg ]; then use_pkgng="no" -grep "^WITH_PKGNG[ ]*=" make.conf.* | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" +grep "^WITH_PKGNG[ ]*=" make.conf | sed -e "s/.*=//;s/ //" | grep "[Yy][Ee][Ss]$" && use_pkgng="yes" # Keep restricted distfiles in a subdirectory for extra protection # against leakage From owner-svn-src-projects@FreeBSD.ORG Sat Jul 28 07:42:31 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 38E021065670; Sat, 28 Jul 2012 07:42:31 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1968A8FC0C; Sat, 28 Jul 2012 07:42:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6S7gUnw098424; Sat, 28 Jul 2012 07:42:30 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6S7gUTw098419; Sat, 28 Jul 2012 07:42:30 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201207280742.q6S7gUTw098419@svn.freebsd.org> From: Andrew Turner Date: Sat, 28 Jul 2012 07:42:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238859 - projects/arm_eabi/usr.bin/sort X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jul 2012 07:42:31 -0000 Author: andrew Date: Sat Jul 28 07:42:30 2012 New Revision: 238859 URL: http://svn.freebsd.org/changeset/base/238859 Log: Allow sort to compile on ARM by fixing the wchar_t/wint_t type used Modified: projects/arm_eabi/usr.bin/sort/bwstring.c projects/arm_eabi/usr.bin/sort/coll.c projects/arm_eabi/usr.bin/sort/coll.h projects/arm_eabi/usr.bin/sort/sort.h Modified: projects/arm_eabi/usr.bin/sort/bwstring.c ============================================================================== --- projects/arm_eabi/usr.bin/sort/bwstring.c Sat Jul 28 07:28:08 2012 (r238858) +++ projects/arm_eabi/usr.bin/sort/bwstring.c Sat Jul 28 07:42:30 2012 (r238859) @@ -479,7 +479,7 @@ bwsfwrite(struct bwstring *bws, FILE *f, struct bwstring * bwsfgetln(FILE *f, size_t *len, bool zero_ended, struct reader_buffer *rb) { - wchar_t eols; + wint_t eols; eols = zero_ended ? btowc('\0') : btowc('\n'); @@ -494,7 +494,7 @@ bwsfgetln(FILE *f, size_t *len, bool zer return (NULL); } if (*len > 0) { - if (ret[*len - 1] == eols) + if (ret[*len - 1] == (wchar_t)eols) --(*len); } return (bwssbdup(ret, *len)); @@ -516,8 +516,6 @@ bwsfgetln(FILE *f, size_t *len, bool zer return (bwscsbdup(ret, *len)); } else { - wchar_t c = 0; - *len = 0; if (feof(f)) @@ -532,6 +530,8 @@ bwsfgetln(FILE *f, size_t *len, bool zer if (MB_CUR_MAX == 1) while (!feof(f)) { + int c; + c = fgetc(f); if (c == EOF) { @@ -553,6 +553,8 @@ bwsfgetln(FILE *f, size_t *len, bool zer } else while (!feof(f)) { + wint_t c = 0; + c = fgetwc(f); if (c == WEOF) { Modified: projects/arm_eabi/usr.bin/sort/coll.c ============================================================================== --- projects/arm_eabi/usr.bin/sort/coll.c Sat Jul 28 07:28:08 2012 (r238858) +++ projects/arm_eabi/usr.bin/sort/coll.c Sat Jul 28 07:42:30 2012 (r238859) @@ -47,11 +47,11 @@ __FBSDID("$FreeBSD$"); struct key_specs *keys; size_t keys_num = 0; -wchar_t symbol_decimal_point = L'.'; +wint_t symbol_decimal_point = L'.'; /* there is no default thousands separator in collate rules: */ -wchar_t symbol_thousands_sep = 0; -wchar_t symbol_negative_sign = L'-'; -wchar_t symbol_positive_sign = L'+'; +wint_t symbol_thousands_sep = 0; +wint_t symbol_negative_sign = L'-'; +wint_t symbol_positive_sign = L'+'; static int wstrcoll(struct key_value *kv1, struct key_value *kv2, size_t offset); static int gnumcoll(struct key_value*, struct key_value *, size_t offset); @@ -277,7 +277,7 @@ skip_fields_to_start(const struct bwstri size_t cpos = 0; while (cpos < BWSLEN(s)) { - if (BWS_GET(s,cpos) == sort_opts_vals.field_sep) { + if (BWS_GET(s,cpos) == (wchar_t)sort_opts_vals.field_sep) { --fields; if (fields <= 1) return (cpos + 1); @@ -328,7 +328,7 @@ find_field_end(const struct bwstring *s, next_field_start = skip_fields_to_start(s, f2 + 1, &empty_field); if ((next_field_start > 0) && sort_opts_vals.tflag && - (sort_opts_vals.field_sep == BWS_GET(s, + ((wchar_t)sort_opts_vals.field_sep == BWS_GET(s, next_field_start - 1))) --next_field_start; } else @@ -711,7 +711,7 @@ read_number(struct bwstring *s0, int *si while (iswblank(bws_get_iter_value(s))) s = bws_iterator_inc(s, 1); - if (bws_get_iter_value(s) == symbol_negative_sign) { + if (bws_get_iter_value(s) == (wchar_t)symbol_negative_sign) { *sign = -1; s = bws_iterator_inc(s, 1); } @@ -727,7 +727,7 @@ read_number(struct bwstring *s0, int *si s = bws_iterator_inc(s, 1); *main_len += 1; } else if (symbol_thousands_sep && - (bws_get_iter_value(s) == symbol_thousands_sep)) + (bws_get_iter_value(s) == (wchar_t)symbol_thousands_sep)) s = bws_iterator_inc(s, 1); else break; @@ -735,7 +735,7 @@ read_number(struct bwstring *s0, int *si smain[*main_len] = 0; - if (bws_get_iter_value(s) == symbol_decimal_point) { + if (bws_get_iter_value(s) == (wchar_t)symbol_decimal_point) { s = bws_iterator_inc(s, 1); while (iswdigit(bws_get_iter_value(s)) && *frac_len < MAX_NUM_SIZE) { Modified: projects/arm_eabi/usr.bin/sort/coll.h ============================================================================== --- projects/arm_eabi/usr.bin/sort/coll.h Sat Jul 28 07:28:08 2012 (r238858) +++ projects/arm_eabi/usr.bin/sort/coll.h Sat Jul 28 07:42:30 2012 (r238859) @@ -133,12 +133,12 @@ extern struct key_specs *keys; extern size_t keys_num; /* - * Main localised symbols + * Main localised symbols. These must be wint_t as they may hold WEOF. */ -extern wchar_t symbol_decimal_point; -extern wchar_t symbol_thousands_sep; -extern wchar_t symbol_negative_sign; -extern wchar_t symbol_positive_sign; +extern wint_t symbol_decimal_point; +extern wint_t symbol_thousands_sep; +extern wint_t symbol_negative_sign; +extern wint_t symbol_positive_sign; /* funcs */ Modified: projects/arm_eabi/usr.bin/sort/sort.h ============================================================================== --- projects/arm_eabi/usr.bin/sort/sort.h Sat Jul 28 07:28:08 2012 (r238858) +++ projects/arm_eabi/usr.bin/sort/sort.h Sat Jul 28 07:42:30 2012 (r238859) @@ -77,7 +77,7 @@ extern MD5_CTX md5_ctx; */ struct sort_opts { - wchar_t field_sep; + wint_t field_sep; int sort_method; bool cflag; bool csilentflag; From owner-svn-src-projects@FreeBSD.ORG Sat Jul 28 07:56:24 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A23E11065674; Sat, 28 Jul 2012 07:56:24 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 888278FC12; Sat, 28 Jul 2012 07:56:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6S7uO51099620; Sat, 28 Jul 2012 07:56:24 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6S7uOik099592; Sat, 28 Jul 2012 07:56:24 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201207280756.q6S7uOik099592@svn.freebsd.org> From: Andrew Turner Date: Sat, 28 Jul 2012 07:56:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238860 - in projects/arm_eabi: . bin/cat bin/ps bin/sh bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma c... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Jul 2012 07:56:24 -0000 Author: andrew Date: Sat Jul 28 07:56:23 2012 New Revision: 238860 URL: http://svn.freebsd.org/changeset/base/238860 Log: MFC to r238858 Added: projects/arm_eabi/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r238858, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/arm_eabi/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r238858, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/arm_eabi/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sizeof/err.D_SIZEOF_TYPE.badstruct.d - copied unchanged from r238858, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/sizeof/err.D_SIZEOF_TYPE.badstruct.d projects/arm_eabi/contrib/dtc/dtdiff - copied unchanged from r238858, head/contrib/dtc/dtdiff projects/arm_eabi/contrib/dtc/fdtdump.c - copied unchanged from r238858, head/contrib/dtc/fdtdump.c projects/arm_eabi/contrib/dtc/fdtget.c - copied unchanged from r238858, head/contrib/dtc/fdtget.c projects/arm_eabi/contrib/dtc/fdtput.c - copied unchanged from r238858, head/contrib/dtc/fdtput.c projects/arm_eabi/contrib/dtc/libfdt/fdt_empty_tree.c - copied unchanged from r238858, head/contrib/dtc/libfdt/fdt_empty_tree.c projects/arm_eabi/contrib/libarchive/libarchive/archive_getdate.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/archive_getdate.c projects/arm_eabi/contrib/libarchive/libarchive/archive_match.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/archive_match.c projects/arm_eabi/contrib/libarchive/libarchive/archive_pathmatch.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/archive_pathmatch.c projects/arm_eabi/contrib/libarchive/libarchive/archive_pathmatch.h - copied unchanged from r238858, head/contrib/libarchive/libarchive/archive_pathmatch.h projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/archive_write_add_filter.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_getdate.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/test/test_archive_getdate.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_match_owner.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/test/test_archive_match_owner.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_match_path.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/test/test_archive_match_path.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_match_time.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/test/test_archive_match_time.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_pathmatch.c - copied unchanged from r238858, head/contrib/libarchive/libarchive/test/test_archive_pathmatch.c projects/arm_eabi/contrib/libarchive/tar/test/test_format_newc.c - copied unchanged from r238858, head/contrib/libarchive/tar/test/test_format_newc.c projects/arm_eabi/contrib/libarchive/tar/test/test_option_nodump.c - copied unchanged from r238858, head/contrib/libarchive/tar/test/test_option_nodump.c projects/arm_eabi/lib/libc/locale/iswalnum_l.3 - copied unchanged from r238858, head/lib/libc/locale/iswalnum_l.3 projects/arm_eabi/lib/msun/ld128/s_expl.c - copied unchanged from r238858, head/lib/msun/ld128/s_expl.c projects/arm_eabi/lib/msun/ld80/s_expl.c - copied unchanged from r238858, head/lib/msun/ld80/s_expl.c projects/arm_eabi/share/dtrace/hotopen - copied unchanged from r238858, head/share/dtrace/hotopen projects/arm_eabi/share/dtrace/nfsattrstats - copied unchanged from r238858, head/share/dtrace/nfsattrstats projects/arm_eabi/share/examples/libusb20/ - copied from r238858, head/share/examples/libusb20/ projects/arm_eabi/sys/arm/at91/at91_pio_sam9g45.h - copied unchanged from r238858, head/sys/arm/at91/at91_pio_sam9g45.h projects/arm_eabi/sys/arm/at91/at91sam9g45.c - copied unchanged from r238858, head/sys/arm/at91/at91sam9g45.c projects/arm_eabi/sys/arm/at91/at91sam9g45reg.h - copied unchanged from r238858, head/sys/arm/at91/at91sam9g45reg.h projects/arm_eabi/sys/arm/at91/board_sam9260ek.c - copied unchanged from r238858, head/sys/arm/at91/board_sam9260ek.c projects/arm_eabi/sys/arm/at91/board_sn9g45.c - copied unchanged from r238858, head/sys/arm/at91/board_sn9g45.c projects/arm_eabi/sys/arm/at91/std.at91sam9g45 - copied unchanged from r238858, head/sys/arm/at91/std.at91sam9g45 projects/arm_eabi/sys/arm/at91/std.sam9260ek - copied unchanged from r238858, head/sys/arm/at91/std.sam9260ek projects/arm_eabi/sys/arm/at91/std.sn9g45 - copied unchanged from r238858, head/sys/arm/at91/std.sn9g45 projects/arm_eabi/sys/arm/conf/SAM9260EK - copied unchanged from r238858, head/sys/arm/conf/SAM9260EK projects/arm_eabi/sys/arm/conf/SAM9260EK.hints - copied unchanged from r238858, head/sys/arm/conf/SAM9260EK.hints projects/arm_eabi/sys/arm/conf/SN9G45 - copied unchanged from r238858, head/sys/arm/conf/SN9G45 projects/arm_eabi/sys/contrib/libfdt/fdt_empty_tree.c - copied unchanged from r238858, head/sys/contrib/libfdt/fdt_empty_tree.c projects/arm_eabi/sys/dev/ahci/ahciem.c - copied unchanged from r238858, head/sys/dev/ahci/ahciem.c projects/arm_eabi/sys/dev/ath/if_ath_tx_edma.c - copied unchanged from r238858, head/sys/dev/ath/if_ath_tx_edma.c projects/arm_eabi/sys/dev/ath/if_ath_tx_edma.h - copied unchanged from r238858, head/sys/dev/ath/if_ath_tx_edma.h projects/arm_eabi/tools/build/options/WITH_BSDCONFIG - copied unchanged from r238858, head/tools/build/options/WITH_BSDCONFIG projects/arm_eabi/tools/regression/bin/sh/builtins/local1.0 - copied unchanged from r238858, head/tools/regression/bin/sh/builtins/local1.0 projects/arm_eabi/tools/regression/bin/sh/expansion/export2.0 - copied unchanged from r238858, head/tools/regression/bin/sh/expansion/export2.0 projects/arm_eabi/tools/regression/bin/sh/expansion/export3.0 - copied unchanged from r238858, head/tools/regression/bin/sh/expansion/export3.0 projects/arm_eabi/tools/regression/bin/sh/expansion/local1.0 - copied unchanged from r238858, head/tools/regression/bin/sh/expansion/local1.0 projects/arm_eabi/tools/regression/bin/sh/expansion/local2.0 - copied unchanged from r238858, head/tools/regression/bin/sh/expansion/local2.0 projects/arm_eabi/tools/regression/bin/sh/expansion/readonly1.0 - copied unchanged from r238858, head/tools/regression/bin/sh/expansion/readonly1.0 projects/arm_eabi/tools/tools/ath/athratestats/ - copied from r238858, head/tools/tools/ath/athratestats/ projects/arm_eabi/usr.sbin/bsdconfig/ - copied from r238858, head/usr.sbin/bsdconfig/ Deleted: projects/arm_eabi/contrib/dtc/Makefile.convert-dtsv0 projects/arm_eabi/contrib/dtc/Makefile.ftdump projects/arm_eabi/contrib/dtc/convert-dtsv0-lexer.l projects/arm_eabi/contrib/dtc/ftdump.c projects/arm_eabi/contrib/libarchive/cpio/test/test_pathmatch.c projects/arm_eabi/contrib/libarchive/libarchive_fe/matching.c projects/arm_eabi/contrib/libarchive/libarchive_fe/matching.h projects/arm_eabi/contrib/libarchive/libarchive_fe/pathmatch.c projects/arm_eabi/contrib/libarchive/libarchive_fe/pathmatch.h projects/arm_eabi/contrib/libarchive/tar/getdate.c projects/arm_eabi/contrib/libarchive/tar/test/test_getdate.c projects/arm_eabi/contrib/libarchive/tar/tree.c projects/arm_eabi/contrib/libarchive/tar/tree.h projects/arm_eabi/sys/arm/at91/at91_pio_rm9200.h projects/arm_eabi/sys/arm/at91/hints.at91rm9200 projects/arm_eabi/sys/arm/at91/hints.at91sam9261 projects/arm_eabi/sys/vm/vm_contig.c Modified: projects/arm_eabi/ObsoleteFiles.inc projects/arm_eabi/UPDATING projects/arm_eabi/bin/cat/cat.c projects/arm_eabi/bin/ps/print.c projects/arm_eabi/bin/sh/eval.c projects/arm_eabi/bin/sh/exec.c projects/arm_eabi/bin/sh/exec.h projects/arm_eabi/bin/sh/jobs.c projects/arm_eabi/bin/sh/jobs.h projects/arm_eabi/bin/sh/sh.1 projects/arm_eabi/bin/sh/trap.c projects/arm_eabi/bin/stty/extern.h projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/arm_eabi/contrib/bind9/CHANGES projects/arm_eabi/contrib/bind9/lib/dns/resolver.c projects/arm_eabi/contrib/bind9/lib/dns/zone.c projects/arm_eabi/contrib/bind9/version projects/arm_eabi/contrib/dtc/Documentation/dts-format.txt projects/arm_eabi/contrib/dtc/Documentation/manual.txt projects/arm_eabi/contrib/dtc/Makefile projects/arm_eabi/contrib/dtc/checks.c projects/arm_eabi/contrib/dtc/data.c projects/arm_eabi/contrib/dtc/dtc-lexer.l projects/arm_eabi/contrib/dtc/dtc-parser.y projects/arm_eabi/contrib/dtc/dtc.c projects/arm_eabi/contrib/dtc/dtc.h projects/arm_eabi/contrib/dtc/flattree.c projects/arm_eabi/contrib/dtc/fstree.c projects/arm_eabi/contrib/dtc/libfdt/Makefile.libfdt projects/arm_eabi/contrib/dtc/libfdt/fdt.c projects/arm_eabi/contrib/dtc/libfdt/fdt_ro.c projects/arm_eabi/contrib/dtc/libfdt/fdt_rw.c projects/arm_eabi/contrib/dtc/libfdt/libfdt.h projects/arm_eabi/contrib/dtc/libfdt/libfdt_env.h projects/arm_eabi/contrib/dtc/libfdt/libfdt_internal.h projects/arm_eabi/contrib/dtc/livetree.c projects/arm_eabi/contrib/dtc/srcpos.c projects/arm_eabi/contrib/dtc/srcpos.h projects/arm_eabi/contrib/dtc/treesource.c projects/arm_eabi/contrib/dtc/util.c projects/arm_eabi/contrib/dtc/util.h projects/arm_eabi/contrib/gcc/config/arm/freebsd.h projects/arm_eabi/contrib/gcc/config/i386/freebsd.h projects/arm_eabi/contrib/gcc/config/i386/freebsd64.h projects/arm_eabi/contrib/gcc/config/ia64/freebsd.h projects/arm_eabi/contrib/gcc/config/mips/freebsd.h projects/arm_eabi/contrib/gcc/config/rs6000/freebsd.h projects/arm_eabi/contrib/gcc/config/sparc/freebsd.h projects/arm_eabi/contrib/groff/tmac/doc-common projects/arm_eabi/contrib/groff/tmac/doc-syms projects/arm_eabi/contrib/groff/tmac/doc.tmac projects/arm_eabi/contrib/groff/tmac/groff_mdoc.man projects/arm_eabi/contrib/less/NEWS projects/arm_eabi/contrib/less/README projects/arm_eabi/contrib/less/brac.c projects/arm_eabi/contrib/less/ch.c projects/arm_eabi/contrib/less/charset.c projects/arm_eabi/contrib/less/charset.h projects/arm_eabi/contrib/less/cmd.h projects/arm_eabi/contrib/less/cmdbuf.c projects/arm_eabi/contrib/less/command.c projects/arm_eabi/contrib/less/cvt.c projects/arm_eabi/contrib/less/decode.c projects/arm_eabi/contrib/less/defines.ds projects/arm_eabi/contrib/less/defines.o2 projects/arm_eabi/contrib/less/defines.o9 projects/arm_eabi/contrib/less/defines.wn projects/arm_eabi/contrib/less/edit.c projects/arm_eabi/contrib/less/filename.c projects/arm_eabi/contrib/less/forwback.c projects/arm_eabi/contrib/less/funcs.h projects/arm_eabi/contrib/less/help.c projects/arm_eabi/contrib/less/ifile.c projects/arm_eabi/contrib/less/input.c projects/arm_eabi/contrib/less/jump.c projects/arm_eabi/contrib/less/less.h projects/arm_eabi/contrib/less/less.hlp projects/arm_eabi/contrib/less/less.man projects/arm_eabi/contrib/less/less.nro projects/arm_eabi/contrib/less/lessecho.c projects/arm_eabi/contrib/less/lessecho.man projects/arm_eabi/contrib/less/lessecho.nro projects/arm_eabi/contrib/less/lesskey.c projects/arm_eabi/contrib/less/lesskey.h projects/arm_eabi/contrib/less/lesskey.man projects/arm_eabi/contrib/less/lesskey.nro projects/arm_eabi/contrib/less/lglob.h projects/arm_eabi/contrib/less/line.c projects/arm_eabi/contrib/less/linenum.c projects/arm_eabi/contrib/less/lsystem.c projects/arm_eabi/contrib/less/main.c projects/arm_eabi/contrib/less/mark.c projects/arm_eabi/contrib/less/mkhelp.c projects/arm_eabi/contrib/less/optfunc.c projects/arm_eabi/contrib/less/option.c projects/arm_eabi/contrib/less/option.h projects/arm_eabi/contrib/less/opttbl.c projects/arm_eabi/contrib/less/os.c projects/arm_eabi/contrib/less/output.c projects/arm_eabi/contrib/less/pattern.c projects/arm_eabi/contrib/less/pattern.h projects/arm_eabi/contrib/less/pckeys.h projects/arm_eabi/contrib/less/position.c projects/arm_eabi/contrib/less/position.h projects/arm_eabi/contrib/less/prompt.c projects/arm_eabi/contrib/less/screen.c projects/arm_eabi/contrib/less/scrsize.c projects/arm_eabi/contrib/less/search.c projects/arm_eabi/contrib/less/signal.c projects/arm_eabi/contrib/less/tags.c projects/arm_eabi/contrib/less/ttyin.c projects/arm_eabi/contrib/less/version.c projects/arm_eabi/contrib/libarchive/FREEBSD-Xlist (contents, props changed) projects/arm_eabi/contrib/libarchive/FREEBSD-upgrade projects/arm_eabi/contrib/libarchive/NEWS projects/arm_eabi/contrib/libarchive/README projects/arm_eabi/contrib/libarchive/cpio/bsdcpio.1 projects/arm_eabi/contrib/libarchive/cpio/cmdline.c projects/arm_eabi/contrib/libarchive/cpio/cpio.c projects/arm_eabi/contrib/libarchive/cpio/cpio.h projects/arm_eabi/contrib/libarchive/cpio/test/main.c projects/arm_eabi/contrib/libarchive/cpio/test/test.h projects/arm_eabi/contrib/libarchive/libarchive/archive.h projects/arm_eabi/contrib/libarchive/libarchive/archive_acl.c projects/arm_eabi/contrib/libarchive/libarchive/archive_check_magic.c projects/arm_eabi/contrib/libarchive/libarchive/archive_endian.h projects/arm_eabi/contrib/libarchive/libarchive/archive_entry.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry.c projects/arm_eabi/contrib/libarchive/libarchive/archive_entry.h projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_acl.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_link_resolver.c projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_linkify.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_paths.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_perms.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_stat.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_stat.c projects/arm_eabi/contrib/libarchive/libarchive/archive_entry_time.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_ppmd7.c projects/arm_eabi/contrib/libarchive/libarchive/archive_private.h projects/arm_eabi/contrib/libarchive/libarchive/archive_read.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_data.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_disk.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_disk_private.h projects/arm_eabi/contrib/libarchive/libarchive/archive_read_extract.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_filter.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_format.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_free.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_header.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_new.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_open.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_open_fd.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_open_filename.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_private.h projects/arm_eabi/contrib/libarchive/libarchive/archive_read_set_options.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_filter_rpm.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_cab.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_cpio.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_mtree.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_xar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/arm_eabi/contrib/libarchive/libarchive/archive_string.c projects/arm_eabi/contrib/libarchive/libarchive/archive_string.h projects/arm_eabi/contrib/libarchive/libarchive/archive_string_composition.h projects/arm_eabi/contrib/libarchive/libarchive/archive_string_sprintf.c projects/arm_eabi/contrib/libarchive/libarchive/archive_util.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_util.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter_compress.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter_program.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_blocksize.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_data.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_disk.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_disk_posix.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_disk_set_standard_lookup.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_filter.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_finish_entry.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_format.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_free.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_header.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_new.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_open.3 projects/arm_eabi/contrib/libarchive/libarchive/archive_write_open_filename.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_private.h projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_ar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_cpio.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_mtree.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_ustar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/arm_eabi/contrib/libarchive/libarchive/archive_write_set_options.3 projects/arm_eabi/contrib/libarchive/libarchive/cpio.5 projects/arm_eabi/contrib/libarchive/libarchive/libarchive-formats.5 projects/arm_eabi/contrib/libarchive/libarchive/libarchive.3 projects/arm_eabi/contrib/libarchive/libarchive/libarchive_changes.3 projects/arm_eabi/contrib/libarchive/libarchive/libarchive_internals.3 projects/arm_eabi/contrib/libarchive/libarchive/tar.5 projects/arm_eabi/contrib/libarchive/libarchive/test/main.c projects/arm_eabi/contrib/libarchive/libarchive/test/read_open_memory.c projects/arm_eabi/contrib/libarchive/libarchive/test/test.h projects/arm_eabi/contrib/libarchive/libarchive/test/test_archive_string_conversion.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_compat_zip.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_7zip.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_cab.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_rar.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_rar_unicode.rar.uu projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_format_tar_filename.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_pax_truncated.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_read_position.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/arm_eabi/contrib/libarchive/libarchive/test/test_write_format_zip.c projects/arm_eabi/contrib/libarchive/libarchive_fe/err.c projects/arm_eabi/contrib/libarchive/libarchive_fe/err.h projects/arm_eabi/contrib/libarchive/tar/bsdtar.1 projects/arm_eabi/contrib/libarchive/tar/bsdtar.c projects/arm_eabi/contrib/libarchive/tar/bsdtar.h projects/arm_eabi/contrib/libarchive/tar/read.c projects/arm_eabi/contrib/libarchive/tar/test/main.c projects/arm_eabi/contrib/libarchive/tar/test/test.h projects/arm_eabi/contrib/libarchive/tar/write.c projects/arm_eabi/etc/mtree/BSD.usr.dist projects/arm_eabi/etc/rc.d/bgfsck projects/arm_eabi/etc/rc.d/ip6addrctl projects/arm_eabi/etc/rc.d/jail projects/arm_eabi/gnu/usr.bin/groff/tmac/Makefile projects/arm_eabi/gnu/usr.bin/groff/tmac/mdoc.local projects/arm_eabi/lib/libarchive/Makefile projects/arm_eabi/lib/libarchive/test/Makefile projects/arm_eabi/lib/libc/locale/Makefile.inc projects/arm_eabi/lib/libc/net/getaddrinfo.c projects/arm_eabi/lib/libc/rpc/getnetpath.c projects/arm_eabi/lib/libc/stdlib/at_quick_exit.3 projects/arm_eabi/lib/libc/stdlib/quick_exit.3 projects/arm_eabi/lib/libc/string/strerror.3 projects/arm_eabi/lib/libc/sys/fcntl.2 projects/arm_eabi/lib/libc/sys/fcntl.c projects/arm_eabi/lib/libedit/el.c projects/arm_eabi/lib/libedit/histedit.h projects/arm_eabi/lib/libedit/makelist projects/arm_eabi/lib/libedit/term.c projects/arm_eabi/lib/libedit/tokenizer.c projects/arm_eabi/lib/libelf/Makefile projects/arm_eabi/lib/libthr/thread/thr_getschedparam.c projects/arm_eabi/lib/libthr/thread/thr_info.c projects/arm_eabi/lib/libthr/thread/thr_setprio.c projects/arm_eabi/lib/libthr/thread/thr_setschedparam.c projects/arm_eabi/lib/msun/Makefile projects/arm_eabi/lib/msun/Symbol.map projects/arm_eabi/lib/msun/man/exp.3 projects/arm_eabi/lib/msun/src/e_exp.c projects/arm_eabi/lib/msun/src/math.h projects/arm_eabi/lib/msun/src/math_private.h projects/arm_eabi/lib/msun/src/s_cbrtl.c projects/arm_eabi/libexec/rtld-elf/rtld.1 projects/arm_eabi/libexec/rtld-elf/rtld.c projects/arm_eabi/libexec/rtld-elf/rtld.h projects/arm_eabi/sbin/geom/class/sched/gsched.8 projects/arm_eabi/sbin/hastd/hast.conf.5 projects/arm_eabi/sbin/ipfw/ipfw.8 projects/arm_eabi/share/dtrace/Makefile projects/arm_eabi/share/examples/Makefile projects/arm_eabi/share/man/man4/ahci.4 projects/arm_eabi/share/man/man4/gpib.4 projects/arm_eabi/share/man/man4/ugen.4 projects/arm_eabi/share/man/man4/uplcom.4 projects/arm_eabi/share/man/man4/uslcom.4 projects/arm_eabi/share/man/man5/moduli.5 projects/arm_eabi/share/man/man5/rc.conf.5 projects/arm_eabi/share/man/man5/src.conf.5 projects/arm_eabi/share/man/man9/ieee80211_node.9 projects/arm_eabi/share/man/man9/kernel_mount.9 projects/arm_eabi/share/man/man9/malloc.9 projects/arm_eabi/share/misc/bsd-family-tree projects/arm_eabi/share/mk/bsd.own.mk projects/arm_eabi/sys/amd64/amd64/cpu_switch.S projects/arm_eabi/sys/amd64/amd64/fpu.c projects/arm_eabi/sys/amd64/amd64/machdep.c projects/arm_eabi/sys/amd64/amd64/pmap.c projects/arm_eabi/sys/amd64/amd64/ptrace_machdep.c projects/arm_eabi/sys/amd64/amd64/trap.c projects/arm_eabi/sys/amd64/amd64/vm_machdep.c projects/arm_eabi/sys/amd64/include/fpu.h projects/arm_eabi/sys/amd64/include/md_var.h projects/arm_eabi/sys/amd64/include/pcpu.h projects/arm_eabi/sys/arm/arm/nexus.c projects/arm_eabi/sys/arm/at91/at91.c projects/arm_eabi/sys/arm/at91/at91_machdep.c projects/arm_eabi/sys/arm/at91/at91_pmc.c projects/arm_eabi/sys/arm/at91/at91_pmcreg.h projects/arm_eabi/sys/arm/at91/at91rm9200_devices.c projects/arm_eabi/sys/arm/at91/at91rm9200var.h projects/arm_eabi/sys/arm/at91/board_bwct.c projects/arm_eabi/sys/arm/at91/board_ethernut5.c projects/arm_eabi/sys/arm/at91/board_hl200.c projects/arm_eabi/sys/arm/at91/board_kb920x.c projects/arm_eabi/sys/arm/at91/board_tsc4370.c projects/arm_eabi/sys/arm/at91/files.at91 projects/arm_eabi/sys/arm/at91/std.atmel projects/arm_eabi/sys/arm/at91/uart_bus_at91usart.c projects/arm_eabi/sys/arm/conf/ATMEL projects/arm_eabi/sys/arm/conf/ETHERNUT5 projects/arm_eabi/sys/arm/conf/ETHERNUT5.hints projects/arm_eabi/sys/arm/econa/econa.c projects/arm_eabi/sys/arm/s3c2xx0/s3c24x0.c projects/arm_eabi/sys/arm/xscale/i8134x/i81342.c projects/arm_eabi/sys/arm/xscale/pxa/pxa_obio.c projects/arm_eabi/sys/boot/arm/at91/bootspi/ee.c projects/arm_eabi/sys/boot/arm/at91/libat91/at91rm9200.h projects/arm_eabi/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c projects/arm_eabi/sys/boot/arm/at91/libat91/eeprom.c projects/arm_eabi/sys/boot/arm/at91/libat91/emac_init.c projects/arm_eabi/sys/boot/arm/at91/libat91/lib_AT91RM9200.h projects/arm_eabi/sys/boot/arm/at91/libat91/spi_flash.c projects/arm_eabi/sys/boot/ficl/Makefile projects/arm_eabi/sys/boot/sparc64/loader/main.c projects/arm_eabi/sys/boot/zfs/Makefile projects/arm_eabi/sys/cam/scsi/scsi_all.c projects/arm_eabi/sys/cam/scsi/scsi_da.c projects/arm_eabi/sys/cam/scsi/scsi_enc_ses.c projects/arm_eabi/sys/cam/scsi/scsi_ses.h projects/arm_eabi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/arm_eabi/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/arm_eabi/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/arm_eabi/sys/compat/ia32/ia32_sysvec.c projects/arm_eabi/sys/compat/ia32/ia32_util.h projects/arm_eabi/sys/conf/Makefile.arm projects/arm_eabi/sys/conf/files projects/arm_eabi/sys/contrib/libfdt/fdt.c projects/arm_eabi/sys/contrib/libfdt/fdt_ro.c projects/arm_eabi/sys/contrib/libfdt/fdt_rw.c projects/arm_eabi/sys/contrib/libfdt/libfdt.h projects/arm_eabi/sys/contrib/libfdt/libfdt_env.h projects/arm_eabi/sys/contrib/libfdt/libfdt_internal.h projects/arm_eabi/sys/contrib/pf/net/pf_if.c projects/arm_eabi/sys/dev/aac/aac_disk.c projects/arm_eabi/sys/dev/ahci/ahci.c projects/arm_eabi/sys/dev/ahci/ahci.h projects/arm_eabi/sys/dev/ata/ata-all.c projects/arm_eabi/sys/dev/ata/ata-lowlevel.c projects/arm_eabi/sys/dev/ath/ath_hal/ah.c projects/arm_eabi/sys/dev/ath/ath_hal/ah.h projects/arm_eabi/sys/dev/ath/ath_hal/ah_desc.h projects/arm_eabi/sys/dev/ath/ath_hal/ah_internal.h projects/arm_eabi/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/arm_eabi/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/arm_eabi/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/arm_eabi/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/arm_eabi/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/arm_eabi/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/arm_eabi/sys/dev/ath/ath_rate/amrr/amrr.c projects/arm_eabi/sys/dev/ath/ath_rate/onoe/onoe.c projects/arm_eabi/sys/dev/ath/ath_rate/sample/sample.c projects/arm_eabi/sys/dev/ath/ath_rate/sample/sample.h projects/arm_eabi/sys/dev/ath/if_ath.c projects/arm_eabi/sys/dev/ath/if_ath_ahb.c projects/arm_eabi/sys/dev/ath/if_ath_beacon.c projects/arm_eabi/sys/dev/ath/if_ath_misc.h projects/arm_eabi/sys/dev/ath/if_ath_pci.c projects/arm_eabi/sys/dev/ath/if_ath_rx.c projects/arm_eabi/sys/dev/ath/if_ath_rx_edma.c projects/arm_eabi/sys/dev/ath/if_ath_sysctl.c projects/arm_eabi/sys/dev/ath/if_ath_tx.c projects/arm_eabi/sys/dev/ath/if_ath_tx.h projects/arm_eabi/sys/dev/ath/if_ath_tx_ht.c projects/arm_eabi/sys/dev/ath/if_athioctl.h projects/arm_eabi/sys/dev/ath/if_athrate.h projects/arm_eabi/sys/dev/ath/if_athvar.h projects/arm_eabi/sys/dev/e1000/if_lem.c projects/arm_eabi/sys/dev/isp/isp.c projects/arm_eabi/sys/dev/ispfw/asm_2300.h projects/arm_eabi/sys/dev/mps/mps_sas_lsi.c projects/arm_eabi/sys/dev/netmap/netmap.c projects/arm_eabi/sys/dev/netmap/netmap_kern.h projects/arm_eabi/sys/dev/netmap/netmap_mem2.c projects/arm_eabi/sys/dev/sdhci/sdhci.c projects/arm_eabi/sys/dev/sym/sym_hipd.c projects/arm_eabi/sys/dev/usb/controller/at91dci_atmelarm.c projects/arm_eabi/sys/dev/usb/controller/ohci_atmelarm.c projects/arm_eabi/sys/dev/usb/controller/xhci_pci.c projects/arm_eabi/sys/dev/usb/controller/xhcireg.h projects/arm_eabi/sys/dev/usb/net/if_udav.c projects/arm_eabi/sys/dev/usb/net/if_udavreg.h projects/arm_eabi/sys/dev/usb/quirk/usb_quirk.c projects/arm_eabi/sys/dev/usb/serial/u3g.c projects/arm_eabi/sys/dev/usb/serial/uplcom.c projects/arm_eabi/sys/dev/usb/serial/uslcom.c projects/arm_eabi/sys/dev/usb/usbdevs projects/arm_eabi/sys/fs/cd9660/cd9660_vfsops.c projects/arm_eabi/sys/fs/ext2fs/ext2_vfsops.c projects/arm_eabi/sys/fs/msdosfs/msdosfs_lookup.c projects/arm_eabi/sys/fs/portalfs/portal_vnops.c projects/arm_eabi/sys/fs/smbfs/smbfs_node.c projects/arm_eabi/sys/fs/udf/udf_vfsops.c projects/arm_eabi/sys/geom/geom.h projects/arm_eabi/sys/geom/geom_subr.c projects/arm_eabi/sys/geom/part/g_part.c projects/arm_eabi/sys/i386/i386/machdep.c projects/arm_eabi/sys/i386/i386/pmap.c projects/arm_eabi/sys/i386/i386/ptrace_machdep.c projects/arm_eabi/sys/i386/i386/trap.c projects/arm_eabi/sys/i386/i386/vm86.c projects/arm_eabi/sys/i386/i386/vm_machdep.c projects/arm_eabi/sys/i386/include/npx.h projects/arm_eabi/sys/i386/include/pcpu.h projects/arm_eabi/sys/i386/isa/npx.c projects/arm_eabi/sys/kern/imgact_aout.c projects/arm_eabi/sys/kern/imgact_elf.c projects/arm_eabi/sys/kern/kern_descrip.c projects/arm_eabi/sys/kern/kern_malloc.c projects/arm_eabi/sys/kern/kern_proc.c projects/arm_eabi/sys/kern/kern_tc.c projects/arm_eabi/sys/mips/mips/pmap.c projects/arm_eabi/sys/modules/ahci/Makefile projects/arm_eabi/sys/modules/ath/Makefile projects/arm_eabi/sys/net/if_stf.c projects/arm_eabi/sys/netgraph/ng_ether.c projects/arm_eabi/sys/netinet/in_var.h projects/arm_eabi/sys/netinet/ip_carp.c projects/arm_eabi/sys/netinet/ip_output.c projects/arm_eabi/sys/netinet/sctp_asconf.c projects/arm_eabi/sys/netinet/sctp_input.c projects/arm_eabi/sys/netinet/sctp_output.c projects/arm_eabi/sys/netinet/sctp_pcb.c projects/arm_eabi/sys/netinet/sctp_uio.h projects/arm_eabi/sys/netinet/sctp_usrreq.c projects/arm_eabi/sys/netinet/sctputil.c projects/arm_eabi/sys/netinet/tcp_input.c projects/arm_eabi/sys/netinet/tcp_output.c projects/arm_eabi/sys/netinet6/sctp6_usrreq.c projects/arm_eabi/sys/netipsec/ipsec_output.c projects/arm_eabi/sys/sys/fcntl.h projects/arm_eabi/sys/sys/refcount.h projects/arm_eabi/sys/sys/stat.h projects/arm_eabi/sys/sys/user.h projects/arm_eabi/sys/ufs/ffs/ffs_snapshot.c projects/arm_eabi/sys/ufs/ffs/ffs_vfsops.c projects/arm_eabi/sys/vm/memguard.c projects/arm_eabi/sys/vm/memguard.h projects/arm_eabi/sys/vm/vm_kern.c projects/arm_eabi/sys/vm/vm_map.h projects/arm_eabi/sys/vm/vm_page.c projects/arm_eabi/sys/vm/vm_pageout.c projects/arm_eabi/sys/vm/vm_pageout.h projects/arm_eabi/sys/vm/vm_reserv.c projects/arm_eabi/sys/x86/include/specialreg.h projects/arm_eabi/sys/x86/x86/tsc.c projects/arm_eabi/tools/build/mk/OptionalObsoleteFiles.inc projects/arm_eabi/tools/tools/ath/Makefile projects/arm_eabi/tools/tools/ath/common/diag.h projects/arm_eabi/tools/tools/sysbuild/sysbuild.sh projects/arm_eabi/usr.bin/Makefile projects/arm_eabi/usr.bin/cpio/Makefile projects/arm_eabi/usr.bin/cpio/test/Makefile projects/arm_eabi/usr.bin/du/du.1 projects/arm_eabi/usr.bin/du/du.c projects/arm_eabi/usr.bin/find/extern.h projects/arm_eabi/usr.bin/find/find.1 projects/arm_eabi/usr.bin/find/find.c projects/arm_eabi/usr.bin/find/function.c projects/arm_eabi/usr.bin/find/main.c projects/arm_eabi/usr.bin/find/option.c projects/arm_eabi/usr.bin/netstat/Makefile projects/arm_eabi/usr.bin/netstat/sctp.c projects/arm_eabi/usr.bin/nfsstat/nfsstat.c projects/arm_eabi/usr.bin/procstat/procstat.1 projects/arm_eabi/usr.bin/procstat/procstat_vm.c projects/arm_eabi/usr.bin/tar/Makefile projects/arm_eabi/usr.bin/tar/test/Makefile projects/arm_eabi/usr.sbin/Makefile projects/arm_eabi/usr.sbin/ipfwpcap/ipfwpcap.8 projects/arm_eabi/usr.sbin/lpr/common_source/common.c projects/arm_eabi/usr.sbin/pkg/pkg.c projects/arm_eabi/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/arm_eabi/ (props changed) projects/arm_eabi/cddl/contrib/opensolaris/ (props changed) projects/arm_eabi/contrib/bind9/ (props changed) projects/arm_eabi/contrib/dtc/ (props changed) projects/arm_eabi/contrib/gcc/ (props changed) projects/arm_eabi/contrib/groff/ (props changed) projects/arm_eabi/contrib/less/ (props changed) projects/arm_eabi/contrib/libarchive/ (props changed) projects/arm_eabi/contrib/libarchive/cpio/ (props changed) projects/arm_eabi/contrib/libarchive/libarchive/ (props changed) projects/arm_eabi/contrib/libarchive/libarchive_fe/ (props changed) projects/arm_eabi/contrib/libarchive/tar/ (props changed) projects/arm_eabi/lib/libc/ (props changed) projects/arm_eabi/sbin/ (props changed) projects/arm_eabi/sbin/ipfw/ (props changed) projects/arm_eabi/share/man/man4/ (props changed) projects/arm_eabi/sys/ (props changed) projects/arm_eabi/sys/boot/ (props changed) projects/arm_eabi/sys/cddl/contrib/opensolaris/ (props changed) projects/arm_eabi/sys/conf/ (props changed) projects/arm_eabi/sys/contrib/libfdt/ (props changed) projects/arm_eabi/sys/contrib/pf/ (props changed) projects/arm_eabi/usr.bin/procstat/ (props changed) Modified: projects/arm_eabi/ObsoleteFiles.inc ============================================================================== --- projects/arm_eabi/ObsoleteFiles.inc Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/ObsoleteFiles.inc Sat Jul 28 07:56:23 2012 (r238860) @@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/arm_eabi/UPDATING ============================================================================== --- projects/arm_eabi/UPDATING Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/UPDATING Sat Jul 28 07:56:23 2012 (r238860) @@ -24,6 +24,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120727: + The sparc64 ZFS loader has been changed to no longer try to auto- + detect ZFS providers based on diskN aliases but now requires these + to be explicitly listed in the OFW boot-device environment variable. + 20120712: The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are Modified: projects/arm_eabi/bin/cat/cat.c ============================================================================== --- projects/arm_eabi/bin/cat/cat.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/cat/cat.c Sat Jul 28 07:56:23 2012 (r238860) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/arm_eabi/bin/ps/print.c ============================================================================== --- projects/arm_eabi/bin/ps/print.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/ps/print.c Sat Jul 28 07:56:23 2012 (r238860) @@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused) size_t buflen = 100; char *buf; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); if (use_ampm < 0) use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); then = k->ki_p->ki_start.tv_sec; @@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused) char *buf; size_t buflen = 100; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); then = k->ki_p->ki_start.tv_sec; (void)strftime(buf, buflen, "%c", localtime(&then)); return (buf); Modified: projects/arm_eabi/bin/sh/eval.c ============================================================================== --- projects/arm_eabi/bin/sh/eval.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/eval.c Sat Jul 28 07:56:23 2012 (r238860) @@ -672,6 +672,52 @@ out: result->fd, result->buf, result->nleft, result->jp)); } +static int +mustexpandto(const char *argtext, const char *mask) +{ + for (;;) { + if (*argtext == CTLQUOTEMARK || *argtext == CTLQUOTEEND) { + argtext++; + continue; + } + if (*argtext == CTLESC) + argtext++; + else if (BASESYNTAX[(int)*argtext] == CCTL) + return (0); + if (*argtext != *mask) + return (0); + if (*argtext == '\0') + return (1); + argtext++; + mask++; + } +} + +static int +isdeclarationcmd(struct narg *arg) +{ + int have_command = 0; + + if (arg == NULL) + return (0); + while (mustexpandto(arg->text, "command")) { + have_command = 1; + arg = &arg->next->narg; + if (arg == NULL) + return (0); + /* + * To also allow "command -p" and "command --" as part of + * a declaration command, add code here. + * We do not do this, as ksh does not do it either and it + * is not required by POSIX. + */ + } + return (mustexpandto(arg->text, "export") || + mustexpandto(arg->text, "readonly") || + (mustexpandto(arg->text, "local") && + (have_command || !isfunc("local")))); +} + /* * Check if a builtin can safely be executed in the same process, * even though it should be in a subshell (command substitution). @@ -743,11 +789,12 @@ evalcommand(union node *cmd, int flags, exitstatus = 0; for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { if (varflag && isassignment(argp->narg.text)) { - expandarg(argp, &varlist, EXP_VARTILDE); + expandarg(argp, varflag == 1 ? &varlist : &arglist, + EXP_VARTILDE); continue; - } + } else if (varflag == 1) + varflag = isdeclarationcmd(&argp->narg) ? 2 : 0; expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); - varflag = 0; } *arglist.lastp = NULL; *varlist.lastp = NULL; Modified: projects/arm_eabi/bin/sh/exec.c ============================================================================== --- projects/arm_eabi/bin/sh/exec.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/exec.c Sat Jul 28 07:56:23 2012 (r238860) @@ -648,6 +648,19 @@ unsetfunc(const char *name) return (0); } + +/* + * Check if a function by a certain name exists. + */ +int +isfunc(const char *name) +{ + struct tblentry *cmdp; + cmdp = cmdlookup(name, 0); + return (cmdp != NULL && cmdp->cmdtype == CMDFUNCTION); +} + + /* * Shared code for the following builtin commands: * type, command -v, command -V Modified: projects/arm_eabi/bin/sh/exec.h ============================================================================== --- projects/arm_eabi/bin/sh/exec.h Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/exec.h Sat Jul 28 07:56:23 2012 (r238860) @@ -72,5 +72,6 @@ void hashcd(void); void changepath(const char *); void defun(const char *, union node *); int unsetfunc(const char *); +int isfunc(const char *); int typecmd_impl(int, char **, int, const char *); void clearcmdentry(void); Modified: projects/arm_eabi/bin/sh/jobs.c ============================================================================== --- projects/arm_eabi/bin/sh/jobs.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/jobs.c Sat Jul 28 07:56:23 2012 (r238860) @@ -84,7 +84,6 @@ static struct job *jobmru; /* most recen static pid_t initialpgrp; /* pgrp of shell on invocation */ #endif int in_waitcmd = 0; /* are we in waitcmd()? */ -int in_dowait = 0; /* are we in dowait()? */ volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */ static int ttyfd = -1; @@ -1023,14 +1022,12 @@ dowait(int block, struct job *job) int sig; int coredump; - in_dowait++; TRACE(("dowait(%d) called\n", block)); do { pid = waitproc(block, &status); TRACE(("wait returns %d, status=%d\n", (int)pid, status)); } while ((pid == -1 && errno == EINTR && breakwaitcmd == 0) || (pid > 0 && WIFSTOPPED(status) && !iflag)); - in_dowait--; if (pid == -1 && errno == ECHILD && job != NULL) job->state = JOBDONE; if (breakwaitcmd != 0) { Modified: projects/arm_eabi/bin/sh/jobs.h ============================================================================== --- projects/arm_eabi/bin/sh/jobs.h Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/jobs.h Sat Jul 28 07:56:23 2012 (r238860) @@ -84,7 +84,6 @@ enum { extern int job_warning; /* user was warned about stopped jobs */ extern int in_waitcmd; /* are we in waitcmd()? */ -extern int in_dowait; /* are we in dowait()? */ extern volatile sig_atomic_t breakwaitcmd; /* break wait to process traps? */ void setjobctl(int); Modified: projects/arm_eabi/bin/sh/sh.1 ============================================================================== --- projects/arm_eabi/bin/sh/sh.1 Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/sh.1 Sat Jul 28 07:56:23 2012 (r238860) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 5, 2011 +.Dd July 15, 2012 .Dt SH 1 .Os .Sh NAME @@ -1164,6 +1164,20 @@ Assignments are expanded differently fro tilde expansion is also performed after the equals sign and after any colon and usernames are also terminated by colons, and field splitting and pathname expansion are not performed. +.Pp +This special expansion applies not only to assignments that form a simple +command by themselves or precede a command word, +but also to words passed to the +.Ic export , +.Ic local +or +.Ic readonly +built-in commands that have this form. +For this, the builtin's name must be literal +(not the result of an expansion) +and may optionally be preceded by one or more literal instances of +.Ic command +without options. .Ss Positional Parameters A positional parameter is a parameter denoted by a number greater than zero. The shell sets these initially to the values of its command line Modified: projects/arm_eabi/bin/sh/trap.c ============================================================================== --- projects/arm_eabi/bin/sh/trap.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/sh/trap.c Sat Jul 28 07:56:23 2012 (r238860) @@ -416,6 +416,7 @@ dotrap(void) in_dotrap++; for (;;) { + pendingsigs = 0; for (i = 1; i < NSIG; i++) { if (gotsig[i]) { gotsig[i] = 0; @@ -467,7 +468,6 @@ dotrap(void) break; } in_dotrap--; - pendingsigs = 0; } Modified: projects/arm_eabi/bin/stty/extern.h ============================================================================== --- projects/arm_eabi/bin/stty/extern.h Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/bin/stty/extern.h Sat Jul 28 07:56:23 2012 (r238860) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Copied: projects/arm_eabi/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r238858, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/arm_eabi/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Sat Jul 28 07:56:23 2012 (r238860, copy of r238858, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + end = strrchr(dld->dtld_library, '/'); + /* dt_lib_depend_add ensures this */ + assert(end != NULL); + if (strcmp(end + 1, dp->d_name) == 0) + break; + } + + if (dld != NULL) { + dt_dprintf("skipping library %s, already processed " + "library with the same name: %s", dp->d_name, + dld->dtld_library); + continue; + } + dtp->dt_filetag = fname; if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) - goto err; + return (-1); /* preserve dt_errno */ rv = dt_compile(dtp, DT_CTX_DPROG, DTRACE_PROBESPEC_NAME, NULL, @@ -2203,7 +2221,7 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons if (rv != NULL && dtp->dt_errno && (dtp->dt_errno != EDT_COMPILER || dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) - goto err; + return (-1); /* preserve dt_errno */ if (dtp->dt_errno) dt_dprintf("error parsing library %s: %s\n", @@ -2214,6 +2232,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons } (void) closedir(dirp); + + return (0); +} + +/* + * Perform a topological sorting of all the libraries found across the entire + * dt_lib_path. Once sorted, compile each one in topological order to cache its + * inlines and translators, etc. We silently ignore any missing directories and + * other files found therein. We only fail (and thereby fail dt_load_libs()) if + * we fail to compile a library and the error is something other than #pragma D + * depends_on. Dependency errors are silently ignored to permit a library + * directory to contain libraries which may not be accessible depending on our + * privileges. + */ +static int +dt_load_libs_sort(dtrace_hdl_t *dtp) +{ + dtrace_prog_t *pgp; + FILE *fp; + dt_lib_depend_t *dld; + /* * Finish building the graph containing the library dependencies * and perform a topological sort to generate an ordered list @@ -2274,7 +2313,14 @@ dt_load_libs(dtrace_hdl_t *dtp) dtp->dt_cflags |= DTRACE_C_NOLIBS; - for (dirp = dt_list_next(&dtp->dt_lib_path); + /* + * /usr/lib/dtrace is always at the head of the list. The rest of the + * list is specified in the precedence order the user requested. Process + * everything other than the head first. DTRACE_C_NOLIBS has already + * been spcified so dt_vopen will ensure that there is always one entry + * in dt_lib_path. + */ + for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path)); dirp != NULL; dirp = dt_list_next(dirp)) { if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { dtp->dt_cflags &= ~DTRACE_C_NOLIBS; @@ -2282,6 +2328,16 @@ dt_load_libs(dtrace_hdl_t *dtp) } } + /* Handle /usr/lib/dtrace */ + dirp = dt_list_next(&dtp->dt_lib_path); + if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { + dtp->dt_cflags &= ~DTRACE_C_NOLIBS; + return (-1); /* errno is set for us */ + } + + if (dt_load_libs_sort(dtp) < 0) + return (-1); /* errno is set for us */ + return (0); } Modified: projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c ============================================================================== --- projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c Sat Jul 28 07:56:23 2012 (r238860) @@ -22,7 +22,7 @@ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -725,12 +725,19 @@ dt_node_type_name(const dt_node_t *dnp, size_t dt_node_type_size(const dt_node_t *dnp) { + ctf_id_t base; + if (dnp->dn_kind == DT_NODE_STRING) return (strlen(dnp->dn_string) + 1); if (dt_node_is_dynamic(dnp) && dnp->dn_ident != NULL) return (dt_ident_size(dnp->dn_ident)); + base = ctf_type_resolve(dnp->dn_ctfp, dnp->dn_type); + + if (ctf_type_kind(dnp->dn_ctfp, base) == CTF_K_FORWARD) + return (0); + return (ctf_type_size(dnp->dn_ctfp, dnp->dn_type)); } Modified: projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c ============================================================================== --- projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sat Jul 28 07:56:23 2012 (r238860) @@ -21,7 +21,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -31,9 +31,13 @@ #if defined(sun) #include #endif +#include #include #include +#include +#include + #include #include #include @@ -201,6 +205,29 @@ dt_pragma_binding(const char *prname, dt dtp->dt_globals->dh_defer = &dt_pragma_apply; } +static void +dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib, + size_t len) +{ + dt_dirpath_t *dirp; + struct stat sbuf; + int found = 0; + + for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL; + dirp = dt_list_next(dirp)) { + (void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname); + + if (stat(lib, &sbuf) == 0) { + found = 1; + break; + } + } + + if (!found) + xyerror(D_PRAGMA_DEPEND, + "failed to find dependency in libpath: %s", lname); +} + /* * The #pragma depends_on directive can be used to express a dependency on a * module, provider or library which if not present will cause processing to @@ -230,16 +257,13 @@ dt_pragma_depends(const char *prname, dt if (yypcb->pcb_cflags & DTRACE_C_CTL) { assert(dtp->dt_filetag != NULL); - /* - * We have the file we are working on in dtp->dt_filetag - * so find that node and add the dependency in. - */ + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); + dld = dt_lib_depend_lookup(&dtp->dt_lib_dep, dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies, lib)) != 0) { xyerror(D_PRAGMA_DEPEND, @@ -261,8 +285,8 @@ dt_pragma_depends(const char *prname, dt dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); dld = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted, lib); assert(dld != NULL); Modified: projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c ============================================================================== --- projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sat Jul 28 07:56:23 2012 (r238860) @@ -29,23 +29,6 @@ #include #include -#include - -/* - * Create a copy of string s, but only duplicate the first n bytes. - */ -char * -strndup(const char *s, size_t n) -{ - char *s2 = malloc(n + 1); - - if (s2 == NULL) - longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); - - (void) strncpy(s2, s, n); - s2[n] = '\0'; - return (s2); -} /* * Transform string s inline, converting each embedded C escape sequence string Modified: projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h ============================================================================== --- projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sat Jul 28 07:56:23 2012 (r238860) @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,14 +19,12 @@ * CDDL HEADER END */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. */ #ifndef _DT_STRING_H #define _DT_STRING_H -#pragma ident "%Z%%M% %I% %E% SMI" #include #include @@ -36,7 +33,6 @@ extern "C" { #endif -extern char *strndup(const char *, size_t); extern size_t stresc2chr(char *); extern char *strchr2esc(const char *, size_t); extern const char *strbasename(const char *); Modified: projects/arm_eabi/contrib/bind9/CHANGES ============================================================================== --- projects/arm_eabi/contrib/bind9/CHANGES Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/bind9/CHANGES Sat Jul 28 07:56:23 2012 (r238860) @@ -1,3 +1,12 @@ + --- 9.8.3-P2 released --- + +3346. [security] Bad-cache data could be used before it was + initialized, causing an assert. [RT #30025] + +3342. [bug] Change #3314 broke saving of stub zones to disk + resulting in excessive cpu usage in some cases. + [RT #29952] + --- 9.8.3-P1 released --- 3331. [security] dns_rdataslab_fromrdataset could produce bad Modified: projects/arm_eabi/contrib/bind9/lib/dns/resolver.c ============================================================================== --- projects/arm_eabi/contrib/bind9/lib/dns/resolver.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/bind9/lib/dns/resolver.c Sat Jul 28 07:56:23 2012 (r238860) @@ -8448,6 +8448,7 @@ dns_resolver_addbadcache(dns_resolver_t goto cleanup; bad->type = type; bad->hashval = hashval; + bad->expire = *expire; isc_buffer_init(&buffer, bad + 1, name->length); dns_name_init(&bad->name, NULL); dns_name_copy(name, &bad->name, &buffer); @@ -8459,8 +8460,8 @@ dns_resolver_addbadcache(dns_resolver_t if (resolver->badcount < resolver->badhash * 2 && resolver->badhash > DNS_BADCACHE_SIZE) resizehash(resolver, &now, ISC_FALSE); - } - bad->expire = *expire; + } else + bad->expire = *expire; cleanup: UNLOCK(&resolver->lock); } Modified: projects/arm_eabi/contrib/bind9/lib/dns/zone.c ============================================================================== --- projects/arm_eabi/contrib/bind9/lib/dns/zone.c Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/bind9/lib/dns/zone.c Sat Jul 28 07:56:23 2012 (r238860) @@ -8027,13 +8027,14 @@ zone_maintenance(dns_zone_t *zone) { case dns_zone_master: case dns_zone_slave: case dns_zone_key: + case dns_zone_stub: LOCK_ZONE(zone); if (zone->masterfile != NULL && isc_time_compare(&now, &zone->dumptime) >= 0 && DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED) && DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDDUMP)) { dumping = was_dumping(zone); - } else + } else dumping = ISC_TRUE; UNLOCK_ZONE(zone); if (!dumping) { @@ -8386,7 +8387,7 @@ zone_dump(dns_zone_t *zone, isc_boolean_ goto fail; } - if (compact) { + if (compact && zone->type != dns_zone_stub) { dns_zone_t *dummy = NULL; LOCK_ZONE(zone); zone_iattach(zone, &dummy); @@ -9242,7 +9243,7 @@ stub_callback(isc_task_t *task, isc_even dns_zone_t *zone = NULL; char master[ISC_SOCKADDR_FORMATSIZE]; char source[ISC_SOCKADDR_FORMATSIZE]; - isc_uint32_t nscnt, cnamecnt; + isc_uint32_t nscnt, cnamecnt, refresh, retry, expire; isc_result_t result; isc_time_t now; isc_boolean_t exiting = ISC_FALSE; @@ -9390,19 +9391,32 @@ stub_callback(isc_task_t *task, isc_even ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_write); if (zone->db == NULL) zone_attachdb(zone, stub->db); + result = zone_get_from_db(zone, zone->db, NULL, NULL, NULL, &refresh, + &retry, &expire, NULL, NULL); + if (result == ISC_R_SUCCESS) { + zone->refresh = RANGE(refresh, zone->minrefresh, + zone->maxrefresh); + zone->retry = RANGE(retry, zone->minretry, zone->maxretry); + zone->expire = RANGE(expire, zone->refresh + zone->retry, + DNS_MAX_EXPIRE); + DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_HAVETIMERS); + } ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_write); dns_db_detach(&stub->db); - if (zone->masterfile != NULL) - zone_needdump(zone, 0); - dns_message_destroy(&msg); isc_event_free(&event); dns_request_destroy(&zone->request); + DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_REFRESH); + DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_LOADED); DNS_ZONE_JITTER_ADD(&now, zone->refresh, &zone->refreshtime); isc_interval_set(&i, zone->expire, 0); DNS_ZONE_TIME_ADD(&now, zone->expire, &zone->expiretime); + + if (zone->masterfile != NULL) + zone_needdump(zone, 0); + zone_settimer(zone, &now); goto free_stub; Modified: projects/arm_eabi/contrib/bind9/version ============================================================================== --- projects/arm_eabi/contrib/bind9/version Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/bind9/version Sat Jul 28 07:56:23 2012 (r238860) @@ -7,4 +7,4 @@ MAJORVER=9 MINORVER=8 PATCHVER=3 RELEASETYPE=-P -RELEASEVER=1 +RELEASEVER=2 Modified: projects/arm_eabi/contrib/dtc/Documentation/dts-format.txt ============================================================================== --- projects/arm_eabi/contrib/dtc/Documentation/dts-format.txt Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/dtc/Documentation/dts-format.txt Sat Jul 28 07:56:23 2012 (r238860) @@ -29,18 +29,28 @@ except for properties with empty (zero l form: [label:] property-name; -Property values may be defined as an array of 32-bit integer cells, as -NUL-terminated strings, as bytestrings or a combination of these. +Property values may be defined as an array of 8, 16, 32, or 64-bit integer +elements, as NUL-terminated strings, as bytestrings or a combination of these. -* Arrays of cells are represented by angle brackets surrounding a - space separated list of C-style integers +* Arrays are represented by angle brackets surrounding a space separated list + of C-style integers or character literals. Array elements default to 32-bits + in size. An array of 32-bit elements is also known as a cell list or a list + of cells. A cell being an unsigned 32-bit integer. e.g. interrupts = <17 0xc>; -* A 64-bit value is represented with two 32-bit cells. +* A 64-bit value can be represented with two 32-bit elements. e.g. clock-frequency = <0x00000001 0x00000000>; +* The storage size of an element can be changed using the /bits/ prefix. The + /bits/ prefix allows for the creation of 8, 16, 32, and 64-bit elements. + The resulting array will not be padded to a multiple of the default 32-bit + element size. + + e.g. interrupts = /bits/ 8 <17 0xc>; + e.g. clock-frequency = /bits/ 64 <0x0000000100000000>; + * A NUL-terminated string value is represented using double quotes (the property value is considered to include the terminating NUL character). @@ -59,19 +69,20 @@ NUL-terminated strings, as bytestrings o e.g. compatible = "ns16550", "ns8250"; example = <0xf00f0000 19>, "a strange property format"; -* In a cell array a reference to another node will be expanded to that - node's phandle. References may by '&' followed by a node's label: +* In an array a reference to another node will be expanded to that node's + phandle. References may by '&' followed by a node's label: e.g. interrupt-parent = < &mpic >; or they may be '&' followed by a node's full path in braces: e.g. interrupt-parent = < &{/soc/interrupt-controller@40000} >; + References are only permitted in arrays that have an element size of + 32-bits. -* Outside a cell array, a reference to another node will be expanded - to that node's full path. +* Outside an array, a reference to another node will be expanded to that + node's full path. e.g. ethernet0 = &EMAC0; * Labels may also appear before or after any component of a property - value, or between cells of a cell array, or between bytes of a - bytestring. + value, or between elements of an array, or between bytes of a bytestring. e.g. reg = reglabel: <0 sizelabel: 0x1000000>; e.g. prop = [ab cd ef byte4: 00 ff fe]; e.g. str = start: "string value" end: ; @@ -108,3 +119,4 @@ Version 1 DTS files have the overall lay -- David Gibson -- Yoder Stuart + -- Anton Staaf Modified: projects/arm_eabi/contrib/dtc/Documentation/manual.txt ============================================================================== --- projects/arm_eabi/contrib/dtc/Documentation/manual.txt Sat Jul 28 07:42:30 2012 (r238859) +++ projects/arm_eabi/contrib/dtc/Documentation/manual.txt Sat Jul 28 07:56:23 2012 (r238860) @@ -21,7 +21,7 @@ III - libfdt IV - Utility Tools 1) convert-dtsv0 -- Conversion to Version 1 - 1) ftdump + 1) fdtdump I - "dtc", the device tree compiler @@ -106,6 +106,9 @@ Options: -O The generated output format, as listed above. + -d + Generate a dependency file during compilation. + -q Quiet: -q suppress warnings, -qq errors, -qqq all @@ -643,10 +646,10 @@ a new file with a "v1" appended the file Comments, empty lines, etc. are preserved. -2) ftdump -- Flat Tree dumping utility +2) fdtdump -- Flat Device Tree dumping utility *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***