From owner-svn-src-projects@FreeBSD.ORG Sun Jun 13 07:30:52 2010 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 AF5C4106564A; Sun, 13 Jun 2010 07:30:52 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9CBB38FC12; Sun, 13 Jun 2010 07:30:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5D7UqF6050312; Sun, 13 Jun 2010 07:30:52 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5D7UqYS050291; Sun, 13 Jun 2010 07:30:52 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201006130730.o5D7UqYS050291@svn.freebsd.org> From: Jeff Roberson Date: Sun, 13 Jun 2010 07:30: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: r209121 - in projects/ofed/head/sys/ofed/include: asm linux net 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, 13 Jun 2010 07:30:52 -0000 Author: jeff Date: Sun Jun 13 07:30:51 2010 New Revision: 209121 URL: http://svn.freebsd.org/changeset/base/209121 Log: - Redefine net_device to ifnet. They are close enough to use interchangeably. - Create a linux_file wrapper around bsd files and define a thunking layer between them. - Add a radix tree implementation for idr. It uses a per-idr lock and never shrinks trees but should perform well enough. - Expand other miscellaneous wrappers. - Remove Linux's net/route so bsd's is included instead. No attempt will be made to wrap the linux route implementation as it differs too greatly from our own. Sponsored by: Isilon Systems, iX Systems, and Panasas. Added: projects/ofed/head/sys/ofed/include/linux/linux_compat.c projects/ofed/head/sys/ofed/include/linux/linux_idr.c projects/ofed/head/sys/ofed/include/linux/net.h projects/ofed/head/sys/ofed/include/net/ip.h Deleted: projects/ofed/head/sys/ofed/include/net/route.h Modified: projects/ofed/head/sys/ofed/include/asm/atomic-long.h projects/ofed/head/sys/ofed/include/asm/uaccess.h projects/ofed/head/sys/ofed/include/linux/bitops.h projects/ofed/head/sys/ofed/include/linux/cdev.h projects/ofed/head/sys/ofed/include/linux/completion.h projects/ofed/head/sys/ofed/include/linux/ethtool.h projects/ofed/head/sys/ofed/include/linux/file.h projects/ofed/head/sys/ofed/include/linux/fs.h projects/ofed/head/sys/ofed/include/linux/idr.h projects/ofed/head/sys/ofed/include/linux/inetdevice.h projects/ofed/head/sys/ofed/include/linux/jiffies.h projects/ofed/head/sys/ofed/include/linux/kobject.h projects/ofed/head/sys/ofed/include/linux/list.h projects/ofed/head/sys/ofed/include/linux/lockdep.h projects/ofed/head/sys/ofed/include/linux/miscdevice.h projects/ofed/head/sys/ofed/include/linux/netdevice.h projects/ofed/head/sys/ofed/include/linux/rbtree.h projects/ofed/head/sys/ofed/include/linux/wait.h projects/ofed/head/sys/ofed/include/net/tcp.h Modified: projects/ofed/head/sys/ofed/include/asm/atomic-long.h ============================================================================== --- projects/ofed/head/sys/ofed/include/asm/atomic-long.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/asm/atomic-long.h Sun Jun 13 07:30:51 2010 (r209121) @@ -1,4 +1,4 @@ -*- +/*- * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. @@ -69,7 +69,7 @@ atomic_long_dec(atomic_long_t *v) return atomic_fetchadd_long(&v->counter, -1) - 1; } -static inline__ long +static inline long atomic_long_dec_and_test(atomic_long_t *v) { long i = atomic_long_add(-1, v); Modified: projects/ofed/head/sys/ofed/include/asm/uaccess.h ============================================================================== --- projects/ofed/head/sys/ofed/include/asm/uaccess.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/asm/uaccess.h Sun Jun 13 07:30:51 2010 (r209121) @@ -25,12 +25,25 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef _LINUX_UACCESS_H_ -#define _LINUX_UACCESS_H_ +#ifndef _ASM_UACCESS_H_ +#define _ASM_UACCESS_H_ #include -long copy_from_user(void *to, const void __user * from, unsigned long n); -long copy_to_user(void __user *to, const void *from, unsigned long n); +static inline long +copy_to_user(void *to, const void *from, unsigned long n) +{ + if (copyout(from, to, n) != 0) + return n; + return 0; +} -#endif /* _LINUX_UACCESS_H_ */ +static inline long +copy_from_user(void *to, const void *from, unsigned long n) +{ + if (copyin(from, to, n) != 0) + return n; + return 0; +} + +#endif /* _ASM_UACCESS_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/bitops.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/bitops.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/bitops.h Sun Jun 13 07:30:51 2010 (r209121) @@ -32,6 +32,18 @@ #define BIT_MASK(n) (~0UL >> (BITS_PER_LONG - (n))) #define BITS_TO_LONGS(n) roundup2((n), BITS_PER_LONG) +static inline int +__ffsl(long mask) +{ + return (ffsl(mask) - 1); +} + +static inline int +__flsl(long mask) +{ + return (flsl(mask) - 1); +} + static inline unsigned long find_first_bit(unsigned long *addr, unsigned long size) { @@ -42,12 +54,12 @@ find_first_bit(unsigned long *addr, unsi size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { if (*addr == 0) continue; - return (bit + ffs(*addr)); + return (bit + __ffsl(*addr)); } if (size) { mask = (*addr) & BIT_MASK(size); if (mask) - bit += ffsl(mask); + bit += __ffsl(mask); else bit += size; } @@ -64,12 +76,12 @@ find_first_zero_bit(unsigned long *addr, size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { if (~(*addr) == 0) continue; - return (bit + ffs(~(*addr))); + return (bit + __ffsl(~(*addr))); } if (size) { mask = ~(*addr) & BIT_MASK(size); if (mask) - bit += ffsl(mask); + bit += __ffsl(mask); else bit += size; } @@ -91,13 +103,13 @@ find_last_bit(unsigned long *addr, unsig if (offs) { mask = (*addr) & BIT_MASK(offs); if (mask) - return (bit + flsl(mask)); + return (bit + __flsl(mask)); } while (--pos) { addr--; bit -= BITS_PER_LONG; if (*addr) - return (bit + flsl(mask)); + return (bit + __flsl(mask)); } return (size); } @@ -117,7 +129,7 @@ find_next_bit(unsigned long *addr, unsig if (offs) { mask = (*addr) & ~BIT_MASK(offs); if (mask) - return (bit + ffsl(mask)); + return (bit + __ffsl(mask)); bit += BITS_PER_LONG; addr++; } @@ -125,12 +137,12 @@ find_next_bit(unsigned long *addr, unsig size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { if (*addr == 0) continue; - return (bit + ffs(*addr)); + return (bit + __ffsl(*addr)); } if (size) { mask = (*addr) & BIT_MASK(size); if (mask) - bit += ffsl(mask); + bit += __ffsl(mask); else bit += size; } Modified: projects/ofed/head/sys/ofed/include/linux/cdev.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/cdev.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/cdev.h Sun Jun 13 07:30:51 2010 (r209121) @@ -46,10 +46,31 @@ struct cdev { const struct file_operations *ops; }; -void cdev_init(struct cdev *, const struct file_operations *); -struct cdev *cdev_alloc(void); -void cdev_put(struct cdev *p); -int cdev_add(struct cdev *, dev_t, unsigned); -void cdev_del(struct cdev *); +static inline void +cdev_init(struct cdev *cdev, const struct file_operations *ops) +{ +} + +static inline struct cdev * +cdev_alloc(void) +{ + return (NULL); +} + +static inline void +cdev_put(struct cdev *p) +{ +} + +static inline int +cdev_add(struct cdev *cdev, dev_t dev, unsigned count) +{ + return (0); +} + +static inline void +cdev_del(struct cdev *cdev) +{ +} #endif /* _LINUX_CDEV_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/completion.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/completion.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/completion.h Sun Jun 13 07:30:51 2010 (r209121) @@ -30,6 +30,7 @@ #include #include +#include #include #include Modified: projects/ofed/head/sys/ofed/include/linux/ethtool.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/ethtool.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/ethtool.h Sun Jun 13 07:30:51 2010 (r209121) @@ -28,16 +28,4 @@ #ifndef _LINUX_ETHTOOL_H_ #define _LINUX_ETHTOOL_H_ -#include - -struct net_device; - -struct ethtool_cmd { - u16 speed; -}; - -struct ethtool_ops { - int (*get_settings)(struct net_device *, struct ethtool_cmd *); -}; - #endif /* _LINUX_ETHTOOL_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/file.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/file.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/file.h Sun Jun 13 07:30:51 2010 (r209121) @@ -30,28 +30,49 @@ #include -struct file; +struct linux_file; -static inline struct file * -fget(unsigned int fd) +#undef file + +struct fileops linuxfileops; + +static inline struct linux_file * +linux_fget(unsigned int fd) { + struct file *file; - return (NULL); + file = fget_unlocked(curthread->td_proc->p_fd, fd); + return (struct linux_file *)file->f_data; } static inline void -fput(struct file *filp) +fput(struct linux_file *filp) { + if (refcount_release(&filp->_file->f_count)) { + _fdrop(filp->_file, curthread); + kfree(filp); + } } static inline void put_unused_fd(unsigned int fd) { + struct linux_file *file; + + file = linux_fget(fd); + if (file == NULL) + return; + if (file->_file) + fdclose(curthread->td_proc->p_fd, file->_file, fd, curthread); } static inline void fd_install(unsigned int fd, struct file *file) { + file->f_ops = &linuxfileops; } +#define file linux_file +#define fget linux_fget + #endif /* _LINUX_FILE_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/fs.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/fs.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/fs.h Sun Jun 13 07:30:51 2010 (r209121) @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include #include @@ -57,13 +59,19 @@ struct dentry { struct inode *d_inode; }; -struct file { - void *private_data; - int f_flags; - struct dentry *f_dentry; - struct dentry f_dentry_store; +struct file_operations; + +struct linux_file { + struct file *_file; + struct file_operations *f_op; + void *private_data; + int f_flags; + struct dentry *f_dentry; + struct dentry f_dentry_store; }; +#define file linux_file + typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned); struct file_operations { Modified: projects/ofed/head/sys/ofed/include/linux/idr.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/idr.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/idr.h Sun Jun 13 07:30:51 2010 (r209121) @@ -29,34 +29,33 @@ #ifndef _LINUX_IDR_H_ #define _LINUX_IDR_H_ -#if defined(__LP64__) -#define IDR_BITS 5 -#define IDR_FULL 0xfffffffful -#else -#define IDR_BITS 6 -#define IDR_FULL 0xfffffffffffffffful -#endif - +#define IDR_BITS 5 #define IDR_SIZE (1 << IDR_BITS) -#define IDR_MASK ((1 << IDR_BITS) - 1) +#define IDR_MASK (IDR_SIZE - 1) -#define MAX_ID_SHIFT (sizeof(int) * 8 - 1) +#define MAX_ID_SHIFT ((sizeof(int) * NBBY) - 1) #define MAX_ID_BIT (1U << MAX_ID_SHIFT) #define MAX_ID_MASK (MAX_ID_BIT - 1) +#define MAX_LEVEL (MAX_ID_SHIFT + IDR_BITS - 1) / IDR_BITS + +struct idr_layer { + unsigned long bitmap; + struct idr_layer *ary[IDR_SIZE]; +}; struct idr { + struct idr_layer *top; + struct idr_layer *free; + int layers; + struct mtx lock; }; -#define IDR_INIT(name) (name) = {} #define DEFINE_IDR(name) struct idr name void *idr_find(struct idr *idp, int id); int idr_pre_get(struct idr *idp, gfp_t gfp_mask); int idr_get_new(struct idr *idp, void *ptr, int *id); int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); -int idr_for_each(struct idr *idp, int (*fn)(int id, void *p, void *data), - void *data); -void *idr_get_next(struct idr *idp, int *nextid); void *idr_replace(struct idr *idp, void *ptr, int id); void idr_remove(struct idr *idp, int id); void idr_remove_all(struct idr *idp); Modified: projects/ofed/head/sys/ofed/include/linux/inetdevice.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/inetdevice.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/inetdevice.h Sun Jun 13 07:30:51 2010 (r209121) @@ -31,4 +31,24 @@ #include +static inline struct net_device * +ip_dev_find(struct net *net, uint32_t addr) +{ + struct sockaddr_in sin; + struct ifaddr *ifa; + struct ifnet *ifp; + + ifp = NULL; + sin.sin_addr.s_addr = addr; + sin.sin_port = 0; + sin.sin_len = sizeof(sin); + ifa = ifa_ifwithaddr((struct sockaddr *)&sin); + if (ifa) { + ifp = ifa->ifa_ifp; + if_ref(ifp); + ifa_free(ifa); + } + return (ifp); +} + #endif /* _LINUX_INETDEVICE_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/jiffies.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/jiffies.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/jiffies.h Sun Jun 13 07:30:51 2010 (r209121) @@ -45,6 +45,8 @@ msecs_to_jiffies(int msec) #define time_after(a, b) ((long)(b) - (long)(a) < 0) #define time_before(a, b) time_after(b,a) +#define time_after_eq(a, b) ((long)(a) - (long)(b) >= 0) +#define time_before_eq(a, b) time_after_eq(b, a) #endif /* _LINUX_JIFFIES_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/kobject.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/kobject.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/kobject.h Sun Jun 13 07:30:51 2010 (r209121) @@ -47,7 +47,6 @@ struct kobject { struct kobj_type *ktype; }; - static inline int kobject_init_and_add(struct kobject *kobj, struct kobj_type *ktype, struct kobject *parent, const char *fmt, ...) @@ -97,20 +96,6 @@ kobject_set_name_vargs(struct kobject *k return (0); } - -static inline int -kobject_set_name(struct kobject *kobj, const char *fmt, ...) -{ - va_list args; - int error; - - va_start(args, fmt); - error = kobject_set_name_vargs(kobj, fmt, args); - va_end(args); - - return (error); -} - static inline int kobject_add(struct kobject *kobj, struct kobject *parent, const char *fmt, ...) { @@ -132,4 +117,6 @@ kobject_name(const struct kobject *kobj) return kobj->name; } +int kobject_set_name(struct kobject *kobj, const char *fmt, ...); + #endif /* _LINUX_KOBJECT_H_ */ Added: projects/ofed/head/sys/ofed/include/linux/linux_compat.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/linux_compat.c Sun Jun 13 07:30:51 2010 (r209121) @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +MALLOC_DEFINE(M_KMALLOC, "linux", "Linux kmalloc compat"); + +#include +/* Undo Linux compat change. */ +#undef RB_ROOT +#define RB_ROOT(head) (head)->rbh_root + +int +panic_cmp(struct rb_node *one, struct rb_node *two) +{ + panic("no cmp"); +} + +RB_GENERATE(linux_root, rb_node, __entry, panic_cmp); + +int +kobject_set_name(struct kobject *kobj, const char *fmt, ...) +{ + va_list args; + int error; + + va_start(args, fmt); + error = kobject_set_name_vargs(kobj, fmt, args); + va_end(args); + + return (error); +} Added: projects/ofed/head/sys/ofed/include/linux/linux_idr.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/linux_idr.c Sun Jun 13 07:30:51 2010 (r209121) @@ -0,0 +1,427 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +/* + * IDR Implementation. + * + * This is quick and dirty and not as re-entrant as the linux version + * however it should be fairly fast. It is basically a radix tree with + * a builtin bitmap for allocation. + */ +MALLOC_DEFINE(M_IDR, "idr", "Linux IDR compat"); + +static inline int +idr_max(struct idr *idr) +{ + return (1 << (idr->layers * IDR_BITS)) - 1; +} + +static inline int +idr_pos(int id, int layer) +{ + return (id >> (IDR_BITS * layer)) & IDR_MASK; +} + +void +idr_init(struct idr *idr) +{ + bzero(idr, sizeof(*idr)); + mtx_init(&idr->lock, "idr", NULL, MTX_DEF); +} + +/* Only frees cached pages. */ +void +idr_destroy(struct idr *idr) +{ + struct idr_layer *il, *iln; + + mtx_lock(&idr->lock); + for (il = idr->free; il != NULL; il = iln) { + iln = il->ary[0]; + free(il, M_IDR); + } + mtx_unlock(&idr->lock); +} + +static void +idr_remove_layer(struct idr_layer *il, int layer) +{ + int i; + + if (il == NULL) + return; + if (layer == 0) { + free(il, M_IDR); + return; + } + for (i = 0; i < IDR_SIZE; i++) + if (il->ary[i]) + idr_remove_layer(il->ary[i], layer - 1); +} + +void +idr_remove_all(struct idr *idr) +{ + + mtx_lock(&idr->lock); + idr_remove_layer(idr->top, idr->layers - 1); + idr->top = NULL; + idr->layers = 0; + mtx_unlock(&idr->lock); +} + +void +idr_remove(struct idr *idr, int id) +{ + struct idr_layer *il; + int layer; + int idx; + + id &= MAX_ID_MASK; + mtx_lock(&idr->lock); + il = idr->top; + layer = idr->layers - 1; + if (il == NULL || id > idr_max(idr)) { + mtx_unlock(&idr->lock); + return; + } + /* + * Walk down the tree to this item setting bitmaps along the way + * as we know at least one item will be free along this path. + */ + while (layer && il) { + idx = idr_pos(id, layer); + il->bitmap |= 1 << idx; + il = il->ary[idx]; + layer--; + } + idx = id & IDR_MASK; + /* + * At this point we've set free space bitmaps up the whole tree. + * We could make this non-fatal and unwind but linux dumps a stack + * and a warning so I don't think it's necessary. + */ + if (il == NULL || (il->bitmap & (1 << idx)) == 0) + panic("idr_remove: Item %d not allocated (%p, %p)\n", + id, idr, il); + il->ary[idx] = NULL; + mtx_unlock(&idr->lock); + return; +} + +void * +idr_replace(struct idr *idr, void *ptr, int id) +{ + struct idr_layer *il; + void *res; + int layer; + int idx; + + res = ERR_PTR(-EINVAL); + id &= MAX_ID_MASK; + mtx_lock(&idr->lock); + il = idr->top; + layer = idr->layers - 1; + if (il == NULL || id > idr_max(idr)) + goto out; + while (layer && il) { + il = il->ary[idr_pos(id, layer)]; + layer--; + } + idx = id & IDR_MASK; + /* + * Replace still returns an error if the item was not allocated. + */ + if (il != NULL && (il->bitmap & (1 << idx)) == 0) { + res = il->ary[idx]; + il->ary[idx] = ptr; + } +out: + mtx_unlock(&idr->lock); + return (res); +} + +void * +idr_find(struct idr *idr, int id) +{ + struct idr_layer *il; + void *res; + int layer; + + res = NULL; + id &= MAX_ID_MASK; + mtx_lock(&idr->lock); + il = idr->top; + layer = idr->layers - 1; + if (il == NULL || id > idr_max(idr)) + goto out; + while (layer && il) { + il = il->ary[idr_pos(id, layer)]; + layer--; + } + if (il != NULL) + res = il->ary[id & IDR_MASK]; +out: + mtx_unlock(&idr->lock); + return (res); +} + +int +idr_pre_get(struct idr *idr, gfp_t gfp_mask) +{ + struct idr_layer *il, *iln; + struct idr_layer *head; + int need; + + mtx_lock(&idr->lock); + for (;;) { + need = idr->layers + 1; + for (il = idr->free; il != NULL; il = il->ary[0]) + need--; + mtx_unlock(&idr->lock); + if (need == 0) + break; + for (head = NULL; need; need--) { + iln = malloc(sizeof(*il), M_IDR, M_ZERO | gfp_mask); + if (iln == NULL) + break; + iln->bitmap = IDR_MASK; + if (head != NULL) { + il->ary[0] = iln; + il = iln; + } else + head = il = iln; + } + if (head == NULL) + return (0); + mtx_lock(&idr->lock); + il->ary[0] = idr->free; + idr->free = head; + } + return (1); +} + +static inline struct idr_layer * +idr_get(struct idr *idr) +{ + struct idr_layer *il; + + il = idr->free; + if (il) { + idr->free = il->ary[0]; + il->ary[0] = NULL; + return (il); + } + il = malloc(sizeof(*il), M_IDR, M_ZERO | M_NOWAIT); + return (il); +} + +/* + * Could be implemented as get_new_above(idr, ptr, 0, idp) but written + * first for simplicity sake. + */ +int +idr_get_new(struct idr *idr, void *ptr, int *idp) +{ + struct idr_layer *stack[MAX_LEVEL]; + struct idr_layer *il; + int error; + int layer; + int idx; + int id; + + error = -EAGAIN; + mtx_lock(&idr->lock); + /* + * Expand the tree until there is free space. + */ + if (idr->top == NULL || idr->top->bitmap == 0) { + if (idr->layers == MAX_LEVEL + 1) { + error = -ENOSPC; + goto out; + } + il = idr_get(idr); + if (il == NULL) + goto out; + il->ary[0] = idr->top; + if (idr->top) + il->bitmap &= ~1; + idr->top = il; + idr->layers++; + } + il = idr->top; + id = 0; + /* + * Walk the tree following free bitmaps, record our path. + */ + for (layer = idr->layers - 1;; layer--) { + stack[layer] = il; + idx = ffsl(il->bitmap); + if (idx == 0) + panic("idr_get_new: Invalid leaf state (%p, %p)\n", + idr, il); + idx--; + id |= idx << (layer * IDR_BITS); + if (layer == 0) + break; + if (il->ary[idx] == NULL) { + il = il->ary[idx] = idr_get(idr); + if (il == NULL) + goto out; + } + } + /* + * Allocate the leaf to the consumer. + */ + il->bitmap &= ~(1 << idx); + il->ary[idx] = ptr; + *idp = id; + /* + * Clear bitmaps potentially up to the root. + */ + while (il->bitmap == 0 && ++layer < idr->layers) { + il = stack[layer]; + il->bitmap &= ~(1 << idr_pos(id, layer)); + } + error = 0; +out: + mtx_unlock(&idr->lock); + return (error); +} + +int +idr_get_new_above(struct idr *idr, void *ptr, int starting_id, int *idp) +{ + struct idr_layer *stack[MAX_LEVEL]; + struct idr_layer *il; + int error; + int layer; + int idx, sidx; + int id; + + error = -EAGAIN; + mtx_lock(&idr->lock); + /* + * Compute the layers required to support starting_id and the mask + * at the top layer. + */ +restart: + idx = starting_id; + layer = 0; + while (idx & ~IDR_MASK) { + layer++; + idx >>= IDR_BITS; + } + /* + * Expand the tree until there is free space at or beyond starting_id. + */ + while (idr->layers <= layer || + idr->top->bitmap < (1 << idr_pos(starting_id, idr->layers - 1))) { + if (idr->layers == MAX_LEVEL + 1) { + error = -ENOSPC; + goto out; + } + il = idr_get(idr); + if (il == NULL) + goto out; + il->ary[0] = idr->top; + if (idr->top && idr->top->bitmap == 0) + il->bitmap &= ~1; + idr->top = il; + idr->layers++; + } + il = idr->top; + id = 0; + /* + * Walk the tree following free bitmaps, record our path. + */ + for (layer = idr->layers - 1;; layer--) { + stack[layer] = il; + sidx = idr_pos(starting_id, layer); + /* Returns index numbered from 0 or size if none exists. */ + idx = find_next_bit(&il->bitmap, IDR_SIZE, sidx); + if (idx == IDR_SIZE && sidx == 0) + panic("idr_get_new: Invalid leaf state (%p, %p)\n", + idr, il); + /* + * We may have walked a path where there was a free bit but + * it was lower than what we wanted. Restart the search with + * a larger starting id. id contains the progress we made so + * far. Search the leaf one above this level. This may + * restart as many as MAX_LEVEL times but that is expected + * to be rare. + */ + if (idx == IDR_SIZE) { + starting_id = id + (1 << (layer+1 * IDR_BITS)); + goto restart; + } + if (idx > sidx) + starting_id = 0; /* Search the whole subtree. */ + id |= idx << (layer * IDR_BITS); + if (layer == 0) + break; + if (il->ary[idx] == NULL) { + il = il->ary[idx] = idr_get(idr); + if (il == NULL) + goto out; + } + } + /* + * Allocate the leaf to the consumer. + */ + il->bitmap &= ~(1 << idx); + il->ary[idx] = ptr; + *idp = id; + /* + * Clear bitmaps potentially up to the root. + */ + while (il->bitmap == 0 && ++layer < idr->layers) { + il = stack[layer]; + il->bitmap &= ~(1 << idr_pos(id, layer)); + } + error = 0; +out: + mtx_unlock(&idr->lock); + return (error); +} Modified: projects/ofed/head/sys/ofed/include/linux/list.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/list.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/list.h Sun Jun 13 07:30:51 2010 (r209121) @@ -43,6 +43,11 @@ #include #include +#include +#include +#include +#include + #define prefetch(x) struct list_head { Modified: projects/ofed/head/sys/ofed/include/linux/lockdep.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/lockdep.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/lockdep.h Sun Jun 13 07:30:51 2010 (r209121) @@ -29,7 +29,9 @@ #ifndef _LINUX_LOCKDEP_H_ #define _LINUX_LOCKDEP_H_ -struct lock_class_key; +struct lock_class_key { +}; + #define lockdep_set_class(lock, key) #endif /* _LINUX_LOCKDEP_H_ */ Modified: projects/ofed/head/sys/ofed/include/linux/miscdevice.h ============================================================================== --- projects/ofed/head/sys/ofed/include/linux/miscdevice.h Sun Jun 13 05:24:27 2010 (r209120) +++ projects/ofed/head/sys/ofed/include/linux/miscdevice.h Sun Jun 13 07:30:51 2010 (r209121) @@ -38,8 +38,17 @@ struct miscdevice { int minor; }; -int misc_register(struct miscdevice *misc); -int misc_deregister(struct miscdevice *misc); +static inline int +misc_register(struct miscdevice *misc) +{ + return (0); +} + +static inline int +misc_deregister(struct miscdevice *misc) +{ + return (0); +} #endif /* _LINUX_MISCDEVICE_H_ */ Added: projects/ofed/head/sys/ofed/include/linux/net.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ofed/head/sys/ofed/include/linux/net.h Sun Jun 13 07:30:51 2010 (r209121) @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 17:09:39 2010 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 94DB51065673; Mon, 14 Jun 2010 17:09:39 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 858A68FC14; Mon, 14 Jun 2010 17:09:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EH9d87015014; Mon, 14 Jun 2010 17:09:39 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EH9dsN015012; Mon, 14 Jun 2010 17:09:39 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006141709.o5EH9dsN015012@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 17:09:39 +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: r209163 - projects/clangbsd/sys/boot/i386/gptzfsboot 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: Mon, 14 Jun 2010 17:09:39 -0000 Author: rdivacky Date: Mon Jun 14 17:09:39 2010 New Revision: 209163 URL: http://svn.freebsd.org/changeset/base/209163 Log: Remove the unecessary bsd.own.mk include. Modified: projects/clangbsd/sys/boot/i386/gptzfsboot/Makefile Modified: projects/clangbsd/sys/boot/i386/gptzfsboot/Makefile ============================================================================== --- projects/clangbsd/sys/boot/i386/gptzfsboot/Makefile Mon Jun 14 17:02:19 2010 (r209162) +++ projects/clangbsd/sys/boot/i386/gptzfsboot/Makefile Mon Jun 14 17:09:39 2010 (r209163) @@ -1,7 +1,5 @@ # $FreeBSD$ -.include - .PATH: ${.CURDIR}/../boot2 ${.CURDIR}/../gptboot ${.CURDIR}/../zfsboot FILES= gptzfsboot From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 17:10:09 2010 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 75378106564A; Mon, 14 Jun 2010 17:10:09 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6575F8FC14; Mon, 14 Jun 2010 17:10:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EHA9ZP015190; Mon, 14 Jun 2010 17:10:09 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EHA9sY015188; Mon, 14 Jun 2010 17:10:09 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006141710.o5EHA9sY015188@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 17:10:09 +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: r209164 - projects/clangbsd/lib/clang/include/llvm/Config 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: Mon, 14 Jun 2010 17:10:09 -0000 Author: rdivacky Date: Mon Jun 14 17:10:09 2010 New Revision: 209164 URL: http://svn.freebsd.org/changeset/base/209164 Log: Disable timestamps and posix_spawn. Just like in head. Modified: projects/clangbsd/lib/clang/include/llvm/Config/config.h Modified: projects/clangbsd/lib/clang/include/llvm/Config/config.h ============================================================================== --- projects/clangbsd/lib/clang/include/llvm/Config/config.h Mon Jun 14 17:09:39 2010 (r209163) +++ projects/clangbsd/lib/clang/include/llvm/Config/config.h Mon Jun 14 17:10:09 2010 (r209164) @@ -27,7 +27,7 @@ /* #undef ENABLE_THREADS */ /* Define if timestamp information (e.g., __DATE___) is allowed */ -#define ENABLE_TIMESTAMPS 1 +/* #undef ENABLE_TIMESTAMPS */ /* Define to 1 if you have the `argz_append' function. */ /* #undef HAVE_ARGZ_APPEND */ @@ -270,7 +270,7 @@ #define HAVE_OPENDIR 1 /* Define to 1 if you have the `posix_spawn' function. */ -#define HAVE_POSIX_SPAWN 1 +/* #undef HAVE_POSIX_SPAWN */ /* Define to 1 if you have the `powf' function. */ #define HAVE_POWF 1 From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 17:12:26 2010 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 8477E1065672; Mon, 14 Jun 2010 17:12:26 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 749D08FC0C; Mon, 14 Jun 2010 17:12:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EHCP71015735; Mon, 14 Jun 2010 17:12:25 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EHCPoi015732; Mon, 14 Jun 2010 17:12:25 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006141712.o5EHCPoi015732@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 17:12:25 +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: r209165 - projects/clangbsd/lib/clang/include/llvm/Config 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: Mon, 14 Jun 2010 17:12:26 -0000 Author: rdivacky Date: Mon Jun 14 17:12:24 2010 New Revision: 209165 URL: http://svn.freebsd.org/changeset/base/209165 Log: Add $FreeBSD$ to these files. Modified: projects/clangbsd/lib/clang/include/llvm/Config/AsmParsers.def projects/clangbsd/lib/clang/include/llvm/Config/Disassemblers.def Modified: projects/clangbsd/lib/clang/include/llvm/Config/AsmParsers.def ============================================================================== --- projects/clangbsd/lib/clang/include/llvm/Config/AsmParsers.def Mon Jun 14 17:10:09 2010 (r209164) +++ projects/clangbsd/lib/clang/include/llvm/Config/AsmParsers.def Mon Jun 14 17:12:24 2010 (r209165) @@ -1,3 +1,4 @@ +/* $FreeBSD$ */ //===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===// // // The LLVM Compiler Infrastructure Modified: projects/clangbsd/lib/clang/include/llvm/Config/Disassemblers.def ============================================================================== --- projects/clangbsd/lib/clang/include/llvm/Config/Disassemblers.def Mon Jun 14 17:10:09 2010 (r209164) +++ projects/clangbsd/lib/clang/include/llvm/Config/Disassemblers.def Mon Jun 14 17:12:24 2010 (r209165) @@ -1,3 +1,4 @@ +/* $FreeBSD$ */ //===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===// // // The LLVM Compiler Infrastructure From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 17:13:06 2010 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 276EF1065673; Mon, 14 Jun 2010 17:13:06 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 15B738FC0C; Mon, 14 Jun 2010 17:13:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EHD5UH015909; Mon, 14 Jun 2010 17:13:05 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EHD5s8015902; Mon, 14 Jun 2010 17:13:05 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006141713.o5EHD5s8015902@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 17:13:05 +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: r209166 - in projects/clangbsd/lib/clang: libclangchecker libclangcodegen libclangdriver libclangfrontend libllvmanalysis libllvmmc 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: Mon, 14 Jun 2010 17:13:06 -0000 Author: rdivacky Date: Mon Jun 14 17:13:05 2010 New Revision: 209166 URL: http://svn.freebsd.org/changeset/base/209166 Log: Reshuffle to sync with HEAD. Modified: projects/clangbsd/lib/clang/libclangchecker/Makefile projects/clangbsd/lib/clang/libclangcodegen/Makefile projects/clangbsd/lib/clang/libclangdriver/Makefile projects/clangbsd/lib/clang/libclangfrontend/Makefile projects/clangbsd/lib/clang/libllvmanalysis/Makefile projects/clangbsd/lib/clang/libllvmmc/Makefile Modified: projects/clangbsd/lib/clang/libclangchecker/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libclangchecker/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libclangchecker/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -9,15 +9,15 @@ SRCS= AdjustedReturnValueChecker.cpp Agg BasicStore.cpp BasicValueFactory.cpp BugReporter.cpp \ BugReporterVisitors.cpp BuiltinFunctionChecker.cpp \ CFRefCount.cpp CallAndMessageChecker.cpp CallInliner.cpp \ - CastSizeChecker.cpp CastToStructChecker.cpp CheckDeadStores.cpp \ - CheckObjCDealloc.cpp CheckObjCInstMethSignature.cpp \ - CheckSecuritySyntaxOnly.cpp CheckSizeofPointer.cpp Checker.cpp \ - CocoaConventions.cpp DereferenceChecker.cpp DivZeroChecker.cpp \ - Environment.cpp ExplodedGraph.cpp FixedAddressChecker.cpp \ - FlatStore.cpp GRBlockCounter.cpp GRCXXExprEngine.cpp \ - GRCoreEngine.cpp GRExprEngine.cpp \ - GRExprEngineExperimentalChecks.cpp GRState.cpp \ - LLVMConventionsChecker.cpp MacOSXAPIChecker.cpp \ + CastSizeChecker.cpp CastToStructChecker.cpp \ + CheckDeadStores.cpp CheckObjCDealloc.cpp \ + CheckObjCInstMethSignature.cpp CheckSecuritySyntaxOnly.cpp \ + CheckSizeofPointer.cpp Checker.cpp CocoaConventions.cpp \ + DereferenceChecker.cpp DivZeroChecker.cpp Environment.cpp \ + ExplodedGraph.cpp FixedAddressChecker.cpp FlatStore.cpp \ + GRBlockCounter.cpp GRCXXExprEngine.cpp GRCoreEngine.cpp \ + GRExprEngine.cpp GRExprEngineExperimentalChecks.cpp \ + GRState.cpp LLVMConventionsChecker.cpp MacOSXAPIChecker.cpp \ MallocChecker.cpp ManagerRegistry.cpp MemRegion.cpp \ NSAutoreleasePoolChecker.cpp NSErrorChecker.cpp \ NoReturnFunctionChecker.cpp OSAtomicChecker.cpp \ @@ -30,8 +30,8 @@ SRCS= AdjustedReturnValueChecker.cpp Agg Store.cpp SymbolManager.cpp UndefBranchChecker.cpp \ UndefCapturedBlockVarChecker.cpp UndefResultChecker.cpp \ UndefinedArraySubscriptChecker.cpp \ - UndefinedAssignmentChecker.cpp UnixAPIChecker.cpp \ - VLASizeChecker.cpp ValueManager.cpp + UndefinedAssignmentChecker.cpp \ + UnixAPIChecker.cpp VLASizeChecker.cpp ValueManager.cpp TGHDRS= DiagnosticAnalysisKinds DiagnosticCommonKinds StmtNodes Modified: projects/clangbsd/lib/clang/libclangcodegen/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libclangcodegen/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libclangcodegen/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -9,8 +9,8 @@ SRCS= CGBlocks.cpp CGBuiltin.cpp CGCXX.c CGExprConstant.cpp CGExprScalar.cpp CGObjC.cpp CGObjCGNU.cpp \ CGObjCMac.cpp CGRTTI.cpp CGRecordLayoutBuilder.cpp CGStmt.cpp \ CGTemporaries.cpp CGVTT.cpp CGVTables.cpp CodeGenFunction.cpp \ - CodeGenModule.cpp CodeGenTypes.cpp ItaniumCXXABI.cpp Mangle.cpp \ - ModuleBuilder.cpp TargetInfo.cpp + CodeGenModule.cpp CodeGenTypes.cpp ItaniumCXXABI.cpp \ + Mangle.cpp ModuleBuilder.cpp TargetInfo.cpp TGHDRS= DiagnosticCommonKinds Intrinsics StmtNodes Modified: projects/clangbsd/lib/clang/libclangdriver/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libclangdriver/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libclangdriver/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -4,11 +4,11 @@ LIB= clangdriver SRCDIR= tools/clang/lib/Driver SRCS= Action.cpp Arg.cpp ArgList.cpp CC1AsOptions.cpp CC1Options.cpp \ - Compilation.cpp Driver.cpp DriverOptions.cpp HostInfo.cpp Job.cpp \ - OptTable.cpp Option.cpp Phases.cpp Tool.cpp ToolChain.cpp \ - ToolChains.cpp Tools.cpp Types.cpp + Compilation.cpp Driver.cpp DriverOptions.cpp HostInfo.cpp \ + Job.cpp OptTable.cpp Option.cpp Phases.cpp Tool.cpp \ + ToolChain.cpp ToolChains.cpp Tools.cpp Types.cpp -TGHDRS= DiagnosticCommonKinds DiagnosticDriverKinds Options CC1Options \ - CC1AsOptions +TGHDRS= CC1AsOptions CC1Options DiagnosticCommonKinds \ + DiagnosticDriverKinds Options .include "../clang.lib.mk" Modified: projects/clangbsd/lib/clang/libclangfrontend/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libclangfrontend/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libclangfrontend/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -6,20 +6,20 @@ SRCDIR= tools/clang/lib/Frontend SRCS= ASTConsumers.cpp ASTMerge.cpp ASTUnit.cpp AnalysisConsumer.cpp \ BoostConAction.cpp CacheTokens.cpp CodeGenAction.cpp \ CompilerInstance.cpp CompilerInvocation.cpp DeclXML.cpp \ - DependencyFile.cpp DiagChecker.cpp DocumentXML.cpp FixItRewriter.cpp \ - FrontendAction.cpp FrontendActions.cpp FrontendOptions.cpp \ - GeneratePCH.cpp HTMLDiagnostics.cpp HTMLPrint.cpp \ - InitHeaderSearch.cpp InitPreprocessor.cpp LangStandards.cpp \ - PCHReader.cpp PCHReaderDecl.cpp PCHReaderStmt.cpp \ - PCHWriter.cpp PCHWriterDecl.cpp PCHWriterStmt.cpp \ - PlistDiagnostics.cpp PrintParserCallbacks.cpp \ - PrintPreprocessedOutput.cpp RewriteMacros.cpp RewriteObjC.cpp \ - RewriteTest.cpp StmtXML.cpp TextDiagnosticBuffer.cpp \ - TextDiagnosticPrinter.cpp TypeXML.cpp \ + DependencyFile.cpp DiagChecker.cpp DocumentXML.cpp \ + FixItRewriter.cpp FrontendAction.cpp FrontendActions.cpp \ + FrontendOptions.cpp GeneratePCH.cpp HTMLDiagnostics.cpp \ + HTMLPrint.cpp InitHeaderSearch.cpp InitPreprocessor.cpp \ + LangStandards.cpp PCHReader.cpp PCHReaderDecl.cpp \ + PCHReaderStmt.cpp PCHWriter.cpp PCHWriterDecl.cpp \ + PCHWriterStmt.cpp PlistDiagnostics.cpp \ + PrintParserCallbacks.cpp PrintPreprocessedOutput.cpp \ + RewriteMacros.cpp RewriteObjC.cpp RewriteTest.cpp StmtXML.cpp \ + TextDiagnosticBuffer.cpp TextDiagnosticPrinter.cpp TypeXML.cpp \ VerifyDiagnosticsClient.cpp Warnings.cpp -TGHDRS= DiagnosticASTKinds DiagnosticCommonKinds DiagnosticDriverKinds \ - DiagnosticFrontendKinds DiagnosticLexKinds DiagnosticSemaKinds \ - CC1Options StmtNodes +TGHDRS= CC1Options DiagnosticASTKinds DiagnosticCommonKinds \ + DiagnosticDriverKinds DiagnosticFrontendKinds \ + DiagnosticLexKinds DiagnosticSemaKinds StmtNodes .include "../clang.lib.mk" Modified: projects/clangbsd/lib/clang/libllvmanalysis/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libllvmanalysis/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libllvmanalysis/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -13,13 +13,12 @@ SRCS= AliasAnalysis.cpp AliasAnalysisCou LibCallAliasAnalysis.cpp LibCallSemantics.cpp Lint.cpp \ LiveValues.cpp LoopDependenceAnalysis.cpp LoopInfo.cpp \ LoopPass.cpp MemoryBuiltins.cpp MemoryDependenceAnalysis.cpp \ - ModuleDebugInfoPrinter.cpp PHITransAddr.cpp PointerTracking.cpp \ - PostDominators.cpp ProfileEstimatorPass.cpp ProfileInfo.cpp \ - ProfileInfoLoader.cpp ProfileInfoLoaderPass.cpp \ - ProfileVerifierPass.cpp ScalarEvolution.cpp \ - ScalarEvolutionAliasAnalysis.cpp ScalarEvolutionExpander.cpp \ - ScalarEvolutionNormalization.cpp SparsePropagation.cpp \ - Trace.cpp ValueTracking.cpp + ModuleDebugInfoPrinter.cpp PHITransAddr.cpp PointerTracking.cpp PostDominators.cpp \ + ProfileEstimatorPass.cpp ProfileInfo.cpp ProfileInfoLoader.cpp \ + ProfileInfoLoaderPass.cpp ProfileVerifierPass.cpp \ + ScalarEvolution.cpp ScalarEvolutionAliasAnalysis.cpp \ + ScalarEvolutionExpander.cpp ScalarEvolutionNormalization.cpp \ + SparsePropagation.cpp Trace.cpp ValueTracking.cpp TGHDRS= Intrinsics Modified: projects/clangbsd/lib/clang/libllvmmc/Makefile ============================================================================== --- projects/clangbsd/lib/clang/libllvmmc/Makefile Mon Jun 14 17:12:24 2010 (r209165) +++ projects/clangbsd/lib/clang/libllvmmc/Makefile Mon Jun 14 17:13:05 2010 (r209166) @@ -6,10 +6,10 @@ SRCDIR= lib/MC SRCS= MCAsmInfo.cpp MCAsmInfoCOFF.cpp MCAsmInfoDarwin.cpp \ MCAsmStreamer.cpp MCAssembler.cpp MCCodeEmitter.cpp \ MCContext.cpp MCDisassembler.cpp MCExpr.cpp MCInst.cpp \ - MCInstPrinter.cpp MCLabel.cpp MCLoggingStreamer.cpp \ - MCSectionCOFF.cpp MCMachOStreamer.cpp MCNullStreamer.cpp \ - MCObjectWriter.cpp MCSection.cpp MCSectionELF.cpp \ - MCSectionMachO.cpp MCStreamer.cpp MCSymbol.cpp MCValue.cpp \ - MachObjectWriter.cpp TargetAsmBackend.cpp + MCInstPrinter.cpp MCLabel.cpp MCLoggingStreamer.cpp MCMachOStreamer.cpp \ + MCNullStreamer.cpp MCObjectWriter.cpp MCSection.cpp \ + MCSectionCOFF.cpp MCSectionELF.cpp MCSectionMachO.cpp \ + MCStreamer.cpp MCSymbol.cpp MCValue.cpp MachObjectWriter.cpp \ + TargetAsmBackend.cpp .include "../clang.lib.mk" From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 17:28:33 2010 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 82BE41065674; Mon, 14 Jun 2010 17:28:33 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E20D8FC1C; Mon, 14 Jun 2010 17:28:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EHSXkJ019424; Mon, 14 Jun 2010 17:28:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EHSWCe019411; Mon, 14 Jun 2010 17:28:32 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006141728.o5EHSWCe019411@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 14 Jun 2010 17:28:32 +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: r209167 - in projects/ppc64: . bin/getfacl cddl/contrib/opensolaris/lib/libdtrace/common contrib/llvm/tools/clang/lib/Basic contrib/wpa/hostapd contrib/wpa/hostapd/doc contrib/wpa/src/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: Mon, 14 Jun 2010 17:28:33 -0000 Author: nwhitehorn Date: Mon Jun 14 17:28:32 2010 New Revision: 209167 URL: http://svn.freebsd.org/changeset/base/209167 Log: IFC @ 209166 -- Begin tbemd merge Added: projects/ppc64/contrib/wpa/hostapd/Makefile - copied unchanged from r209166, head/contrib/wpa/hostapd/Makefile projects/ppc64/contrib/wpa/hostapd/driver_bsd.c - copied unchanged from r209166, head/contrib/wpa/hostapd/driver_bsd.c projects/ppc64/contrib/wpa/hostapd/driver_hostap.c - copied unchanged from r209166, head/contrib/wpa/hostapd/driver_hostap.c projects/ppc64/contrib/wpa/hostapd/driver_wired.c - copied unchanged from r209166, head/contrib/wpa/hostapd/driver_wired.c projects/ppc64/contrib/wpa/hostapd/radiotap.c - copied unchanged from r209166, head/contrib/wpa/hostapd/radiotap.c projects/ppc64/contrib/wpa/hostapd/radiotap.h - copied unchanged from r209166, head/contrib/wpa/hostapd/radiotap.h projects/ppc64/contrib/wpa/hostapd/radiotap_iter.h - copied unchanged from r209166, head/contrib/wpa/hostapd/radiotap_iter.h projects/ppc64/contrib/wpa/src/common/nl80211_copy.h - copied unchanged from r209166, head/contrib/wpa/src/common/nl80211_copy.h projects/ppc64/contrib/wpa/src/common/wireless_copy.h - copied unchanged from r209166, head/contrib/wpa/src/common/wireless_copy.h projects/ppc64/contrib/wpa/src/drivers/Makefile - copied unchanged from r209166, head/contrib/wpa/src/drivers/Makefile projects/ppc64/contrib/wpa/src/drivers/driver_ndis_.c - copied unchanged from r209166, head/contrib/wpa/src/drivers/driver_ndis_.c projects/ppc64/contrib/wpa/src/drivers/driver_ndiswrapper.c - copied unchanged from r209166, head/contrib/wpa/src/drivers/driver_ndiswrapper.c projects/ppc64/contrib/wpa/src/drivers/driver_wired.c - copied unchanged from r209166, head/contrib/wpa/src/drivers/driver_wired.c projects/ppc64/contrib/wpa/src/drivers/ndis_events.c - copied unchanged from r209166, head/contrib/wpa/src/drivers/ndis_events.c projects/ppc64/contrib/wpa/src/drivers/radiotap.c - copied unchanged from r209166, head/contrib/wpa/src/drivers/radiotap.c projects/ppc64/contrib/wpa/src/drivers/radiotap.h - copied unchanged from r209166, head/contrib/wpa/src/drivers/radiotap.h projects/ppc64/contrib/wpa/src/drivers/radiotap_iter.h - copied unchanged from r209166, head/contrib/wpa/src/drivers/radiotap_iter.h projects/ppc64/contrib/wpa/src/l2_packet/Makefile - copied unchanged from r209166, head/contrib/wpa/src/l2_packet/Makefile projects/ppc64/contrib/wpa/src/l2_packet/l2_packet_freebsd.c - copied unchanged from r209166, head/contrib/wpa/src/l2_packet/l2_packet_freebsd.c projects/ppc64/contrib/wpa/src/l2_packet/l2_packet_ndis.c - copied unchanged from r209166, head/contrib/wpa/src/l2_packet/l2_packet_ndis.c projects/ppc64/contrib/wpa/src/l2_packet/l2_packet_none.c - copied unchanged from r209166, head/contrib/wpa/src/l2_packet/l2_packet_none.c projects/ppc64/contrib/wpa/src/utils/eloop_none.c - copied unchanged from r209166, head/contrib/wpa/src/utils/eloop_none.c projects/ppc64/contrib/wpa/src/utils/eloop_win.c - copied unchanged from r209166, head/contrib/wpa/src/utils/eloop_win.c projects/ppc64/contrib/wpa/src/utils/os_none.c - copied unchanged from r209166, head/contrib/wpa/src/utils/os_none.c projects/ppc64/contrib/wpa/src/utils/os_win32.c - copied unchanged from r209166, head/contrib/wpa/src/utils/os_win32.c projects/ppc64/contrib/wpa/wpa_supplicant/Makefile - copied unchanged from r209166, head/contrib/wpa/wpa_supplicant/Makefile projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c - copied unchanged from r209166, head/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c projects/ppc64/contrib/wpa/wpa_supplicant/main_none.c - copied unchanged from r209166, head/contrib/wpa/wpa_supplicant/main_none.c projects/ppc64/contrib/wpa/wpa_supplicant/nmake.mak - copied unchanged from r209166, head/contrib/wpa/wpa_supplicant/nmake.mak projects/ppc64/lib/libc/posix1e/acl_id_to_name.c - copied unchanged from r209166, head/lib/libc/posix1e/acl_id_to_name.c projects/ppc64/lib/libedit/filecomplete.c - copied unchanged from r209166, head/lib/libedit/filecomplete.c projects/ppc64/lib/libedit/filecomplete.h - copied unchanged from r209166, head/lib/libedit/filecomplete.h projects/ppc64/share/mk/bsd.arch.inc.mk - copied unchanged from r209166, head/share/mk/bsd.arch.inc.mk - copied unchanged from r209166, head/sys/arm/conf/SHEEVAPLUG projects/ppc64/sys/arm/include/fdt.h - copied unchanged from r209166, head/sys/arm/include/fdt.h projects/ppc64/sys/arm/include/ofw_machdep.h - copied unchanged from r209166, head/sys/arm/include/ofw_machdep.h projects/ppc64/sys/dev/fdt/fdt_arm.c - copied unchanged from r209166, head/sys/dev/fdt/fdt_arm.c projects/ppc64/sys/dev/usb/controller/ehci_mv.c - copied unchanged from r209166, head/sys/dev/usb/controller/ehci_mv.c Directory Properties: projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) Deleted: projects/ppc64/contrib/wpa/hostapd/.gitignore projects/ppc64/contrib/wpa/hostapd/doc/.gitignore projects/ppc64/contrib/wpa/src/common/.gitignore projects/ppc64/contrib/wpa/src/crypto/.gitignore projects/ppc64/contrib/wpa/src/eap_common/.gitignore projects/ppc64/contrib/wpa/src/eap_peer/.gitignore projects/ppc64/contrib/wpa/src/eap_server/.gitignore projects/ppc64/contrib/wpa/src/eapol_supp/.gitignore projects/ppc64/contrib/wpa/src/hlr_auc_gw/.gitignore projects/ppc64/contrib/wpa/src/radius/.gitignore projects/ppc64/contrib/wpa/src/rsn_supp/.gitignore projects/ppc64/contrib/wpa/src/tls/.gitignore projects/ppc64/contrib/wpa/src/utils/.gitignore projects/ppc64/contrib/wpa/src/wps/.gitignore projects/ppc64/contrib/wpa/wpa_supplicant/.gitignore projects/ppc64/contrib/wpa/wpa_supplicant/doc/.gitignore projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/.gitignore projects/ppc64/sys/arm/mv/discovery/db78xxx.c projects/ppc64/sys/arm/mv/kirkwood/db88f6xxx.c projects/ppc64/sys/arm/mv/kirkwood/files.db88f6xxx projects/ppc64/sys/arm/mv/obio.c projects/ppc64/sys/dev/uart/uart_bus_mbus.c projects/ppc64/sys/dev/uart/uart_cpu_mv.c projects/ppc64/sys/dev/usb/controller/ehci_mbus.c projects/ppc64/usr.bin/tftp/extern.h projects/ppc64/usr.bin/tftp/tftpsubs.c projects/ppc64/usr.bin/tftp/tftpsubs.h projects/ppc64/usr.sbin/wpa/l2_packet.c projects/ppc64/usr.sbin/wpa/wpa_supplicant/driver_wired.c Modified: projects/ppc64/Makefile projects/ppc64/Makefile.inc1 projects/ppc64/bin/getfacl/getfacl.1 projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l projects/ppc64/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/ppc64/contrib/wpa/hostapd/ChangeLog projects/ppc64/contrib/wpa/hostapd/README-WPS projects/ppc64/contrib/wpa/hostapd/ap.h projects/ppc64/contrib/wpa/hostapd/beacon.c projects/ppc64/contrib/wpa/hostapd/config.c projects/ppc64/contrib/wpa/hostapd/config.h projects/ppc64/contrib/wpa/hostapd/ctrl_iface.c projects/ppc64/contrib/wpa/hostapd/drivers.c projects/ppc64/contrib/wpa/hostapd/hostapd.8 projects/ppc64/contrib/wpa/hostapd/hostapd.c projects/ppc64/contrib/wpa/hostapd/hostapd.conf projects/ppc64/contrib/wpa/hostapd/hostapd_cli.1 projects/ppc64/contrib/wpa/hostapd/hostapd_cli.c projects/ppc64/contrib/wpa/hostapd/hw_features.c projects/ppc64/contrib/wpa/hostapd/ieee802_11.c projects/ppc64/contrib/wpa/hostapd/ieee802_1x.c projects/ppc64/contrib/wpa/hostapd/preauth.c projects/ppc64/contrib/wpa/hostapd/wme.c projects/ppc64/contrib/wpa/hostapd/wme.h projects/ppc64/contrib/wpa/hostapd/wpa.c projects/ppc64/contrib/wpa/hostapd/wpa.h projects/ppc64/contrib/wpa/hostapd/wpa_auth_i.h projects/ppc64/contrib/wpa/hostapd/wpa_auth_ie.c projects/ppc64/contrib/wpa/hostapd/wpa_ft.c projects/ppc64/contrib/wpa/hostapd/wps_hostapd.c projects/ppc64/contrib/wpa/hostapd/wps_hostapd.h projects/ppc64/contrib/wpa/src/common/ieee802_11_common.c projects/ppc64/contrib/wpa/src/common/ieee802_11_common.h projects/ppc64/contrib/wpa/src/common/ieee802_11_defs.h projects/ppc64/contrib/wpa/src/common/version.h projects/ppc64/contrib/wpa/src/common/wpa_common.c projects/ppc64/contrib/wpa/src/crypto/crypto_cryptoapi.c projects/ppc64/contrib/wpa/src/crypto/crypto_gnutls.c projects/ppc64/contrib/wpa/src/crypto/crypto_internal.c projects/ppc64/contrib/wpa/src/crypto/dh_groups.c projects/ppc64/contrib/wpa/src/crypto/ms_funcs.c projects/ppc64/contrib/wpa/src/crypto/rc4.c projects/ppc64/contrib/wpa/src/crypto/rc4.h projects/ppc64/contrib/wpa/src/crypto/sha1.c projects/ppc64/contrib/wpa/src/crypto/sha256.c projects/ppc64/contrib/wpa/src/crypto/tls.h projects/ppc64/contrib/wpa/src/crypto/tls_gnutls.c projects/ppc64/contrib/wpa/src/crypto/tls_openssl.c projects/ppc64/contrib/wpa/src/drivers/driver.h projects/ppc64/contrib/wpa/src/drivers/driver_ndis.c projects/ppc64/contrib/wpa/src/eap_common/eap_defs.h projects/ppc64/contrib/wpa/src/eap_common/eap_fast_common.h projects/ppc64/contrib/wpa/src/eap_common/eap_tlv_common.h projects/ppc64/contrib/wpa/src/eap_peer/eap_fast.c projects/ppc64/contrib/wpa/src/eap_peer/eap_gpsk.c projects/ppc64/contrib/wpa/src/eap_peer/eap_methods.h projects/ppc64/contrib/wpa/src/eap_peer/eap_sim.c projects/ppc64/contrib/wpa/src/eap_peer/eap_tls_common.c projects/ppc64/contrib/wpa/src/eap_peer/eap_tnc.c projects/ppc64/contrib/wpa/src/eap_peer/eap_ttls.c projects/ppc64/contrib/wpa/src/eap_peer/eap_wsc.c projects/ppc64/contrib/wpa/src/eap_peer/tncc.c projects/ppc64/contrib/wpa/src/eap_server/eap.c projects/ppc64/contrib/wpa/src/eap_server/eap_fast.c projects/ppc64/contrib/wpa/src/eap_server/eap_gpsk.c projects/ppc64/contrib/wpa/src/eap_server/eap_i.h projects/ppc64/contrib/wpa/src/eap_server/eap_tls_common.c projects/ppc64/contrib/wpa/src/eap_server/eap_tnc.c projects/ppc64/contrib/wpa/src/eap_server/eap_ttls.c projects/ppc64/contrib/wpa/src/eapol_supp/eapol_supp_sm.c projects/ppc64/contrib/wpa/src/hlr_auc_gw/hlr_auc_gw.c projects/ppc64/contrib/wpa/src/radius/radius_client.c projects/ppc64/contrib/wpa/src/radius/radius_server.c projects/ppc64/contrib/wpa/src/rsn_supp/wpa.c projects/ppc64/contrib/wpa/src/rsn_supp/wpa_ft.c projects/ppc64/contrib/wpa/src/rsn_supp/wpa_i.h projects/ppc64/contrib/wpa/src/tls/rsa.c projects/ppc64/contrib/wpa/src/tls/tlsv1_client.c projects/ppc64/contrib/wpa/src/tls/tlsv1_server_read.c projects/ppc64/contrib/wpa/src/utils/base64.c projects/ppc64/contrib/wpa/src/utils/common.c projects/ppc64/contrib/wpa/src/utils/common.h projects/ppc64/contrib/wpa/src/utils/os_unix.c projects/ppc64/contrib/wpa/src/utils/wpa_debug.c projects/ppc64/contrib/wpa/src/utils/wpa_debug.h projects/ppc64/contrib/wpa/src/utils/wpabuf.c projects/ppc64/contrib/wpa/src/wps/httpread.c projects/ppc64/contrib/wpa/src/wps/wps.h projects/ppc64/contrib/wpa/src/wps/wps_attr_parse.c projects/ppc64/contrib/wpa/src/wps/wps_common.c projects/ppc64/contrib/wpa/src/wps/wps_enrollee.c projects/ppc64/contrib/wpa/src/wps/wps_i.h projects/ppc64/contrib/wpa/src/wps/wps_registrar.c projects/ppc64/contrib/wpa/src/wps/wps_upnp.c projects/ppc64/contrib/wpa/src/wps/wps_upnp_event.c projects/ppc64/contrib/wpa/src/wps/wps_upnp_i.h projects/ppc64/contrib/wpa/src/wps/wps_upnp_ssdp.c projects/ppc64/contrib/wpa/src/wps/wps_upnp_web.c projects/ppc64/contrib/wpa/wpa_supplicant/ChangeLog projects/ppc64/contrib/wpa/wpa_supplicant/README projects/ppc64/contrib/wpa/wpa_supplicant/README-WPS projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_dbus.c projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_dbus.h projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_dbus_handlers.c projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_dbus_handlers.h projects/ppc64/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c projects/ppc64/contrib/wpa/wpa_supplicant/defconfig projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_background.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_cli.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_gui.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_passphrase.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_priv.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_supplicant.8 projects/ppc64/contrib/wpa/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 projects/ppc64/contrib/wpa/wpa_supplicant/doc/porting.doxygen projects/ppc64/contrib/wpa/wpa_supplicant/eapol_test.c projects/ppc64/contrib/wpa/wpa_supplicant/events.c projects/ppc64/contrib/wpa/wpa_supplicant/mlme.c projects/ppc64/contrib/wpa/wpa_supplicant/scan.c projects/ppc64/contrib/wpa/wpa_supplicant/wpa_priv.c projects/ppc64/contrib/wpa/wpa_supplicant/wpa_supplicant.c projects/ppc64/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h projects/ppc64/contrib/wpa/wpa_supplicant/wpas_glue.c projects/ppc64/contrib/wpa/wpa_supplicant/wps_supplicant.c projects/ppc64/etc/Makefile projects/ppc64/games/random/random.c projects/ppc64/games/random/randomize_fd.c projects/ppc64/gnu/usr.bin/Makefile projects/ppc64/include/histedit.h projects/ppc64/lib/clang/clang.build.mk projects/ppc64/lib/clang/include/llvm/Config/config.h projects/ppc64/lib/libarchive/archive_entry.3 projects/ppc64/lib/libarchive/archive_read.3 projects/ppc64/lib/libarchive/archive_read_disk.3 projects/ppc64/lib/libarchive/archive_util.3 projects/ppc64/lib/libarchive/archive_write.3 projects/ppc64/lib/libarchive/archive_write_disk.3 projects/ppc64/lib/libarchive/libarchive-formats.5 projects/ppc64/lib/libarchive/tar.5 projects/ppc64/lib/libc/gen/getcap.3 projects/ppc64/lib/libc/net/sctp_recvmsg.3 projects/ppc64/lib/libc/posix1e/Makefile.inc projects/ppc64/lib/libc/posix1e/acl_support.c projects/ppc64/lib/libc/stdlib/atexit.c projects/ppc64/lib/libedit/Makefile projects/ppc64/lib/libelf/elf_getbase.3 projects/ppc64/lib/libelf/elf_getbase.c projects/ppc64/lib/libkse/Makefile projects/ppc64/lib/libkse/arch/amd64/Makefile.inc projects/ppc64/lib/libkse/arch/arm/Makefile.inc projects/ppc64/lib/libkse/arch/i386/Makefile.inc projects/ppc64/lib/libkse/arch/ia64/Makefile.inc projects/ppc64/lib/libkse/arch/powerpc/Makefile.inc projects/ppc64/lib/libkse/arch/sparc64/Makefile.inc projects/ppc64/lib/libkse/support/Makefile.inc projects/ppc64/lib/liblzma/config.h projects/ppc64/lib/msun/Symbol.map projects/ppc64/lib/msun/src/math.h projects/ppc64/lib/msun/src/s_isnan.c projects/ppc64/sbin/camcontrol/modeedit.c projects/ppc64/sbin/ccdconfig/ccdconfig.c projects/ppc64/sbin/gbde/gbde.c projects/ppc64/sbin/gvinum/gvinum.c projects/ppc64/sbin/iscontrol/config.c projects/ppc64/share/man/man1/builtin.1 projects/ppc64/share/man/man4/ae.4 projects/ppc64/share/man/man4/io.4 projects/ppc64/share/man/man4/textdump.4 projects/ppc64/share/man/man9/bus_generic_new_pass.9 projects/ppc64/share/man/man9/bus_set_pass.9 projects/ppc64/share/man/man9/insmntque.9 projects/ppc64/share/man/man9/vfs_mountedfrom.9 projects/ppc64/share/misc/committers-ports.dot projects/ppc64/share/mk/bsd.own.mk projects/ppc64/share/mk/sys.mk projects/ppc64/share/termcap/termcap.5 projects/ppc64/sys/amd64/acpica/madt.c projects/ppc64/sys/amd64/amd64/intr_machdep.c projects/ppc64/sys/amd64/amd64/legacy.c projects/ppc64/sys/amd64/amd64/pmap.c projects/ppc64/sys/arm/arm/nexus.c projects/ppc64/sys/arm/arm/pmap.c projects/ppc64/sys/arm/conf/DB-78XXX projects/ppc64/sys/arm/conf/DB-88F5XXX projects/ppc64/sys/arm/conf/DB-88F6XXX projects/ppc64/sys/arm/include/metadata.h projects/ppc64/sys/arm/mv/bus_space.c projects/ppc64/sys/arm/mv/common.c projects/ppc64/sys/arm/mv/discovery/discovery.c projects/ppc64/sys/arm/mv/discovery/files.db78xxx projects/ppc64/sys/arm/mv/files.mv projects/ppc64/sys/arm/mv/gpio.c projects/ppc64/sys/arm/mv/ic.c projects/ppc64/sys/arm/mv/kirkwood/kirkwood.c projects/ppc64/sys/arm/mv/kirkwood/sheevaplug.c projects/ppc64/sys/arm/mv/kirkwood/std.db88f6xxx projects/ppc64/sys/arm/mv/kirkwood/std.sheevaplug projects/ppc64/sys/arm/mv/mv_machdep.c projects/ppc64/sys/arm/mv/mv_pci.c projects/ppc64/sys/arm/mv/mv_sata.c projects/ppc64/sys/arm/mv/mvreg.h projects/ppc64/sys/arm/mv/mvvar.h projects/ppc64/sys/arm/mv/mvwin.h projects/ppc64/sys/arm/mv/orion/db88f5xxx.c projects/ppc64/sys/arm/mv/orion/orion.c projects/ppc64/sys/arm/mv/rtc.c projects/ppc64/sys/arm/mv/timer.c projects/ppc64/sys/arm/mv/twsi.c projects/ppc64/sys/boot/arm/uboot/Makefile projects/ppc64/sys/boot/i386/pxeldr/Makefile projects/ppc64/sys/boot/powerpc/uboot/Makefile projects/ppc64/sys/boot/uboot/common/metadata.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/ppc64/sys/cddl/dev/cyclic/cyclic.c projects/ppc64/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/ppc64/sys/cddl/dev/dtrace/dtrace_debug.c projects/ppc64/sys/cddl/dev/dtrace/dtrace_load.c projects/ppc64/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/ppc64/sys/compat/linprocfs/linprocfs.c projects/ppc64/sys/compat/ndis/subr_usbd.c projects/ppc64/sys/conf/Makefile.arm projects/ppc64/sys/conf/files projects/ppc64/sys/conf/files.arm projects/ppc64/sys/conf/options.arm projects/ppc64/sys/dev/acpi_support/acpi_asus.c projects/ppc64/sys/dev/acpi_support/acpi_fujitsu.c projects/ppc64/sys/dev/acpi_support/acpi_hp.c projects/ppc64/sys/dev/acpi_support/acpi_ibm.c projects/ppc64/sys/dev/acpica/acpi_cpu.c projects/ppc64/sys/dev/acpica/acpi_dock.c projects/ppc64/sys/dev/acpica/acpi_thermal.c projects/ppc64/sys/dev/acpica/acpi_video.c projects/ppc64/sys/dev/ath/if_ath.c projects/ppc64/sys/dev/cxgb/cxgb_adapter.h projects/ppc64/sys/dev/cxgb/cxgb_main.c projects/ppc64/sys/dev/cxgb/cxgb_sge.c projects/ppc64/sys/dev/e1000/if_igb.c projects/ppc64/sys/dev/fdt/fdtbus.c projects/ppc64/sys/dev/ixgbe/ixgbe.c projects/ppc64/sys/dev/mge/if_mge.c projects/ppc64/sys/dev/mge/if_mgevar.h projects/ppc64/sys/dev/pci/pci.c projects/ppc64/sys/dev/pci/pcivar.h projects/ppc64/sys/dev/usb/usb_dev.c projects/ppc64/sys/dev/usb/usb_device.c projects/ppc64/sys/dev/usb/usb_process.c projects/ppc64/sys/dev/usb/wlan/if_run.c projects/ppc64/sys/dev/usb/wlan/if_runvar.h projects/ppc64/sys/fs/nfsclient/nfs_clbio.c projects/ppc64/sys/fs/nfsclient/nfs_clcomsubs.c projects/ppc64/sys/fs/nfsclient/nfs_clrpcops.c projects/ppc64/sys/fs/nfsclient/nfs_clsubs.c projects/ppc64/sys/fs/nfsclient/nfs_clvnops.c projects/ppc64/sys/fs/nfsserver/nfs_nfsdsocket.c projects/ppc64/sys/fs/procfs/procfs_type.c projects/ppc64/sys/geom/geom_dev.c projects/ppc64/sys/i386/acpica/madt.c projects/ppc64/sys/i386/i386/intr_machdep.c projects/ppc64/sys/i386/i386/legacy.c projects/ppc64/sys/i386/i386/mp_machdep.c projects/ppc64/sys/i386/i386/pmap.c projects/ppc64/sys/i386/i386/tsc.c projects/ppc64/sys/i386/xen/pmap.c projects/ppc64/sys/ia64/ia64/busdma_machdep.c projects/ppc64/sys/ia64/ia64/exception.S projects/ppc64/sys/ia64/ia64/pmap.c projects/ppc64/sys/ia64/ia64/vm_machdep.c projects/ppc64/sys/ia64/include/md_var.h projects/ppc64/sys/kern/bus_if.m projects/ppc64/sys/kern/kern_clock.c projects/ppc64/sys/kern/kern_conf.c projects/ppc64/sys/kern/kern_switch.c projects/ppc64/sys/kern/kern_timeout.c projects/ppc64/sys/kern/sched_4bsd.c projects/ppc64/sys/kern/sched_ule.c projects/ppc64/sys/kern/subr_bus.c projects/ppc64/sys/kern/subr_kdb.c projects/ppc64/sys/kern/subr_lock.c projects/ppc64/sys/kern/subr_pcpu.c projects/ppc64/sys/kern/subr_smp.c projects/ppc64/sys/kern/subr_taskqueue.c projects/ppc64/sys/kern/sysv_sem.c projects/ppc64/sys/kern/sysv_shm.c projects/ppc64/sys/kern/vfs_bio.c projects/ppc64/sys/mips/mips/pmap.c projects/ppc64/sys/net/flowtable.c projects/ppc64/sys/net/if_epair.c projects/ppc64/sys/net/netisr.c projects/ppc64/sys/net80211/ieee80211_rssadapt.c projects/ppc64/sys/netinet/sctp_pcb.c projects/ppc64/sys/netinet/sctp_usrreq.c projects/ppc64/sys/netinet/sctputil.c projects/ppc64/sys/nfsclient/nfs_bio.c projects/ppc64/sys/nfsclient/nfs_subs.c projects/ppc64/sys/nfsclient/nfs_vnops.c projects/ppc64/sys/powerpc/aim/mmu_oea.c projects/ppc64/sys/powerpc/aim/mmu_oea64.c projects/ppc64/sys/powerpc/aim/mp_cpudep.c projects/ppc64/sys/powerpc/aim/platform_chrp.c projects/ppc64/sys/powerpc/booke/pmap.c projects/ppc64/sys/sparc64/sparc64/mp_locore.S projects/ppc64/sys/sparc64/sparc64/pmap.c projects/ppc64/sys/sun4v/sun4v/pmap.c projects/ppc64/sys/sys/buf.h projects/ppc64/sys/sys/bus.h projects/ppc64/sys/sys/conf.h projects/ppc64/sys/sys/file.h projects/ppc64/sys/sys/pcpu.h projects/ppc64/sys/sys/smp.h projects/ppc64/sys/sys/vnode.h projects/ppc64/sys/ufs/ffs/ffs_softdep.c projects/ppc64/sys/vm/uma_core.c projects/ppc64/sys/x86/x86/mca.c projects/ppc64/sys/x86/x86/msi.c projects/ppc64/usr.bin/clang/Makefile projects/ppc64/usr.bin/hexdump/od.1 projects/ppc64/usr.bin/tar/read.c projects/ppc64/usr.bin/tar/write.c projects/ppc64/usr.sbin/Makefile projects/ppc64/usr.sbin/arp/arp.c projects/ppc64/usr.sbin/config/mkmakefile.c projects/ppc64/usr.sbin/nfscbd/nfscbd.8 projects/ppc64/usr.sbin/service/service.8 projects/ppc64/usr.sbin/sysinstall/Makefile projects/ppc64/usr.sbin/sysinstall/disks.c projects/ppc64/usr.sbin/sysinstall/install.c projects/ppc64/usr.sbin/sysinstall/installUpgrade.c projects/ppc64/usr.sbin/sysinstall/media.c projects/ppc64/usr.sbin/sysinstall/sysinstall.h projects/ppc64/usr.sbin/sysinstall/system.c projects/ppc64/usr.sbin/sysinstall/tcpip.c projects/ppc64/usr.sbin/wpa/hostapd/Makefile projects/ppc64/usr.sbin/wpa/wpa_supplicant/Makefile Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/Makefile ============================================================================== --- projects/ppc64/Makefile Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/Makefile Mon Jun 14 17:28:32 2010 (r209167) @@ -89,7 +89,8 @@ TGTS= all all-man buildenv buildenvvars obj objlink regress rerelease showconfig tags toolchain update \ _worldtmp _legacy _bootstrap-tools _cleanobj _obj \ _build-tools _cross-tools _includes _libraries _depend \ - build32 distribute32 install32 xdev xdev-build xdev-install + build32 builddtb distribute32 install32 xdev xdev-build xdev-install \ + TGTS+= ${SUBDIR_TARGETS} BITGTS= files includes Modified: projects/ppc64/Makefile.inc1 ============================================================================== --- projects/ppc64/Makefile.inc1 Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/Makefile.inc1 Mon Jun 14 17:28:32 2010 (r209167) @@ -982,6 +982,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif +.if ${MK_FDT} != "no" +_dtc= gnu/usr.bin/dtc +.endif + bootstrap-tools: .for _tool in \ ${_clang_tblgen} \ @@ -990,6 +994,7 @@ bootstrap-tools: ${_gperf} \ ${_groff} \ ${_ar} \ + ${_dtc} \ usr.bin/lorder \ usr.bin/makewhatis \ ${_mklocale} \ @@ -1462,3 +1467,39 @@ _xi-links: ../../../../usr/bin/${XDDIR}${OSREL}-$$i; \ done .endif + +.if !empty(KRNLOBJDIR) && !empty(KERNCONF) +DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/ + +.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE) +FDT_DTS_FILE!= grep "^makeoptions[[:space:]]\+FDT_DTS_FILE" \ + ${KERNCONFDIR}/${KERNCONF} 2> /dev/null | cut -d= -f2 +.endif + +.endif + +.if !defined(DTBOUTPUTPATH) || !exists(${DTBOUTPUTPATH}) +DTBOUTPUTPATH= ${.CURDIR} +.endif + +# +# Build 'standalone' Device Tree Blob +# +builddtb: + @if [ "${FDT_DTS_FILE}" = "" ]; then \ + echo "ERROR: FDT_DTS_FILE must be specified!"; \ + exit 1; \ + fi; \ + if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ]; then \ + echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \ + exist!"; \ + exit 1; \ + fi; \ + if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then \ + echo "WARNING: DTB will be placed in the current working \ + directory"; \ + fi + @PATH=${TMPPATH} \ + dtc -O dtb -o \ + ${DTBOUTPUTPATH}/`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 \ + -p 1024 ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} Modified: projects/ppc64/bin/getfacl/getfacl.1 ============================================================================== --- projects/ppc64/bin/getfacl/getfacl.1 Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/bin/getfacl/getfacl.1 Mon Jun 14 17:28:32 2010 (r209167) @@ -48,7 +48,7 @@ the specified file(s) to standard output If the .Xr getconf 1 utility indicates that -.Eq { } Va _POSIX_ACL_EXTENDED +.Brq Va _POSIX_ACL_EXTENDED is not in effect for a .Ar file then the standard discretionary access permissions are interpreted as Modified: projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Mon Jun 14 17:28:32 2010 (r209167) @@ -811,7 +811,8 @@ id_or_type(const char *s) longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); } - unput(c0); + if (c0 != EOF) + unput(c0); return (ttok); } Modified: projects/ppc64/contrib/llvm/tools/clang/lib/Basic/Version.cpp ============================================================================== --- projects/ppc64/contrib/llvm/tools/clang/lib/Basic/Version.cpp Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/llvm/tools/clang/lib/Basic/Version.cpp Mon Jun 14 17:28:32 2010 (r209167) @@ -70,6 +70,9 @@ std::string getClangFullVersion() { #endif OS << "clang version " CLANG_VERSION_STRING " (" << getClangFullRepositoryVersion() << ')'; +#ifdef CLANG_VENDOR_SUFFIX + OS << CLANG_VENDOR_SUFFIX; +#endif return OS.str(); } Modified: projects/ppc64/contrib/wpa/hostapd/ChangeLog ============================================================================== --- projects/ppc64/contrib/wpa/hostapd/ChangeLog Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/wpa/hostapd/ChangeLog Mon Jun 14 17:28:32 2010 (r209167) @@ -1,5 +1,37 @@ ChangeLog for hostapd +2010-01-12 - v0.6.10 + * fixed SHA-256 based key derivation function to match with the + standard when using CCMP (for IEEE 802.11r and IEEE 802.11w) + (note: this breaks interoperability with previous version) [Bug 307] + * fixed WPS selected registrar expiration for internal PIN registrar + * disable PMTU discovery for RADIUS packets + * fixed WPS UPnP SSDP on 32-bit targets + * fixed WPS AP reconfiguration with drivers that do not use hostapd + MLME + * fixed RSN parameter setting for multi-BSS case + * added WPS workarounds for known interoperability issues with broken, + deployed implementation + * update IEEE 802.11w implementation to match with the published + standard + * fixed OpCode when proxying WSC_ACK or WSC_NACK from WPS ER + * fixed proxying of WSC_NACK to WPS ER + * fixed compilation with newer GnuTLS versions + * added support for defining timeout for WPS PINs + * fixed WPS Probe Request processing to handle missing required + attribute + * fixed PKCS#12 use with OpenSSL 1.0.0 + +2009-03-23 - v0.6.9 + * driver_nl80211: fixed STA accounting data collection (TX/RX bytes + reported correctly; TX/RX packets not yet available from kernel) + * fixed EAPOL/EAP reauthentication when using an external RADIUS + authentication server + * driver_prism54: fixed segmentation fault on initialization + * fixed TNC with EAP-TTLS + * fixed IEEE 802.11r key derivation function to match with the standard + (note: this breaks interoperability with previous version) [Bug 303] + 2009-02-15 - v0.6.8 * increased hostapd_cli ping interval to 5 seconds and made this configurable with a new command line options (-G) Copied: projects/ppc64/contrib/wpa/hostapd/Makefile (from r209166, head/contrib/wpa/hostapd/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/contrib/wpa/hostapd/Makefile Mon Jun 14 17:28:32 2010 (r209167, copy of r209166, head/contrib/wpa/hostapd/Makefile) @@ -0,0 +1,635 @@ +ifndef CC +CC=gcc +endif + +ifndef CFLAGS +CFLAGS = -MMD -O2 -Wall -g +endif + +# define HOSTAPD_DUMP_STATE to include SIGUSR1 handler for dumping state to +# a file (undefine it, if you want to save in binary size) +CFLAGS += -DHOSTAPD_DUMP_STATE + +CFLAGS += -I../src +CFLAGS += -I../src/crypto +CFLAGS += -I../src/utils +CFLAGS += -I../src/common + +# Uncomment following line and set the path to your kernel tree include +# directory if your C library does not include all header files. +# CFLAGS += -DUSE_KERNEL_HEADERS -I/usr/src/linux/include + +-include .config + +ifndef CONFIG_OS +ifdef CONFIG_NATIVE_WINDOWS +CONFIG_OS=win32 +else +CONFIG_OS=unix +endif +endif + +ifeq ($(CONFIG_OS), internal) +CFLAGS += -DOS_NO_C_LIB_DEFINES +endif + +ifdef CONFIG_NATIVE_WINDOWS +CFLAGS += -DCONFIG_NATIVE_WINDOWS +LIBS += -lws2_32 +endif + +OBJS = hostapd.o ieee802_1x.o eapol_sm.o \ + ieee802_11.o config.o ieee802_11_auth.o accounting.o \ + sta_info.o wpa.o ctrl_iface.o \ + drivers.o preauth.o pmksa_cache.o beacon.o \ + hw_features.o wme.o ap_list.o \ + mlme.o vlan_init.o wpa_auth_ie.o + +OBJS += ../src/utils/eloop.o +OBJS += ../src/utils/common.o +OBJS += ../src/utils/wpa_debug.o +OBJS += ../src/utils/wpabuf.o +OBJS += ../src/utils/os_$(CONFIG_OS).o +OBJS += ../src/utils/ip_addr.o + +OBJS += ../src/common/ieee802_11_common.o +OBJS += ../src/common/wpa_common.o + +OBJS += ../src/radius/radius.o +OBJS += ../src/radius/radius_client.o + +OBJS += ../src/crypto/md5.o +OBJS += ../src/crypto/rc4.o +OBJS += ../src/crypto/md4.o +OBJS += ../src/crypto/sha1.o +OBJS += ../src/crypto/des.o +OBJS += ../src/crypto/aes_wrap.o +OBJS += ../src/crypto/aes.o + +HOBJS=../src/hlr_auc_gw/hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/hlr_auc_gw/milenage.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o + +CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX + +ifdef CONFIG_IAPP +CFLAGS += -DCONFIG_IAPP +OBJS += iapp.o +endif + +ifdef CONFIG_RSN_PREAUTH +CFLAGS += -DCONFIG_RSN_PREAUTH +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_PEERKEY +CFLAGS += -DCONFIG_PEERKEY +OBJS += peerkey.o +endif + +ifdef CONFIG_IEEE80211W +CFLAGS += -DCONFIG_IEEE80211W +NEED_SHA256=y +endif + +ifdef CONFIG_IEEE80211R +CFLAGS += -DCONFIG_IEEE80211R +OBJS += wpa_ft.o +NEED_SHA256=y +endif + +ifdef CONFIG_IEEE80211N +CFLAGS += -DCONFIG_IEEE80211N +endif + +ifdef CONFIG_DRIVER_HOSTAP +CFLAGS += -DCONFIG_DRIVER_HOSTAP +OBJS += driver_hostap.o +endif + +ifdef CONFIG_DRIVER_WIRED +CFLAGS += -DCONFIG_DRIVER_WIRED +OBJS += driver_wired.o +endif + +ifdef CONFIG_DRIVER_MADWIFI +CFLAGS += -DCONFIG_DRIVER_MADWIFI +OBJS += driver_madwifi.o +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_DRIVER_ATHEROS +CFLAGS += -DCONFIG_DRIVER_ATHEROS +OBJS += driver_atheros.o +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_DRIVER_PRISM54 +CFLAGS += -DCONFIG_DRIVER_PRISM54 +OBJS += driver_prism54.o +endif + +ifdef CONFIG_DRIVER_NL80211 +CFLAGS += -DCONFIG_DRIVER_NL80211 +OBJS += driver_nl80211.o radiotap.o +LIBS += -lnl +ifdef CONFIG_LIBNL20 +LIBS += -lnl-genl +CFLAGS += -DCONFIG_LIBNL20 +endif +endif + +ifdef CONFIG_DRIVER_BSD +CFLAGS += -DCONFIG_DRIVER_BSD +OBJS += driver_bsd.o +CONFIG_L2_PACKET=y +CONFIG_DNET_PCAP=y +CONFIG_L2_FREEBSD=y +endif + +ifdef CONFIG_DRIVER_TEST +CFLAGS += -DCONFIG_DRIVER_TEST +OBJS += driver_test.o +endif + +ifdef CONFIG_DRIVER_NONE +CFLAGS += -DCONFIG_DRIVER_NONE +OBJS += driver_none.o +endif + +ifdef CONFIG_L2_PACKET +ifdef CONFIG_DNET_PCAP +ifdef CONFIG_L2_FREEBSD +LIBS += -lpcap +OBJS += ../src/l2_packet/l2_packet_freebsd.o +else +LIBS += -ldnet -lpcap +OBJS += ../src/l2_packet/l2_packet_pcap.o +endif +else +OBJS += ../src/l2_packet/l2_packet_linux.o +endif +else +OBJS += ../src/l2_packet/l2_packet_none.o +endif + + +ifdef CONFIG_EAP_MD5 +CFLAGS += -DEAP_MD5 +OBJS += ../src/eap_server/eap_md5.o +CHAP=y +endif + +ifdef CONFIG_EAP_TLS +CFLAGS += -DEAP_TLS +OBJS += ../src/eap_server/eap_tls.o +TLS_FUNCS=y +endif + +ifdef CONFIG_EAP_PEAP +CFLAGS += -DEAP_PEAP +OBJS += ../src/eap_server/eap_peap.o +OBJS += ../src/eap_common/eap_peap_common.o +TLS_FUNCS=y +CONFIG_EAP_MSCHAPV2=y +endif + +ifdef CONFIG_EAP_TTLS +CFLAGS += -DEAP_TTLS +OBJS += ../src/eap_server/eap_ttls.o +TLS_FUNCS=y +CHAP=y +endif + +ifdef CONFIG_EAP_MSCHAPV2 +CFLAGS += -DEAP_MSCHAPv2 +OBJS += ../src/eap_server/eap_mschapv2.o +MS_FUNCS=y +endif + +ifdef CONFIG_EAP_GTC +CFLAGS += -DEAP_GTC +OBJS += ../src/eap_server/eap_gtc.o +endif + +ifdef CONFIG_EAP_SIM +CFLAGS += -DEAP_SIM +OBJS += ../src/eap_server/eap_sim.o +CONFIG_EAP_SIM_COMMON=y +endif + +ifdef CONFIG_EAP_AKA +CFLAGS += -DEAP_AKA +OBJS += ../src/eap_server/eap_aka.o +CONFIG_EAP_SIM_COMMON=y +NEED_SHA256=y +endif + +ifdef CONFIG_EAP_AKA_PRIME +CFLAGS += -DEAP_AKA_PRIME +endif + +ifdef CONFIG_EAP_SIM_COMMON +OBJS += ../src/eap_common/eap_sim_common.o +# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be +# replaced with another file implementating the interface specified in +# eap_sim_db.h. +OBJS += ../src/eap_server/eap_sim_db.o +NEED_FIPS186_2_PRF=y +endif + +ifdef CONFIG_EAP_PAX +CFLAGS += -DEAP_PAX +OBJS += ../src/eap_server/eap_pax.o ../src/eap_common/eap_pax_common.o +endif + +ifdef CONFIG_EAP_PSK +CFLAGS += -DEAP_PSK +OBJS += ../src/eap_server/eap_psk.o ../src/eap_common/eap_psk_common.o +endif + +ifdef CONFIG_EAP_SAKE +CFLAGS += -DEAP_SAKE +OBJS += ../src/eap_server/eap_sake.o ../src/eap_common/eap_sake_common.o +endif + +ifdef CONFIG_EAP_GPSK +CFLAGS += -DEAP_GPSK +OBJS += ../src/eap_server/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o +ifdef CONFIG_EAP_GPSK_SHA256 +CFLAGS += -DEAP_GPSK_SHA256 +endif +NEED_SHA256=y +endif + +ifdef CONFIG_EAP_VENDOR_TEST +CFLAGS += -DEAP_VENDOR_TEST +OBJS += ../src/eap_server/eap_vendor_test.o +endif + +ifdef CONFIG_EAP_FAST +CFLAGS += -DEAP_FAST +OBJS += ../src/eap_server/eap_fast.o +OBJS += ../src/eap_common/eap_fast_common.o +TLS_FUNCS=y +NEED_T_PRF=y +endif + +ifdef CONFIG_WPS +CFLAGS += -DCONFIG_WPS -DEAP_WSC +OBJS += ../src/utils/uuid.o +OBJS += wps_hostapd.o +OBJS += ../src/eap_server/eap_wsc.o ../src/eap_common/eap_wsc_common.o +OBJS += ../src/wps/wps.o +OBJS += ../src/wps/wps_common.o +OBJS += ../src/wps/wps_attr_parse.o +OBJS += ../src/wps/wps_attr_build.o +OBJS += ../src/wps/wps_attr_process.o +OBJS += ../src/wps/wps_dev_attr.o +OBJS += ../src/wps/wps_enrollee.o +OBJS += ../src/wps/wps_registrar.o +NEED_DH_GROUPS=y +NEED_SHA256=y +NEED_CRYPTO=y +NEED_BASE64=y + +ifdef CONFIG_WPS_UPNP +CFLAGS += -DCONFIG_WPS_UPNP +OBJS += ../src/wps/wps_upnp.o +OBJS += ../src/wps/wps_upnp_ssdp.o +OBJS += ../src/wps/wps_upnp_web.o +OBJS += ../src/wps/wps_upnp_event.o +OBJS += ../src/wps/httpread.o +endif + +endif + +ifdef CONFIG_EAP_IKEV2 +CFLAGS += -DEAP_IKEV2 +OBJS += ../src/eap_server/eap_ikev2.o ../src/eap_server/ikev2.o +OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o +NEED_DH_GROUPS=y +NEED_DH_GROUPS_ALL=y +endif + +ifdef CONFIG_EAP_TNC +CFLAGS += -DEAP_TNC +OBJS += ../src/eap_server/eap_tnc.o +OBJS += ../src/eap_server/tncs.o +NEED_BASE64=y +ifndef CONFIG_DRIVER_BSD +LIBS += -ldl +endif +endif + +# Basic EAP functionality is needed for EAPOL +OBJS += ../src/eap_server/eap.o +OBJS += ../src/eap_common/eap_common.o +OBJS += ../src/eap_server/eap_methods.o +OBJS += ../src/eap_server/eap_identity.o + +ifdef CONFIG_EAP +CFLAGS += -DEAP_SERVER +endif + +ifndef CONFIG_TLS +CONFIG_TLS=openssl +endif + +ifeq ($(CONFIG_TLS), internal) +ifndef CONFIG_CRYPTO +CONFIG_CRYPTO=internal +endif +endif +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +CFLAGS += -DCONFIG_INTERNAL_X509 +endif +ifeq ($(CONFIG_CRYPTO), internal) +CFLAGS += -DCONFIG_INTERNAL_X509 +endif + + +ifdef TLS_FUNCS +# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) +CFLAGS += -DEAP_TLS_FUNCS +OBJS += ../src/eap_server/eap_tls_common.o +NEED_TLS_PRF=y +ifeq ($(CONFIG_TLS), openssl) +OBJS += ../src/crypto/tls_openssl.o +LIBS += -lssl -lcrypto +LIBS_p += -lcrypto +LIBS_h += -lcrypto +endif +ifeq ($(CONFIG_TLS), gnutls) +OBJS += ../src/crypto/tls_gnutls.o +LIBS += -lgnutls -lgcrypt -lgpg-error +LIBS_p += -lgcrypt +LIBS_h += -lgcrypt +endif +ifdef CONFIG_GNUTLS_EXTRA +CFLAGS += -DCONFIG_GNUTLS_EXTRA +LIBS += -lgnutls-extra +endif +ifeq ($(CONFIG_TLS), internal) +OBJS += ../src/crypto/tls_internal.o +OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o +OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_server.o +OBJS += ../src/tls/tlsv1_server_write.o ../src/tls/tlsv1_server_read.o +OBJS += ../src/tls/asn1.o ../src/tls/x509v3.o +OBJS_p += ../src/tls/asn1.o +OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o +NEED_BASE64=y +CFLAGS += -DCONFIG_TLS_INTERNAL +CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER +ifeq ($(CONFIG_CRYPTO), internal) +ifdef CONFIG_INTERNAL_LIBTOMMATH +CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH +else +LIBS += -ltommath +LIBS_p += -ltommath +endif +endif +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +LIBS += -ltomcrypt -ltfm +LIBS_p += -ltomcrypt -ltfm +endif +endif +NEED_CRYPTO=y +else +OBJS += ../src/crypto/tls_none.o +endif + +ifdef CONFIG_PKCS12 +CFLAGS += -DPKCS12_FUNCS +endif + +ifdef MS_FUNCS +OBJS += ../src/crypto/ms_funcs.o +NEED_CRYPTO=y +endif + +ifdef CHAP +OBJS += ../src/eap_common/chap.o +endif + +ifdef NEED_CRYPTO +ifndef TLS_FUNCS +ifeq ($(CONFIG_TLS), openssl) +LIBS += -lcrypto +LIBS_p += -lcrypto +LIBS_h += -lcrypto +endif +ifeq ($(CONFIG_TLS), gnutls) +LIBS += -lgcrypt +LIBS_p += -lgcrypt +LIBS_h += -lgcrypt +endif +ifeq ($(CONFIG_TLS), internal) +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +LIBS += -ltomcrypt -ltfm +LIBS_p += -ltomcrypt -ltfm +endif +endif +endif +ifeq ($(CONFIG_TLS), openssl) +OBJS += ../src/crypto/crypto_openssl.o +OBJS_p += ../src/crypto/crypto_openssl.o +HOBJS += ../src/crypto/crypto_openssl.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_TLS), gnutls) +OBJS += ../src/crypto/crypto_gnutls.o +OBJS_p += ../src/crypto/crypto_gnutls.o +HOBJS += ../src/crypto/crypto_gnutls.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_TLS), internal) +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +OBJS += ../src/crypto/crypto_libtomcrypt.o +OBJS_p += ../src/crypto/crypto_libtomcrypt.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_CRYPTO), internal) +OBJS += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o +OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o +CFLAGS += -DCONFIG_CRYPTO_INTERNAL +ifdef CONFIG_INTERNAL_LIBTOMMATH +CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH +ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST +CFLAGS += -DLTM_FAST +endif +else +LIBS += -ltommath +LIBS_p += -ltommath +endif +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_DES=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_MD4=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_SHA256=y +endif +endif +else +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_SHA256=y +endif + +ifdef CONFIG_INTERNAL_AES +CFLAGS += -DINTERNAL_AES +endif +ifdef CONFIG_INTERNAL_SHA1 +CFLAGS += -DINTERNAL_SHA1 +endif +ifdef CONFIG_INTERNAL_SHA256 +CFLAGS += -DINTERNAL_SHA256 +endif +ifdef CONFIG_INTERNAL_MD5 +CFLAGS += -DINTERNAL_MD5 +endif +ifdef CONFIG_INTERNAL_MD4 +CFLAGS += -DINTERNAL_MD4 +endif +ifdef CONFIG_INTERNAL_DES +CFLAGS += -DINTERNAL_DES +endif + +ifdef NEED_SHA256 +OBJS += ../src/crypto/sha256.o +endif + +ifdef NEED_DH_GROUPS +OBJS += ../src/crypto/dh_groups.o +ifdef NEED_DH_GROUPS_ALL +CFLAGS += -DALL_DH_GROUPS +endif +endif + +ifndef NEED_FIPS186_2_PRF +CFLAGS += -DCONFIG_NO_FIPS186_2_PRF +endif + +ifndef NEED_T_PRF +CFLAGS += -DCONFIG_NO_T_PRF +endif + +ifndef NEED_TLS_PRF +CFLAGS += -DCONFIG_NO_TLS_PRF +endif + +ifdef CONFIG_RADIUS_SERVER +CFLAGS += -DRADIUS_SERVER +OBJS += ../src/radius/radius_server.o +endif + +ifdef CONFIG_IPV6 +CFLAGS += -DCONFIG_IPV6 +endif + +ifdef CONFIG_DRIVER_RADIUS_ACL +CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL +endif + +ifdef CONFIG_FULL_DYNAMIC_VLAN +# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges +# and vlan interfaces for the vlan feature. +CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN +endif + +ifdef NEED_BASE64 +OBJS += ../src/utils/base64.o +endif + +ifdef CONFIG_NO_STDOUT_DEBUG +CFLAGS += -DCONFIG_NO_STDOUT_DEBUG +endif + +ifdef CONFIG_NO_AES_EXTRAS +CFLAGS += -DCONFIG_NO_AES_UNWRAP +CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1 +CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC +CFLAGS += -DCONFIG_NO_AES_DECRYPT +CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK +endif + +ALL=hostapd hostapd_cli + +all: verify_config $(ALL) + +Q=@ +E=echo +ifeq ($(V), 1) +Q= +E=true +endif + +%.o: %.c + $(Q)$(CC) -c -o $@ $(CFLAGS) $< + @$(E) " CC " $< + +verify_config: + @if [ ! -r .config ]; then \ + echo 'Building hostapd requires a configuration file'; \ + echo '(.config). See README for more instructions. You can'; \ + echo 'run "cp defconfig .config" to create an example'; \ + echo 'configuration.'; \ + exit 1; \ + fi + +install: all + for i in $(ALL); do cp $$i /usr/local/bin/$$i; done + +hostapd: $(OBJS) + $(CC) -o hostapd $(OBJS) $(LIBS) + +OBJS_c = hostapd_cli.o ../src/common/wpa_ctrl.o ../src/utils/os_$(CONFIG_OS).o +hostapd_cli: $(OBJS_c) + $(CC) -o hostapd_cli $(OBJS_c) + +NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o ../src/crypto/sha1.o ../src/crypto/rc4.o ../src/crypto/md5.o +NOBJS += ../src/crypto/crypto_openssl.o ../src/utils/os_$(CONFIG_OS).o +ifdef TLS_FUNCS +LIBS_n += -lcrypto +endif + +nt_password_hash: $(NOBJS) + $(CC) -o nt_password_hash $(NOBJS) $(LIBS_n) + +hlr_auc_gw: $(HOBJS) + $(CC) -o hlr_auc_gw $(HOBJS) $(LIBS_h) + +clean: + $(MAKE) -C ../src clean + rm -f core *~ *.o hostapd hostapd_cli nt_password_hash hlr_auc_gw + rm -f *.d + +%.eps: %.fig + fig2dev -L eps $*.fig $*.eps + +%.png: %.fig + fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \ + > $*.png + +docs-pics: doc/hostapd.png doc/hostapd.eps + +docs: docs-pics + (cd ..; doxygen hostapd/doc/doxygen.full; cd hostapd) + $(MAKE) -C doc/latex + cp doc/latex/refman.pdf hostapd-devel.pdf + +docs-fast: docs-pics + (cd ..; doxygen hostapd/doc/doxygen.fast; cd hostapd) + +clean-docs: + rm -rf doc/latex doc/html + rm -f doc/hostapd.{eps,png} hostapd-devel.pdf + +TEST_SRC_MILENAGE = ../src/hlr_auc_gw/milenage.c ../src/crypto/aes_wrap.c ../src/crypto/aes.c ../src/utils/common.c ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).c +test-milenage: $(TEST_SRC_MILENAGE) + $(CC) -o test-milenage -Wall -Werror $(TEST_SRC_MILENAGE) \ + -DTEST_MAIN_MILENAGE -I. -DINTERNAL_AES \ + -I../src/crypto -I../src/utils + ./test-milenage + rm test-milenage + +-include $(OBJS:%.o=%.d) Modified: projects/ppc64/contrib/wpa/hostapd/README-WPS ============================================================================== --- projects/ppc64/contrib/wpa/hostapd/README-WPS Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/wpa/hostapd/README-WPS Mon Jun 14 17:28:32 2010 (r209167) @@ -165,10 +165,17 @@ Example command to add a PIN (12345670) hostapd_cli wps_pin 53b63a98-d29e-4457-a2ed-094d7e6a669c 12345670 If the UUID-E is not available (e.g., Enrollee waits for the Registrar -to be selected before connecting), wildcard UUID may be used to allow the PIN to be used once with any UUID: +to be selected before connecting), wildcard UUID may be used to allow +the PIN to be used once with any UUID: hostapd_cli wps_pin any 12345670 +To reduce likelihood of PIN being used with other devices or of +forgetting an active PIN available for potential attackers, expiration +time can be set for the new PIN: + +hostapd_cli wps_pin any 12345670 300 + After this, the Enrollee can connect to the AP again and complete WPS negotiation. At that point, a new, random WPA PSK is generated for the Modified: projects/ppc64/contrib/wpa/hostapd/ap.h ============================================================================== --- projects/ppc64/contrib/wpa/hostapd/ap.h Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/wpa/hostapd/ap.h Mon Jun 14 17:28:32 2010 (r209167) @@ -30,7 +30,7 @@ #define WLAN_STA_PENDING_POLL BIT(6) /* pending activity poll not ACKed */ #define WLAN_STA_SHORT_PREAMBLE BIT(7) #define WLAN_STA_PREAUTH BIT(8) -#define WLAN_STA_WME BIT(9) +#define WLAN_STA_WMM BIT(9) #define WLAN_STA_MFP BIT(10) #define WLAN_STA_HT BIT(11) #define WLAN_STA_WPS BIT(12) Modified: projects/ppc64/contrib/wpa/hostapd/beacon.c ============================================================================== --- projects/ppc64/contrib/wpa/hostapd/beacon.c Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/wpa/hostapd/beacon.c Mon Jun 14 17:28:32 2010 (r209167) @@ -298,8 +298,8 @@ void handle_probe_req(struct hostapd_dat pos = hostapd_eid_wpa(hapd, pos, epos - pos, sta); - /* Wi-Fi Wireless Multimedia Extensions */ - pos = hostapd_eid_wme(hapd, pos); + /* Wi-Fi Alliance WMM */ + pos = hostapd_eid_wmm(hapd, pos); pos = hostapd_eid_ht_capabilities_info(hapd, pos); pos = hostapd_eid_ht_operation(hapd, pos); @@ -395,8 +395,8 @@ void ieee802_11_set_beacon(struct hostap tailpos = hostapd_eid_wpa(hapd, tailpos, tail + BEACON_TAIL_BUF_SIZE - tailpos, NULL); - /* Wi-Fi Wireless Multimedia Extensions */ - tailpos = hostapd_eid_wme(hapd, tailpos); + /* Wi-Fi Alliance WMM */ + tailpos = hostapd_eid_wmm(hapd, tailpos); #ifdef CONFIG_IEEE80211N if (hapd->iconf->ieee80211n) { Modified: projects/ppc64/contrib/wpa/hostapd/config.c ============================================================================== --- projects/ppc64/contrib/wpa/hostapd/config.c Mon Jun 14 17:13:05 2010 (r209166) +++ projects/ppc64/contrib/wpa/hostapd/config.c Mon Jun 14 17:28:32 2010 (r209167) @@ -201,15 +201,15 @@ static struct hostapd_config * hostapd_c struct hostapd_config *conf; struct hostapd_bss_config *bss; int i; - const int aCWmin = 15, aCWmax = 1024; - const struct hostapd_wme_ac_params ac_bk = + const int aCWmin = 4, aCWmax = 10; + const struct hostapd_wmm_ac_params ac_bk = { aCWmin, aCWmax, 7, 0, 0 }; /* background traffic */ - const struct hostapd_wme_ac_params ac_be = + const struct hostapd_wmm_ac_params ac_be = { aCWmin, aCWmax, 3, 0, 0 }; /* best effort traffic */ - const struct hostapd_wme_ac_params ac_vi = /* video traffic */ - { aCWmin >> 1, aCWmin, 2, 3000 / 32, 1 }; - const struct hostapd_wme_ac_params ac_vo = /* voice traffic */ - { aCWmin >> 2, aCWmin >> 1, 2, 1500 / 32, 1 }; + const struct hostapd_wmm_ac_params ac_vi = /* video traffic */ + { aCWmin - 1, aCWmin, 2, 3000 / 32, 1 }; + const struct hostapd_wmm_ac_params ac_vo = /* voice traffic */ + { aCWmin - 2, aCWmin - 1, 2, 1500 / 32, 1 }; conf = os_zalloc(sizeof(*conf)); bss = os_zalloc(sizeof(*bss)); @@ -251,10 +251,10 @@ static struct hostapd_config * hostapd_c for (i = 0; i < NUM_TX_QUEUES; i++) conf->tx_queue[i].aifs = -1; /* use hw default */ - conf->wme_ac_params[0] = ac_be; - conf->wme_ac_params[1] = ac_bk; - conf->wme_ac_params[2] = ac_vi; - conf->wme_ac_params[3] = ac_vo; + conf->wmm_ac_params[0] = ac_be; + conf->wmm_ac_params[1] = ac_bk; + conf->wmm_ac_params[2] = ac_vi; + conf->wmm_ac_params[3] = ac_vo; #ifdef CONFIG_IEEE80211N conf->ht_capab = HT_CAP_INFO_SMPS_DISABLED; @@ -1166,14 +1166,14 @@ static int hostapd_config_tx_queue(struc } -static int hostapd_config_wme_ac(struct hostapd_config *conf, char *name, - char *val) +static int hostapd_config_wmm_ac(struct hostapd_config *conf, char *name, + char *val) { int num, v; char *pos; - struct hostapd_wme_ac_params *ac; + struct hostapd_wmm_ac_params *ac; - /* skip 'wme_ac_' prefix */ + /* skip 'wme_ac_' or 'wmm_ac_' prefix */ pos = name + 7; if (os_strncmp(pos, "be_", 3) == 0) { num = 0; @@ -1188,11 +1188,11 @@ static int hostapd_config_wme_ac(struct num = 3; pos += 3; } else { - wpa_printf(MSG_ERROR, "Unknown wme name '%s'", pos); + wpa_printf(MSG_ERROR, "Unknown WMM name '%s'", pos); return -1; } - ac = &conf->wme_ac_params[num]; + ac = &conf->wmm_ac_params[num]; if (os_strcmp(pos, "aifs") == 0) { v = atoi(val); @@ -1221,7 +1221,7 @@ static int hostapd_config_wme_ac(struct wpa_printf(MSG_ERROR, "Invalid txop value %d", v); return -1; } - ac->txopLimit = v; + ac->txop_limit = v; } else if (os_strcmp(pos, "acm") == 0) { v = atoi(val); if (v < 0 || v > 1) { @@ -1230,7 +1230,7 @@ static int hostapd_config_wme_ac(struct } ac->admission_control_mandatory = v; } else { - wpa_printf(MSG_ERROR, "Unknown wme_ac_ field '%s'", pos); + wpa_printf(MSG_ERROR, "Unknown wmm_ac_ field '%s'", pos); return -1; } @@ -1452,13 +1452,13 @@ struct hostapd_config * hostapd_config_r } else if (os_strcmp(buf, "bridge") == 0) { os_strlcpy(bss->bridge, pos, sizeof(bss->bridge)); } else if (os_strcmp(buf, "driver") == 0) { - int i; + int j; /* clear to get error below if setting is invalid */ conf->driver = NULL; - for (i = 0; hostapd_drivers[i]; i++) { - if (os_strcmp(pos, hostapd_drivers[i]->name) == + for (j = 0; hostapd_drivers[j]; j++) { + if (os_strcmp(pos, hostapd_drivers[j]->name) == 0) { - conf->driver = hostapd_drivers[i]; + conf->driver = hostapd_drivers[j]; break; } } @@ -2070,11 +2070,13 @@ struct hostapd_config * hostapd_config_r "queue item", line); errors++; } - } else if (os_strcmp(buf, "wme_enabled") == 0) { - bss->wme_enabled = atoi(pos); - } else if (os_strncmp(buf, "wme_ac_", 7) == 0) { - if (hostapd_config_wme_ac(conf, buf, pos)) { - wpa_printf(MSG_ERROR, "Line %d: invalid wme " + } else if (os_strcmp(buf, "wme_enabled") == 0 || + os_strcmp(buf, "wmm_enabled") == 0) { + bss->wmm_enabled = atoi(pos); + } else if (os_strncmp(buf, "wme_ac_", 7) == 0 || + os_strncmp(buf, "wmm_ac_", 7) == 0) { + if (hostapd_config_wmm_ac(conf, buf, pos)) { + wpa_printf(MSG_ERROR, "Line %d: invalid WMM " "ac item", line); errors++; } @@ -2255,29 +2257,30 @@ struct hostapd_config * hostapd_config_r fclose(f); - if (bss->individual_wep_key_len == 0) { - /* individual keys are not use; can use key idx0 for broadcast - * keys */ - bss->broadcast_key_idx_min = 0; - } - - /* Select group cipher based on the enabled pairwise cipher suites */ - pairwise = 0; - if (bss->wpa & 1) - pairwise |= bss->wpa_pairwise; - if (bss->wpa & 2) { - if (bss->rsn_pairwise == 0) - bss->rsn_pairwise = bss->wpa_pairwise; - pairwise |= bss->rsn_pairwise; - } - if (pairwise & WPA_CIPHER_TKIP) - bss->wpa_group = WPA_CIPHER_TKIP; - else - bss->wpa_group = WPA_CIPHER_CCMP; - for (i = 0; i < conf->num_bss; i++) { bss = &conf->bss[i]; + if (bss->individual_wep_key_len == 0) { + /* individual keys are not use; can use key idx0 for + * broadcast keys */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 18:45:35 2010 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 E0118106566B; Mon, 14 Jun 2010 18:45:34 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C99938FC14; Mon, 14 Jun 2010 18:45:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EIjYW5036731; Mon, 14 Jun 2010 18:45:34 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5EIjYHh036720; Mon, 14 Jun 2010 18:45:34 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006141845.o5EIjYHh036720@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 18:45: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: r209170 - in projects/clangbsd: . contrib/llvm/tools/clang/lib/Basic contrib/top contrib/wpa/hostapd contrib/wpa/hostapd/doc contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/sr... 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: Mon, 14 Jun 2010 18:45:35 -0000 Author: rdivacky Date: Mon Jun 14 18:45:33 2010 New Revision: 209170 URL: http://svn.freebsd.org/changeset/base/209170 Log: Merge from head. Added: projects/clangbsd/contrib/wpa/hostapd/Makefile - copied unchanged from r209162, head/contrib/wpa/hostapd/Makefile projects/clangbsd/contrib/wpa/hostapd/driver_bsd.c - copied unchanged from r209162, head/contrib/wpa/hostapd/driver_bsd.c projects/clangbsd/contrib/wpa/hostapd/driver_hostap.c - copied unchanged from r209162, head/contrib/wpa/hostapd/driver_hostap.c projects/clangbsd/contrib/wpa/hostapd/driver_wired.c - copied unchanged from r209162, head/contrib/wpa/hostapd/driver_wired.c projects/clangbsd/contrib/wpa/hostapd/radiotap.c - copied unchanged from r209162, head/contrib/wpa/hostapd/radiotap.c projects/clangbsd/contrib/wpa/hostapd/radiotap.h - copied unchanged from r209162, head/contrib/wpa/hostapd/radiotap.h projects/clangbsd/contrib/wpa/hostapd/radiotap_iter.h - copied unchanged from r209162, head/contrib/wpa/hostapd/radiotap_iter.h projects/clangbsd/contrib/wpa/src/common/nl80211_copy.h - copied unchanged from r209162, head/contrib/wpa/src/common/nl80211_copy.h projects/clangbsd/contrib/wpa/src/common/wireless_copy.h - copied unchanged from r209162, head/contrib/wpa/src/common/wireless_copy.h projects/clangbsd/contrib/wpa/src/drivers/Makefile - copied unchanged from r209162, head/contrib/wpa/src/drivers/Makefile projects/clangbsd/contrib/wpa/src/drivers/driver_ndis_.c - copied unchanged from r209162, head/contrib/wpa/src/drivers/driver_ndis_.c projects/clangbsd/contrib/wpa/src/drivers/driver_ndiswrapper.c - copied unchanged from r209162, head/contrib/wpa/src/drivers/driver_ndiswrapper.c projects/clangbsd/contrib/wpa/src/drivers/driver_wired.c - copied unchanged from r209162, head/contrib/wpa/src/drivers/driver_wired.c projects/clangbsd/contrib/wpa/src/drivers/ndis_events.c - copied unchanged from r209162, head/contrib/wpa/src/drivers/ndis_events.c projects/clangbsd/contrib/wpa/src/drivers/radiotap.c - copied unchanged from r209162, head/contrib/wpa/src/drivers/radiotap.c projects/clangbsd/contrib/wpa/src/drivers/radiotap.h - copied unchanged from r209162, head/contrib/wpa/src/drivers/radiotap.h projects/clangbsd/contrib/wpa/src/drivers/radiotap_iter.h - copied unchanged from r209162, head/contrib/wpa/src/drivers/radiotap_iter.h projects/clangbsd/contrib/wpa/src/l2_packet/Makefile - copied unchanged from r209162, head/contrib/wpa/src/l2_packet/Makefile projects/clangbsd/contrib/wpa/src/l2_packet/l2_packet_freebsd.c - copied unchanged from r209162, head/contrib/wpa/src/l2_packet/l2_packet_freebsd.c projects/clangbsd/contrib/wpa/src/l2_packet/l2_packet_ndis.c - copied unchanged from r209162, head/contrib/wpa/src/l2_packet/l2_packet_ndis.c projects/clangbsd/contrib/wpa/src/l2_packet/l2_packet_none.c - copied unchanged from r209162, head/contrib/wpa/src/l2_packet/l2_packet_none.c projects/clangbsd/contrib/wpa/src/utils/eloop_none.c - copied unchanged from r209162, head/contrib/wpa/src/utils/eloop_none.c projects/clangbsd/contrib/wpa/src/utils/eloop_win.c - copied unchanged from r209162, head/contrib/wpa/src/utils/eloop_win.c projects/clangbsd/contrib/wpa/src/utils/os_none.c - copied unchanged from r209162, head/contrib/wpa/src/utils/os_none.c projects/clangbsd/contrib/wpa/src/utils/os_win32.c - copied unchanged from r209162, head/contrib/wpa/src/utils/os_win32.c projects/clangbsd/contrib/wpa/wpa_supplicant/Makefile - copied unchanged from r209162, head/contrib/wpa/wpa_supplicant/Makefile projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c - copied unchanged from r209162, head/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c projects/clangbsd/contrib/wpa/wpa_supplicant/main_none.c - copied unchanged from r209162, head/contrib/wpa/wpa_supplicant/main_none.c projects/clangbsd/contrib/wpa/wpa_supplicant/nmake.mak - copied unchanged from r209162, head/contrib/wpa/wpa_supplicant/nmake.mak projects/clangbsd/lib/libc/posix1e/acl_id_to_name.c - copied unchanged from r209162, head/lib/libc/posix1e/acl_id_to_name.c projects/clangbsd/lib/libedit/filecomplete.c - copied unchanged from r209162, head/lib/libedit/filecomplete.c projects/clangbsd/lib/libedit/filecomplete.h - copied unchanged from r209162, head/lib/libedit/filecomplete.h projects/clangbsd/sys/arm/include/fdt.h - copied unchanged from r209162, head/sys/arm/include/fdt.h projects/clangbsd/sys/arm/include/ofw_machdep.h - copied unchanged from r209162, head/sys/arm/include/ofw_machdep.h projects/clangbsd/sys/dev/fdt/fdt_arm.c - copied unchanged from r209162, head/sys/dev/fdt/fdt_arm.c projects/clangbsd/sys/dev/usb/controller/ehci_mv.c - copied unchanged from r209162, head/sys/dev/usb/controller/ehci_mv.c Deleted: projects/clangbsd/contrib/wpa/hostapd/.gitignore projects/clangbsd/contrib/wpa/hostapd/doc/.gitignore projects/clangbsd/contrib/wpa/src/common/.gitignore projects/clangbsd/contrib/wpa/src/crypto/.gitignore projects/clangbsd/contrib/wpa/src/eap_common/.gitignore projects/clangbsd/contrib/wpa/src/eap_peer/.gitignore projects/clangbsd/contrib/wpa/src/eap_server/.gitignore projects/clangbsd/contrib/wpa/src/eapol_supp/.gitignore projects/clangbsd/contrib/wpa/src/hlr_auc_gw/.gitignore projects/clangbsd/contrib/wpa/src/radius/.gitignore projects/clangbsd/contrib/wpa/src/rsn_supp/.gitignore projects/clangbsd/contrib/wpa/src/tls/.gitignore projects/clangbsd/contrib/wpa/src/utils/.gitignore projects/clangbsd/contrib/wpa/src/wps/.gitignore projects/clangbsd/contrib/wpa/wpa_supplicant/.gitignore projects/clangbsd/contrib/wpa/wpa_supplicant/doc/.gitignore projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/.gitignore projects/clangbsd/sys/arm/mv/discovery/db78xxx.c projects/clangbsd/sys/arm/mv/kirkwood/db88f6xxx.c projects/clangbsd/sys/arm/mv/kirkwood/files.db88f6xxx projects/clangbsd/sys/arm/mv/obio.c projects/clangbsd/sys/dev/uart/uart_bus_mbus.c projects/clangbsd/sys/dev/uart/uart_cpu_mv.c projects/clangbsd/sys/dev/usb/controller/ehci_mbus.c projects/clangbsd/usr.bin/tftp/extern.h projects/clangbsd/usr.bin/tftp/tftpsubs.c projects/clangbsd/usr.bin/tftp/tftpsubs.h projects/clangbsd/usr.sbin/wpa/l2_packet.c projects/clangbsd/usr.sbin/wpa/wpa_supplicant/driver_wired.c Modified: projects/clangbsd/Makefile projects/clangbsd/Makefile.inc1 projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/clangbsd/contrib/wpa/hostapd/ChangeLog projects/clangbsd/contrib/wpa/hostapd/README-WPS projects/clangbsd/contrib/wpa/hostapd/ap.h projects/clangbsd/contrib/wpa/hostapd/beacon.c projects/clangbsd/contrib/wpa/hostapd/config.c projects/clangbsd/contrib/wpa/hostapd/config.h projects/clangbsd/contrib/wpa/hostapd/ctrl_iface.c projects/clangbsd/contrib/wpa/hostapd/drivers.c projects/clangbsd/contrib/wpa/hostapd/hostapd.8 projects/clangbsd/contrib/wpa/hostapd/hostapd.c projects/clangbsd/contrib/wpa/hostapd/hostapd.conf projects/clangbsd/contrib/wpa/hostapd/hostapd_cli.1 projects/clangbsd/contrib/wpa/hostapd/hostapd_cli.c projects/clangbsd/contrib/wpa/hostapd/hw_features.c projects/clangbsd/contrib/wpa/hostapd/ieee802_11.c projects/clangbsd/contrib/wpa/hostapd/ieee802_1x.c projects/clangbsd/contrib/wpa/hostapd/preauth.c projects/clangbsd/contrib/wpa/hostapd/wme.c projects/clangbsd/contrib/wpa/hostapd/wme.h projects/clangbsd/contrib/wpa/hostapd/wpa.c projects/clangbsd/contrib/wpa/hostapd/wpa.h projects/clangbsd/contrib/wpa/hostapd/wpa_auth_i.h projects/clangbsd/contrib/wpa/hostapd/wpa_auth_ie.c projects/clangbsd/contrib/wpa/hostapd/wpa_ft.c projects/clangbsd/contrib/wpa/hostapd/wps_hostapd.c projects/clangbsd/contrib/wpa/hostapd/wps_hostapd.h projects/clangbsd/contrib/wpa/src/common/ieee802_11_common.c projects/clangbsd/contrib/wpa/src/common/ieee802_11_common.h projects/clangbsd/contrib/wpa/src/common/ieee802_11_defs.h projects/clangbsd/contrib/wpa/src/common/version.h projects/clangbsd/contrib/wpa/src/common/wpa_common.c projects/clangbsd/contrib/wpa/src/crypto/crypto_cryptoapi.c projects/clangbsd/contrib/wpa/src/crypto/crypto_gnutls.c projects/clangbsd/contrib/wpa/src/crypto/crypto_internal.c projects/clangbsd/contrib/wpa/src/crypto/dh_groups.c projects/clangbsd/contrib/wpa/src/crypto/ms_funcs.c projects/clangbsd/contrib/wpa/src/crypto/rc4.c projects/clangbsd/contrib/wpa/src/crypto/rc4.h projects/clangbsd/contrib/wpa/src/crypto/sha1.c projects/clangbsd/contrib/wpa/src/crypto/sha256.c projects/clangbsd/contrib/wpa/src/crypto/tls.h projects/clangbsd/contrib/wpa/src/crypto/tls_gnutls.c projects/clangbsd/contrib/wpa/src/crypto/tls_openssl.c projects/clangbsd/contrib/wpa/src/drivers/driver.h projects/clangbsd/contrib/wpa/src/drivers/driver_ndis.c projects/clangbsd/contrib/wpa/src/eap_common/eap_defs.h projects/clangbsd/contrib/wpa/src/eap_common/eap_fast_common.h projects/clangbsd/contrib/wpa/src/eap_common/eap_tlv_common.h projects/clangbsd/contrib/wpa/src/eap_peer/eap_fast.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_gpsk.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_methods.h projects/clangbsd/contrib/wpa/src/eap_peer/eap_sim.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_tls_common.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_tnc.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_ttls.c projects/clangbsd/contrib/wpa/src/eap_peer/eap_wsc.c projects/clangbsd/contrib/wpa/src/eap_peer/tncc.c projects/clangbsd/contrib/wpa/src/eap_server/eap.c projects/clangbsd/contrib/wpa/src/eap_server/eap_fast.c projects/clangbsd/contrib/wpa/src/eap_server/eap_gpsk.c projects/clangbsd/contrib/wpa/src/eap_server/eap_i.h projects/clangbsd/contrib/wpa/src/eap_server/eap_tls_common.c projects/clangbsd/contrib/wpa/src/eap_server/eap_tnc.c projects/clangbsd/contrib/wpa/src/eap_server/eap_ttls.c projects/clangbsd/contrib/wpa/src/eapol_supp/eapol_supp_sm.c projects/clangbsd/contrib/wpa/src/hlr_auc_gw/hlr_auc_gw.c projects/clangbsd/contrib/wpa/src/radius/radius_client.c projects/clangbsd/contrib/wpa/src/radius/radius_server.c projects/clangbsd/contrib/wpa/src/rsn_supp/wpa.c projects/clangbsd/contrib/wpa/src/rsn_supp/wpa_ft.c projects/clangbsd/contrib/wpa/src/rsn_supp/wpa_i.h projects/clangbsd/contrib/wpa/src/tls/rsa.c projects/clangbsd/contrib/wpa/src/tls/tlsv1_client.c projects/clangbsd/contrib/wpa/src/tls/tlsv1_server_read.c projects/clangbsd/contrib/wpa/src/utils/base64.c projects/clangbsd/contrib/wpa/src/utils/common.c projects/clangbsd/contrib/wpa/src/utils/common.h projects/clangbsd/contrib/wpa/src/utils/os_unix.c projects/clangbsd/contrib/wpa/src/utils/wpa_debug.c projects/clangbsd/contrib/wpa/src/utils/wpa_debug.h projects/clangbsd/contrib/wpa/src/utils/wpabuf.c projects/clangbsd/contrib/wpa/src/wps/httpread.c projects/clangbsd/contrib/wpa/src/wps/wps.h projects/clangbsd/contrib/wpa/src/wps/wps_attr_parse.c projects/clangbsd/contrib/wpa/src/wps/wps_common.c projects/clangbsd/contrib/wpa/src/wps/wps_enrollee.c projects/clangbsd/contrib/wpa/src/wps/wps_i.h projects/clangbsd/contrib/wpa/src/wps/wps_registrar.c projects/clangbsd/contrib/wpa/src/wps/wps_upnp.c projects/clangbsd/contrib/wpa/src/wps/wps_upnp_event.c projects/clangbsd/contrib/wpa/src/wps/wps_upnp_i.h projects/clangbsd/contrib/wpa/src/wps/wps_upnp_ssdp.c projects/clangbsd/contrib/wpa/src/wps/wps_upnp_web.c projects/clangbsd/contrib/wpa/wpa_supplicant/ChangeLog projects/clangbsd/contrib/wpa/wpa_supplicant/README projects/clangbsd/contrib/wpa/wpa_supplicant/README-WPS projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_dbus.c projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_dbus.h projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_dbus_handlers.c projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_dbus_handlers.h projects/clangbsd/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c projects/clangbsd/contrib/wpa/wpa_supplicant/defconfig projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_background.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_cli.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_gui.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_passphrase.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_priv.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_supplicant.8 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 projects/clangbsd/contrib/wpa/wpa_supplicant/doc/porting.doxygen projects/clangbsd/contrib/wpa/wpa_supplicant/eapol_test.c projects/clangbsd/contrib/wpa/wpa_supplicant/events.c projects/clangbsd/contrib/wpa/wpa_supplicant/mlme.c projects/clangbsd/contrib/wpa/wpa_supplicant/scan.c projects/clangbsd/contrib/wpa/wpa_supplicant/wpa_priv.c projects/clangbsd/contrib/wpa/wpa_supplicant/wpa_supplicant.c projects/clangbsd/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h projects/clangbsd/contrib/wpa/wpa_supplicant/wpas_glue.c projects/clangbsd/contrib/wpa/wpa_supplicant/wps_supplicant.c projects/clangbsd/etc/Makefile projects/clangbsd/games/random/random.c projects/clangbsd/games/random/randomize_fd.c projects/clangbsd/gnu/usr.bin/Makefile projects/clangbsd/include/histedit.h projects/clangbsd/lib/clang/clang.build.mk projects/clangbsd/lib/libc/net/sctp_recvmsg.3 projects/clangbsd/lib/libc/posix1e/Makefile.inc projects/clangbsd/lib/libc/posix1e/acl_support.c projects/clangbsd/lib/libc/stdlib/atexit.c projects/clangbsd/lib/libedit/Makefile projects/clangbsd/lib/libelf/elf_getbase.3 projects/clangbsd/lib/libelf/elf_getbase.c projects/clangbsd/lib/libkse/Makefile projects/clangbsd/lib/libkse/arch/amd64/Makefile.inc projects/clangbsd/lib/libkse/arch/arm/Makefile.inc projects/clangbsd/lib/libkse/arch/i386/Makefile.inc projects/clangbsd/lib/libkse/arch/ia64/Makefile.inc projects/clangbsd/lib/libkse/arch/powerpc/Makefile.inc projects/clangbsd/lib/libkse/arch/sparc64/Makefile.inc projects/clangbsd/lib/libkse/support/Makefile.inc projects/clangbsd/lib/liblzma/config.h projects/clangbsd/lib/msun/Symbol.map projects/clangbsd/lib/msun/src/math.h projects/clangbsd/lib/msun/src/s_isnan.c projects/clangbsd/sbin/camcontrol/modeedit.c projects/clangbsd/sbin/ccdconfig/ccdconfig.c projects/clangbsd/sbin/gbde/gbde.c projects/clangbsd/sbin/gvinum/gvinum.c projects/clangbsd/sbin/iscontrol/config.c projects/clangbsd/share/misc/committers-ports.dot projects/clangbsd/share/mk/bsd.own.mk projects/clangbsd/sys/amd64/acpica/madt.c projects/clangbsd/sys/amd64/amd64/intr_machdep.c projects/clangbsd/sys/amd64/amd64/legacy.c projects/clangbsd/sys/amd64/amd64/pmap.c projects/clangbsd/sys/arm/arm/nexus.c projects/clangbsd/sys/arm/arm/pmap.c projects/clangbsd/sys/arm/conf/DB-78XXX projects/clangbsd/sys/arm/conf/DB-88F5XXX projects/clangbsd/sys/arm/conf/DB-88F6XXX projects/clangbsd/sys/arm/include/metadata.h projects/clangbsd/sys/arm/mv/bus_space.c projects/clangbsd/sys/arm/mv/common.c projects/clangbsd/sys/arm/mv/discovery/discovery.c projects/clangbsd/sys/arm/mv/discovery/files.db78xxx projects/clangbsd/sys/arm/mv/files.mv projects/clangbsd/sys/arm/mv/gpio.c projects/clangbsd/sys/arm/mv/ic.c projects/clangbsd/sys/arm/mv/kirkwood/kirkwood.c projects/clangbsd/sys/arm/mv/kirkwood/sheevaplug.c projects/clangbsd/sys/arm/mv/kirkwood/std.db88f6xxx projects/clangbsd/sys/arm/mv/kirkwood/std.sheevaplug projects/clangbsd/sys/arm/mv/mv_machdep.c projects/clangbsd/sys/arm/mv/mv_pci.c projects/clangbsd/sys/arm/mv/mv_sata.c projects/clangbsd/sys/arm/mv/mvreg.h projects/clangbsd/sys/arm/mv/mvvar.h projects/clangbsd/sys/arm/mv/mvwin.h projects/clangbsd/sys/arm/mv/orion/db88f5xxx.c projects/clangbsd/sys/arm/mv/orion/orion.c projects/clangbsd/sys/arm/mv/rtc.c projects/clangbsd/sys/arm/mv/timer.c projects/clangbsd/sys/arm/mv/twsi.c projects/clangbsd/sys/boot/arm/uboot/Makefile projects/clangbsd/sys/boot/powerpc/uboot/Makefile projects/clangbsd/sys/boot/uboot/common/metadata.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/clangbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/clangbsd/sys/cddl/dev/cyclic/cyclic.c projects/clangbsd/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/clangbsd/sys/cddl/dev/dtrace/dtrace_debug.c projects/clangbsd/sys/cddl/dev/dtrace/dtrace_load.c projects/clangbsd/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/clangbsd/sys/compat/linprocfs/linprocfs.c projects/clangbsd/sys/compat/ndis/subr_usbd.c projects/clangbsd/sys/conf/Makefile.arm projects/clangbsd/sys/conf/files projects/clangbsd/sys/conf/files.arm projects/clangbsd/sys/conf/options.arm projects/clangbsd/sys/dev/acpi_support/acpi_asus.c projects/clangbsd/sys/dev/acpi_support/acpi_fujitsu.c projects/clangbsd/sys/dev/acpi_support/acpi_hp.c projects/clangbsd/sys/dev/acpi_support/acpi_ibm.c projects/clangbsd/sys/dev/acpica/acpi_cpu.c projects/clangbsd/sys/dev/acpica/acpi_dock.c projects/clangbsd/sys/dev/acpica/acpi_thermal.c projects/clangbsd/sys/dev/acpica/acpi_video.c projects/clangbsd/sys/dev/ath/if_ath.c projects/clangbsd/sys/dev/cxgb/cxgb_adapter.h projects/clangbsd/sys/dev/cxgb/cxgb_main.c projects/clangbsd/sys/dev/cxgb/cxgb_sge.c projects/clangbsd/sys/dev/e1000/if_igb.c projects/clangbsd/sys/dev/fdt/fdtbus.c projects/clangbsd/sys/dev/ixgbe/ixgbe.c projects/clangbsd/sys/dev/mge/if_mge.c projects/clangbsd/sys/dev/mge/if_mgevar.h projects/clangbsd/sys/dev/pci/pci.c projects/clangbsd/sys/dev/pci/pcivar.h projects/clangbsd/sys/dev/usb/usb_dev.c projects/clangbsd/sys/dev/usb/usb_device.c projects/clangbsd/sys/dev/usb/usb_process.c projects/clangbsd/sys/dev/usb/wlan/if_run.c projects/clangbsd/sys/dev/usb/wlan/if_runvar.h projects/clangbsd/sys/fs/nfsclient/nfs_clbio.c projects/clangbsd/sys/fs/nfsclient/nfs_clcomsubs.c projects/clangbsd/sys/fs/nfsclient/nfs_clrpcops.c projects/clangbsd/sys/fs/nfsclient/nfs_clsubs.c projects/clangbsd/sys/fs/nfsclient/nfs_clvnops.c projects/clangbsd/sys/fs/nfsserver/nfs_nfsdsocket.c projects/clangbsd/sys/fs/procfs/procfs_type.c projects/clangbsd/sys/geom/geom_dev.c projects/clangbsd/sys/i386/acpica/madt.c projects/clangbsd/sys/i386/i386/intr_machdep.c projects/clangbsd/sys/i386/i386/legacy.c projects/clangbsd/sys/i386/i386/mp_machdep.c projects/clangbsd/sys/i386/i386/pmap.c projects/clangbsd/sys/i386/i386/tsc.c projects/clangbsd/sys/i386/xen/pmap.c projects/clangbsd/sys/ia64/ia64/exception.S projects/clangbsd/sys/ia64/ia64/pmap.c projects/clangbsd/sys/kern/bus_if.m projects/clangbsd/sys/kern/kern_clock.c projects/clangbsd/sys/kern/kern_conf.c projects/clangbsd/sys/kern/kern_switch.c projects/clangbsd/sys/kern/kern_timeout.c projects/clangbsd/sys/kern/sched_4bsd.c projects/clangbsd/sys/kern/sched_ule.c projects/clangbsd/sys/kern/subr_bus.c projects/clangbsd/sys/kern/subr_kdb.c projects/clangbsd/sys/kern/subr_lock.c projects/clangbsd/sys/kern/subr_pcpu.c projects/clangbsd/sys/kern/subr_smp.c projects/clangbsd/sys/kern/subr_taskqueue.c projects/clangbsd/sys/kern/vfs_bio.c projects/clangbsd/sys/mips/mips/pmap.c projects/clangbsd/sys/net/flowtable.c projects/clangbsd/sys/net/if_epair.c projects/clangbsd/sys/net/netisr.c projects/clangbsd/sys/net80211/ieee80211_rssadapt.c projects/clangbsd/sys/nfsclient/nfs_bio.c projects/clangbsd/sys/nfsclient/nfs_subs.c projects/clangbsd/sys/nfsclient/nfs_vnops.c projects/clangbsd/sys/powerpc/aim/mmu_oea.c projects/clangbsd/sys/powerpc/aim/mmu_oea64.c projects/clangbsd/sys/powerpc/aim/mp_cpudep.c projects/clangbsd/sys/powerpc/aim/platform_chrp.c projects/clangbsd/sys/powerpc/booke/pmap.c projects/clangbsd/sys/sparc64/sparc64/mp_locore.S projects/clangbsd/sys/sparc64/sparc64/pmap.c projects/clangbsd/sys/sun4v/sun4v/pmap.c projects/clangbsd/sys/sys/buf.h projects/clangbsd/sys/sys/bus.h projects/clangbsd/sys/sys/conf.h projects/clangbsd/sys/sys/file.h projects/clangbsd/sys/sys/pcpu.h projects/clangbsd/sys/sys/smp.h projects/clangbsd/sys/sys/vnode.h projects/clangbsd/sys/ufs/ffs/ffs_softdep.c projects/clangbsd/sys/vm/uma_core.c projects/clangbsd/sys/x86/x86/mca.c projects/clangbsd/sys/x86/x86/msi.c projects/clangbsd/usr.bin/clang/Makefile projects/clangbsd/usr.bin/tar/read.c projects/clangbsd/usr.bin/tar/write.c projects/clangbsd/usr.sbin/Makefile projects/clangbsd/usr.sbin/arp/arp.c projects/clangbsd/usr.sbin/config/mkmakefile.c projects/clangbsd/usr.sbin/sysinstall/Makefile projects/clangbsd/usr.sbin/sysinstall/disks.c projects/clangbsd/usr.sbin/sysinstall/install.c projects/clangbsd/usr.sbin/sysinstall/installUpgrade.c projects/clangbsd/usr.sbin/sysinstall/media.c projects/clangbsd/usr.sbin/sysinstall/sysinstall.h projects/clangbsd/usr.sbin/sysinstall/system.c projects/clangbsd/usr.sbin/sysinstall/tcpip.c projects/clangbsd/usr.sbin/wpa/hostapd/Makefile projects/clangbsd/usr.sbin/wpa/wpa_supplicant/Makefile Directory Properties: projects/clangbsd/ (props changed) projects/clangbsd/cddl/contrib/opensolaris/ (props changed) projects/clangbsd/contrib/bind9/ (props changed) projects/clangbsd/contrib/ee/ (props changed) projects/clangbsd/contrib/expat/ (props changed) projects/clangbsd/contrib/file/ (props changed) projects/clangbsd/contrib/gdb/ (props changed) projects/clangbsd/contrib/gdtoa/ (props changed) projects/clangbsd/contrib/gnu-sort/ (props changed) projects/clangbsd/contrib/groff/ (props changed) projects/clangbsd/contrib/less/ (props changed) projects/clangbsd/contrib/libpcap/ (props changed) projects/clangbsd/contrib/llvm/ (props changed) projects/clangbsd/contrib/llvm/tools/clang/ (props changed) projects/clangbsd/contrib/ncurses/ (props changed) projects/clangbsd/contrib/netcat/ (props changed) projects/clangbsd/contrib/ntp/ (props changed) projects/clangbsd/contrib/one-true-awk/ (props changed) projects/clangbsd/contrib/openbsm/ (props changed) projects/clangbsd/contrib/openpam/ (props changed) projects/clangbsd/contrib/pf/ (props changed) projects/clangbsd/contrib/sendmail/ (props changed) projects/clangbsd/contrib/tcpdump/ (props changed) projects/clangbsd/contrib/tcsh/ (props changed) projects/clangbsd/contrib/top/ (props changed) projects/clangbsd/contrib/top/install-sh (props changed) projects/clangbsd/contrib/tzcode/stdtime/ (props changed) projects/clangbsd/contrib/tzcode/zic/ (props changed) projects/clangbsd/contrib/tzdata/ (props changed) projects/clangbsd/contrib/wpa/ (props changed) projects/clangbsd/crypto/openssh/ (props changed) projects/clangbsd/crypto/openssl/ (props changed) projects/clangbsd/lib/libc/ (props changed) projects/clangbsd/lib/libc/stdtime/ (props changed) projects/clangbsd/lib/libutil/ (props changed) projects/clangbsd/lib/libz/ (props changed) projects/clangbsd/sbin/ (props changed) projects/clangbsd/sbin/ipfw/ (props changed) projects/clangbsd/share/mk/bsd.arch.inc.mk (props changed) projects/clangbsd/share/zoneinfo/ (props changed) projects/clangbsd/sys/ (props changed) projects/clangbsd/sys/amd64/include/xen/ (props changed) projects/clangbsd/sys/cddl/contrib/opensolaris/ (props changed) projects/clangbsd/sys/contrib/dev/acpica/ (props changed) projects/clangbsd/sys/contrib/pf/ (props changed) projects/clangbsd/sys/contrib/x86emu/ (props changed) projects/clangbsd/sys/dev/xen/xenpci/ (props changed) projects/clangbsd/usr.bin/csup/ (props changed) projects/clangbsd/usr.bin/procstat/ (props changed) projects/clangbsd/usr.sbin/zic/ (props changed) Modified: projects/clangbsd/Makefile ============================================================================== --- projects/clangbsd/Makefile Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/Makefile Mon Jun 14 18:45:33 2010 (r209170) @@ -89,7 +89,8 @@ TGTS= all all-man buildenv buildenvvars obj objlink regress rerelease showconfig tags toolchain update \ _worldtmp _legacy _bootstrap-tools _cleanobj _obj \ _build-tools _cross-tools _includes _libraries _depend \ - build32 distribute32 install32 xdev xdev-build xdev-install + build32 builddtb distribute32 install32 xdev xdev-build xdev-install \ + TGTS+= ${SUBDIR_TARGETS} BITGTS= files includes Modified: projects/clangbsd/Makefile.inc1 ============================================================================== --- projects/clangbsd/Makefile.inc1 Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/Makefile.inc1 Mon Jun 14 18:45:33 2010 (r209170) @@ -979,6 +979,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif +.if ${MK_FDT} != "no" +_dtc= gnu/usr.bin/dtc +.endif + bootstrap-tools: .for _tool in \ ${_clang_tblgen} \ @@ -987,6 +991,7 @@ bootstrap-tools: ${_gperf} \ ${_groff} \ ${_ar} \ + ${_dtc} \ usr.bin/lorder \ usr.bin/makewhatis \ ${_mklocale} \ @@ -1466,3 +1471,39 @@ _xi-links: ../../../../usr/bin/${XDDIR}${OSREL}-$$i; \ done .endif + +.if !empty(KRNLOBJDIR) && !empty(KERNCONF) +DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/ + +.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE) +FDT_DTS_FILE!= grep "^makeoptions[[:space:]]\+FDT_DTS_FILE" \ + ${KERNCONFDIR}/${KERNCONF} 2> /dev/null | cut -d= -f2 +.endif + +.endif + +.if !defined(DTBOUTPUTPATH) || !exists(${DTBOUTPUTPATH}) +DTBOUTPUTPATH= ${.CURDIR} +.endif + +# +# Build 'standalone' Device Tree Blob +# +builddtb: + @if [ "${FDT_DTS_FILE}" = "" ]; then \ + echo "ERROR: FDT_DTS_FILE must be specified!"; \ + exit 1; \ + fi; \ + if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ]; then \ + echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \ + exist!"; \ + exit 1; \ + fi; \ + if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then \ + echo "WARNING: DTB will be placed in the current working \ + directory"; \ + fi + @PATH=${TMPPATH} \ + dtc -O dtb -o \ + ${DTBOUTPUTPATH}/`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 \ + -p 1024 ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Version.cpp ============================================================================== --- projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Version.cpp Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Version.cpp Mon Jun 14 18:45:33 2010 (r209170) @@ -70,6 +70,9 @@ std::string getClangFullVersion() { #endif OS << "clang version " CLANG_VERSION_STRING " (" << getClangFullRepositoryVersion() << ')'; +#ifdef CLANG_VENDOR_SUFFIX + OS << CLANG_VENDOR_SUFFIX; +#endif return OS.str(); } Modified: projects/clangbsd/contrib/wpa/hostapd/ChangeLog ============================================================================== --- projects/clangbsd/contrib/wpa/hostapd/ChangeLog Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/wpa/hostapd/ChangeLog Mon Jun 14 18:45:33 2010 (r209170) @@ -1,5 +1,37 @@ ChangeLog for hostapd +2010-01-12 - v0.6.10 + * fixed SHA-256 based key derivation function to match with the + standard when using CCMP (for IEEE 802.11r and IEEE 802.11w) + (note: this breaks interoperability with previous version) [Bug 307] + * fixed WPS selected registrar expiration for internal PIN registrar + * disable PMTU discovery for RADIUS packets + * fixed WPS UPnP SSDP on 32-bit targets + * fixed WPS AP reconfiguration with drivers that do not use hostapd + MLME + * fixed RSN parameter setting for multi-BSS case + * added WPS workarounds for known interoperability issues with broken, + deployed implementation + * update IEEE 802.11w implementation to match with the published + standard + * fixed OpCode when proxying WSC_ACK or WSC_NACK from WPS ER + * fixed proxying of WSC_NACK to WPS ER + * fixed compilation with newer GnuTLS versions + * added support for defining timeout for WPS PINs + * fixed WPS Probe Request processing to handle missing required + attribute + * fixed PKCS#12 use with OpenSSL 1.0.0 + +2009-03-23 - v0.6.9 + * driver_nl80211: fixed STA accounting data collection (TX/RX bytes + reported correctly; TX/RX packets not yet available from kernel) + * fixed EAPOL/EAP reauthentication when using an external RADIUS + authentication server + * driver_prism54: fixed segmentation fault on initialization + * fixed TNC with EAP-TTLS + * fixed IEEE 802.11r key derivation function to match with the standard + (note: this breaks interoperability with previous version) [Bug 303] + 2009-02-15 - v0.6.8 * increased hostapd_cli ping interval to 5 seconds and made this configurable with a new command line options (-G) Copied: projects/clangbsd/contrib/wpa/hostapd/Makefile (from r209162, head/contrib/wpa/hostapd/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clangbsd/contrib/wpa/hostapd/Makefile Mon Jun 14 18:45:33 2010 (r209170, copy of r209162, head/contrib/wpa/hostapd/Makefile) @@ -0,0 +1,635 @@ +ifndef CC +CC=gcc +endif + +ifndef CFLAGS +CFLAGS = -MMD -O2 -Wall -g +endif + +# define HOSTAPD_DUMP_STATE to include SIGUSR1 handler for dumping state to +# a file (undefine it, if you want to save in binary size) +CFLAGS += -DHOSTAPD_DUMP_STATE + +CFLAGS += -I../src +CFLAGS += -I../src/crypto +CFLAGS += -I../src/utils +CFLAGS += -I../src/common + +# Uncomment following line and set the path to your kernel tree include +# directory if your C library does not include all header files. +# CFLAGS += -DUSE_KERNEL_HEADERS -I/usr/src/linux/include + +-include .config + +ifndef CONFIG_OS +ifdef CONFIG_NATIVE_WINDOWS +CONFIG_OS=win32 +else +CONFIG_OS=unix +endif +endif + +ifeq ($(CONFIG_OS), internal) +CFLAGS += -DOS_NO_C_LIB_DEFINES +endif + +ifdef CONFIG_NATIVE_WINDOWS +CFLAGS += -DCONFIG_NATIVE_WINDOWS +LIBS += -lws2_32 +endif + +OBJS = hostapd.o ieee802_1x.o eapol_sm.o \ + ieee802_11.o config.o ieee802_11_auth.o accounting.o \ + sta_info.o wpa.o ctrl_iface.o \ + drivers.o preauth.o pmksa_cache.o beacon.o \ + hw_features.o wme.o ap_list.o \ + mlme.o vlan_init.o wpa_auth_ie.o + +OBJS += ../src/utils/eloop.o +OBJS += ../src/utils/common.o +OBJS += ../src/utils/wpa_debug.o +OBJS += ../src/utils/wpabuf.o +OBJS += ../src/utils/os_$(CONFIG_OS).o +OBJS += ../src/utils/ip_addr.o + +OBJS += ../src/common/ieee802_11_common.o +OBJS += ../src/common/wpa_common.o + +OBJS += ../src/radius/radius.o +OBJS += ../src/radius/radius_client.o + +OBJS += ../src/crypto/md5.o +OBJS += ../src/crypto/rc4.o +OBJS += ../src/crypto/md4.o +OBJS += ../src/crypto/sha1.o +OBJS += ../src/crypto/des.o +OBJS += ../src/crypto/aes_wrap.o +OBJS += ../src/crypto/aes.o + +HOBJS=../src/hlr_auc_gw/hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/hlr_auc_gw/milenage.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o + +CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX + +ifdef CONFIG_IAPP +CFLAGS += -DCONFIG_IAPP +OBJS += iapp.o +endif + +ifdef CONFIG_RSN_PREAUTH +CFLAGS += -DCONFIG_RSN_PREAUTH +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_PEERKEY +CFLAGS += -DCONFIG_PEERKEY +OBJS += peerkey.o +endif + +ifdef CONFIG_IEEE80211W +CFLAGS += -DCONFIG_IEEE80211W +NEED_SHA256=y +endif + +ifdef CONFIG_IEEE80211R +CFLAGS += -DCONFIG_IEEE80211R +OBJS += wpa_ft.o +NEED_SHA256=y +endif + +ifdef CONFIG_IEEE80211N +CFLAGS += -DCONFIG_IEEE80211N +endif + +ifdef CONFIG_DRIVER_HOSTAP +CFLAGS += -DCONFIG_DRIVER_HOSTAP +OBJS += driver_hostap.o +endif + +ifdef CONFIG_DRIVER_WIRED +CFLAGS += -DCONFIG_DRIVER_WIRED +OBJS += driver_wired.o +endif + +ifdef CONFIG_DRIVER_MADWIFI +CFLAGS += -DCONFIG_DRIVER_MADWIFI +OBJS += driver_madwifi.o +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_DRIVER_ATHEROS +CFLAGS += -DCONFIG_DRIVER_ATHEROS +OBJS += driver_atheros.o +CONFIG_L2_PACKET=y +endif + +ifdef CONFIG_DRIVER_PRISM54 +CFLAGS += -DCONFIG_DRIVER_PRISM54 +OBJS += driver_prism54.o +endif + +ifdef CONFIG_DRIVER_NL80211 +CFLAGS += -DCONFIG_DRIVER_NL80211 +OBJS += driver_nl80211.o radiotap.o +LIBS += -lnl +ifdef CONFIG_LIBNL20 +LIBS += -lnl-genl +CFLAGS += -DCONFIG_LIBNL20 +endif +endif + +ifdef CONFIG_DRIVER_BSD +CFLAGS += -DCONFIG_DRIVER_BSD +OBJS += driver_bsd.o +CONFIG_L2_PACKET=y +CONFIG_DNET_PCAP=y +CONFIG_L2_FREEBSD=y +endif + +ifdef CONFIG_DRIVER_TEST +CFLAGS += -DCONFIG_DRIVER_TEST +OBJS += driver_test.o +endif + +ifdef CONFIG_DRIVER_NONE +CFLAGS += -DCONFIG_DRIVER_NONE +OBJS += driver_none.o +endif + +ifdef CONFIG_L2_PACKET +ifdef CONFIG_DNET_PCAP +ifdef CONFIG_L2_FREEBSD +LIBS += -lpcap +OBJS += ../src/l2_packet/l2_packet_freebsd.o +else +LIBS += -ldnet -lpcap +OBJS += ../src/l2_packet/l2_packet_pcap.o +endif +else +OBJS += ../src/l2_packet/l2_packet_linux.o +endif +else +OBJS += ../src/l2_packet/l2_packet_none.o +endif + + +ifdef CONFIG_EAP_MD5 +CFLAGS += -DEAP_MD5 +OBJS += ../src/eap_server/eap_md5.o +CHAP=y +endif + +ifdef CONFIG_EAP_TLS +CFLAGS += -DEAP_TLS +OBJS += ../src/eap_server/eap_tls.o +TLS_FUNCS=y +endif + +ifdef CONFIG_EAP_PEAP +CFLAGS += -DEAP_PEAP +OBJS += ../src/eap_server/eap_peap.o +OBJS += ../src/eap_common/eap_peap_common.o +TLS_FUNCS=y +CONFIG_EAP_MSCHAPV2=y +endif + +ifdef CONFIG_EAP_TTLS +CFLAGS += -DEAP_TTLS +OBJS += ../src/eap_server/eap_ttls.o +TLS_FUNCS=y +CHAP=y +endif + +ifdef CONFIG_EAP_MSCHAPV2 +CFLAGS += -DEAP_MSCHAPv2 +OBJS += ../src/eap_server/eap_mschapv2.o +MS_FUNCS=y +endif + +ifdef CONFIG_EAP_GTC +CFLAGS += -DEAP_GTC +OBJS += ../src/eap_server/eap_gtc.o +endif + +ifdef CONFIG_EAP_SIM +CFLAGS += -DEAP_SIM +OBJS += ../src/eap_server/eap_sim.o +CONFIG_EAP_SIM_COMMON=y +endif + +ifdef CONFIG_EAP_AKA +CFLAGS += -DEAP_AKA +OBJS += ../src/eap_server/eap_aka.o +CONFIG_EAP_SIM_COMMON=y +NEED_SHA256=y +endif + +ifdef CONFIG_EAP_AKA_PRIME +CFLAGS += -DEAP_AKA_PRIME +endif + +ifdef CONFIG_EAP_SIM_COMMON +OBJS += ../src/eap_common/eap_sim_common.o +# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be +# replaced with another file implementating the interface specified in +# eap_sim_db.h. +OBJS += ../src/eap_server/eap_sim_db.o +NEED_FIPS186_2_PRF=y +endif + +ifdef CONFIG_EAP_PAX +CFLAGS += -DEAP_PAX +OBJS += ../src/eap_server/eap_pax.o ../src/eap_common/eap_pax_common.o +endif + +ifdef CONFIG_EAP_PSK +CFLAGS += -DEAP_PSK +OBJS += ../src/eap_server/eap_psk.o ../src/eap_common/eap_psk_common.o +endif + +ifdef CONFIG_EAP_SAKE +CFLAGS += -DEAP_SAKE +OBJS += ../src/eap_server/eap_sake.o ../src/eap_common/eap_sake_common.o +endif + +ifdef CONFIG_EAP_GPSK +CFLAGS += -DEAP_GPSK +OBJS += ../src/eap_server/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o +ifdef CONFIG_EAP_GPSK_SHA256 +CFLAGS += -DEAP_GPSK_SHA256 +endif +NEED_SHA256=y +endif + +ifdef CONFIG_EAP_VENDOR_TEST +CFLAGS += -DEAP_VENDOR_TEST +OBJS += ../src/eap_server/eap_vendor_test.o +endif + +ifdef CONFIG_EAP_FAST +CFLAGS += -DEAP_FAST +OBJS += ../src/eap_server/eap_fast.o +OBJS += ../src/eap_common/eap_fast_common.o +TLS_FUNCS=y +NEED_T_PRF=y +endif + +ifdef CONFIG_WPS +CFLAGS += -DCONFIG_WPS -DEAP_WSC +OBJS += ../src/utils/uuid.o +OBJS += wps_hostapd.o +OBJS += ../src/eap_server/eap_wsc.o ../src/eap_common/eap_wsc_common.o +OBJS += ../src/wps/wps.o +OBJS += ../src/wps/wps_common.o +OBJS += ../src/wps/wps_attr_parse.o +OBJS += ../src/wps/wps_attr_build.o +OBJS += ../src/wps/wps_attr_process.o +OBJS += ../src/wps/wps_dev_attr.o +OBJS += ../src/wps/wps_enrollee.o +OBJS += ../src/wps/wps_registrar.o +NEED_DH_GROUPS=y +NEED_SHA256=y +NEED_CRYPTO=y +NEED_BASE64=y + +ifdef CONFIG_WPS_UPNP +CFLAGS += -DCONFIG_WPS_UPNP +OBJS += ../src/wps/wps_upnp.o +OBJS += ../src/wps/wps_upnp_ssdp.o +OBJS += ../src/wps/wps_upnp_web.o +OBJS += ../src/wps/wps_upnp_event.o +OBJS += ../src/wps/httpread.o +endif + +endif + +ifdef CONFIG_EAP_IKEV2 +CFLAGS += -DEAP_IKEV2 +OBJS += ../src/eap_server/eap_ikev2.o ../src/eap_server/ikev2.o +OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o +NEED_DH_GROUPS=y +NEED_DH_GROUPS_ALL=y +endif + +ifdef CONFIG_EAP_TNC +CFLAGS += -DEAP_TNC +OBJS += ../src/eap_server/eap_tnc.o +OBJS += ../src/eap_server/tncs.o +NEED_BASE64=y +ifndef CONFIG_DRIVER_BSD +LIBS += -ldl +endif +endif + +# Basic EAP functionality is needed for EAPOL +OBJS += ../src/eap_server/eap.o +OBJS += ../src/eap_common/eap_common.o +OBJS += ../src/eap_server/eap_methods.o +OBJS += ../src/eap_server/eap_identity.o + +ifdef CONFIG_EAP +CFLAGS += -DEAP_SERVER +endif + +ifndef CONFIG_TLS +CONFIG_TLS=openssl +endif + +ifeq ($(CONFIG_TLS), internal) +ifndef CONFIG_CRYPTO +CONFIG_CRYPTO=internal +endif +endif +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +CFLAGS += -DCONFIG_INTERNAL_X509 +endif +ifeq ($(CONFIG_CRYPTO), internal) +CFLAGS += -DCONFIG_INTERNAL_X509 +endif + + +ifdef TLS_FUNCS +# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) +CFLAGS += -DEAP_TLS_FUNCS +OBJS += ../src/eap_server/eap_tls_common.o +NEED_TLS_PRF=y +ifeq ($(CONFIG_TLS), openssl) +OBJS += ../src/crypto/tls_openssl.o +LIBS += -lssl -lcrypto +LIBS_p += -lcrypto +LIBS_h += -lcrypto +endif +ifeq ($(CONFIG_TLS), gnutls) +OBJS += ../src/crypto/tls_gnutls.o +LIBS += -lgnutls -lgcrypt -lgpg-error +LIBS_p += -lgcrypt +LIBS_h += -lgcrypt +endif +ifdef CONFIG_GNUTLS_EXTRA +CFLAGS += -DCONFIG_GNUTLS_EXTRA +LIBS += -lgnutls-extra +endif +ifeq ($(CONFIG_TLS), internal) +OBJS += ../src/crypto/tls_internal.o +OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o +OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_server.o +OBJS += ../src/tls/tlsv1_server_write.o ../src/tls/tlsv1_server_read.o +OBJS += ../src/tls/asn1.o ../src/tls/x509v3.o +OBJS_p += ../src/tls/asn1.o +OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o +NEED_BASE64=y +CFLAGS += -DCONFIG_TLS_INTERNAL +CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER +ifeq ($(CONFIG_CRYPTO), internal) +ifdef CONFIG_INTERNAL_LIBTOMMATH +CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH +else +LIBS += -ltommath +LIBS_p += -ltommath +endif +endif +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +LIBS += -ltomcrypt -ltfm +LIBS_p += -ltomcrypt -ltfm +endif +endif +NEED_CRYPTO=y +else +OBJS += ../src/crypto/tls_none.o +endif + +ifdef CONFIG_PKCS12 +CFLAGS += -DPKCS12_FUNCS +endif + +ifdef MS_FUNCS +OBJS += ../src/crypto/ms_funcs.o +NEED_CRYPTO=y +endif + +ifdef CHAP +OBJS += ../src/eap_common/chap.o +endif + +ifdef NEED_CRYPTO +ifndef TLS_FUNCS +ifeq ($(CONFIG_TLS), openssl) +LIBS += -lcrypto +LIBS_p += -lcrypto +LIBS_h += -lcrypto +endif +ifeq ($(CONFIG_TLS), gnutls) +LIBS += -lgcrypt +LIBS_p += -lgcrypt +LIBS_h += -lgcrypt +endif +ifeq ($(CONFIG_TLS), internal) +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +LIBS += -ltomcrypt -ltfm +LIBS_p += -ltomcrypt -ltfm +endif +endif +endif +ifeq ($(CONFIG_TLS), openssl) +OBJS += ../src/crypto/crypto_openssl.o +OBJS_p += ../src/crypto/crypto_openssl.o +HOBJS += ../src/crypto/crypto_openssl.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_TLS), gnutls) +OBJS += ../src/crypto/crypto_gnutls.o +OBJS_p += ../src/crypto/crypto_gnutls.o +HOBJS += ../src/crypto/crypto_gnutls.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_TLS), internal) +ifeq ($(CONFIG_CRYPTO), libtomcrypt) +OBJS += ../src/crypto/crypto_libtomcrypt.o +OBJS_p += ../src/crypto/crypto_libtomcrypt.o +CONFIG_INTERNAL_SHA256=y +endif +ifeq ($(CONFIG_CRYPTO), internal) +OBJS += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o +OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/rsa.o ../src/tls/bignum.o +CFLAGS += -DCONFIG_CRYPTO_INTERNAL +ifdef CONFIG_INTERNAL_LIBTOMMATH +CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH +ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST +CFLAGS += -DLTM_FAST +endif +else +LIBS += -ltommath +LIBS_p += -ltommath +endif +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_DES=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_MD4=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_SHA256=y +endif +endif +else +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_SHA256=y +endif + +ifdef CONFIG_INTERNAL_AES +CFLAGS += -DINTERNAL_AES +endif +ifdef CONFIG_INTERNAL_SHA1 +CFLAGS += -DINTERNAL_SHA1 +endif +ifdef CONFIG_INTERNAL_SHA256 +CFLAGS += -DINTERNAL_SHA256 +endif +ifdef CONFIG_INTERNAL_MD5 +CFLAGS += -DINTERNAL_MD5 +endif +ifdef CONFIG_INTERNAL_MD4 +CFLAGS += -DINTERNAL_MD4 +endif +ifdef CONFIG_INTERNAL_DES +CFLAGS += -DINTERNAL_DES +endif + +ifdef NEED_SHA256 +OBJS += ../src/crypto/sha256.o +endif + +ifdef NEED_DH_GROUPS +OBJS += ../src/crypto/dh_groups.o +ifdef NEED_DH_GROUPS_ALL +CFLAGS += -DALL_DH_GROUPS +endif +endif + +ifndef NEED_FIPS186_2_PRF +CFLAGS += -DCONFIG_NO_FIPS186_2_PRF +endif + +ifndef NEED_T_PRF +CFLAGS += -DCONFIG_NO_T_PRF +endif + +ifndef NEED_TLS_PRF +CFLAGS += -DCONFIG_NO_TLS_PRF +endif + +ifdef CONFIG_RADIUS_SERVER +CFLAGS += -DRADIUS_SERVER +OBJS += ../src/radius/radius_server.o +endif + +ifdef CONFIG_IPV6 +CFLAGS += -DCONFIG_IPV6 +endif + +ifdef CONFIG_DRIVER_RADIUS_ACL +CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL +endif + +ifdef CONFIG_FULL_DYNAMIC_VLAN +# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges +# and vlan interfaces for the vlan feature. +CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN +endif + +ifdef NEED_BASE64 +OBJS += ../src/utils/base64.o +endif + +ifdef CONFIG_NO_STDOUT_DEBUG +CFLAGS += -DCONFIG_NO_STDOUT_DEBUG +endif + +ifdef CONFIG_NO_AES_EXTRAS +CFLAGS += -DCONFIG_NO_AES_UNWRAP +CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1 +CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC +CFLAGS += -DCONFIG_NO_AES_DECRYPT +CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK +endif + +ALL=hostapd hostapd_cli + +all: verify_config $(ALL) + +Q=@ +E=echo +ifeq ($(V), 1) +Q= +E=true +endif + +%.o: %.c + $(Q)$(CC) -c -o $@ $(CFLAGS) $< + @$(E) " CC " $< + +verify_config: + @if [ ! -r .config ]; then \ + echo 'Building hostapd requires a configuration file'; \ + echo '(.config). See README for more instructions. You can'; \ + echo 'run "cp defconfig .config" to create an example'; \ + echo 'configuration.'; \ + exit 1; \ + fi + +install: all + for i in $(ALL); do cp $$i /usr/local/bin/$$i; done + +hostapd: $(OBJS) + $(CC) -o hostapd $(OBJS) $(LIBS) + +OBJS_c = hostapd_cli.o ../src/common/wpa_ctrl.o ../src/utils/os_$(CONFIG_OS).o +hostapd_cli: $(OBJS_c) + $(CC) -o hostapd_cli $(OBJS_c) + +NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o ../src/crypto/sha1.o ../src/crypto/rc4.o ../src/crypto/md5.o +NOBJS += ../src/crypto/crypto_openssl.o ../src/utils/os_$(CONFIG_OS).o +ifdef TLS_FUNCS +LIBS_n += -lcrypto +endif + +nt_password_hash: $(NOBJS) + $(CC) -o nt_password_hash $(NOBJS) $(LIBS_n) + +hlr_auc_gw: $(HOBJS) + $(CC) -o hlr_auc_gw $(HOBJS) $(LIBS_h) + +clean: + $(MAKE) -C ../src clean + rm -f core *~ *.o hostapd hostapd_cli nt_password_hash hlr_auc_gw + rm -f *.d + +%.eps: %.fig + fig2dev -L eps $*.fig $*.eps + +%.png: %.fig + fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \ + > $*.png + +docs-pics: doc/hostapd.png doc/hostapd.eps + +docs: docs-pics + (cd ..; doxygen hostapd/doc/doxygen.full; cd hostapd) + $(MAKE) -C doc/latex + cp doc/latex/refman.pdf hostapd-devel.pdf + +docs-fast: docs-pics + (cd ..; doxygen hostapd/doc/doxygen.fast; cd hostapd) + +clean-docs: + rm -rf doc/latex doc/html + rm -f doc/hostapd.{eps,png} hostapd-devel.pdf + +TEST_SRC_MILENAGE = ../src/hlr_auc_gw/milenage.c ../src/crypto/aes_wrap.c ../src/crypto/aes.c ../src/utils/common.c ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).c +test-milenage: $(TEST_SRC_MILENAGE) + $(CC) -o test-milenage -Wall -Werror $(TEST_SRC_MILENAGE) \ + -DTEST_MAIN_MILENAGE -I. -DINTERNAL_AES \ + -I../src/crypto -I../src/utils + ./test-milenage + rm test-milenage + +-include $(OBJS:%.o=%.d) Modified: projects/clangbsd/contrib/wpa/hostapd/README-WPS ============================================================================== --- projects/clangbsd/contrib/wpa/hostapd/README-WPS Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/wpa/hostapd/README-WPS Mon Jun 14 18:45:33 2010 (r209170) @@ -165,10 +165,17 @@ Example command to add a PIN (12345670) hostapd_cli wps_pin 53b63a98-d29e-4457-a2ed-094d7e6a669c 12345670 If the UUID-E is not available (e.g., Enrollee waits for the Registrar -to be selected before connecting), wildcard UUID may be used to allow the PIN to be used once with any UUID: +to be selected before connecting), wildcard UUID may be used to allow +the PIN to be used once with any UUID: hostapd_cli wps_pin any 12345670 +To reduce likelihood of PIN being used with other devices or of +forgetting an active PIN available for potential attackers, expiration +time can be set for the new PIN: + +hostapd_cli wps_pin any 12345670 300 + After this, the Enrollee can connect to the AP again and complete WPS negotiation. At that point, a new, random WPA PSK is generated for the Modified: projects/clangbsd/contrib/wpa/hostapd/ap.h ============================================================================== --- projects/clangbsd/contrib/wpa/hostapd/ap.h Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/wpa/hostapd/ap.h Mon Jun 14 18:45:33 2010 (r209170) @@ -30,7 +30,7 @@ #define WLAN_STA_PENDING_POLL BIT(6) /* pending activity poll not ACKed */ #define WLAN_STA_SHORT_PREAMBLE BIT(7) #define WLAN_STA_PREAUTH BIT(8) -#define WLAN_STA_WME BIT(9) +#define WLAN_STA_WMM BIT(9) #define WLAN_STA_MFP BIT(10) #define WLAN_STA_HT BIT(11) #define WLAN_STA_WPS BIT(12) Modified: projects/clangbsd/contrib/wpa/hostapd/beacon.c ============================================================================== --- projects/clangbsd/contrib/wpa/hostapd/beacon.c Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/wpa/hostapd/beacon.c Mon Jun 14 18:45:33 2010 (r209170) @@ -298,8 +298,8 @@ void handle_probe_req(struct hostapd_dat pos = hostapd_eid_wpa(hapd, pos, epos - pos, sta); - /* Wi-Fi Wireless Multimedia Extensions */ - pos = hostapd_eid_wme(hapd, pos); + /* Wi-Fi Alliance WMM */ + pos = hostapd_eid_wmm(hapd, pos); pos = hostapd_eid_ht_capabilities_info(hapd, pos); pos = hostapd_eid_ht_operation(hapd, pos); @@ -395,8 +395,8 @@ void ieee802_11_set_beacon(struct hostap tailpos = hostapd_eid_wpa(hapd, tailpos, tail + BEACON_TAIL_BUF_SIZE - tailpos, NULL); - /* Wi-Fi Wireless Multimedia Extensions */ - tailpos = hostapd_eid_wme(hapd, tailpos); + /* Wi-Fi Alliance WMM */ + tailpos = hostapd_eid_wmm(hapd, tailpos); #ifdef CONFIG_IEEE80211N if (hapd->iconf->ieee80211n) { Modified: projects/clangbsd/contrib/wpa/hostapd/config.c ============================================================================== --- projects/clangbsd/contrib/wpa/hostapd/config.c Mon Jun 14 18:26:10 2010 (r209169) +++ projects/clangbsd/contrib/wpa/hostapd/config.c Mon Jun 14 18:45:33 2010 (r209170) @@ -201,15 +201,15 @@ static struct hostapd_config * hostapd_c struct hostapd_config *conf; struct hostapd_bss_config *bss; int i; - const int aCWmin = 15, aCWmax = 1024; - const struct hostapd_wme_ac_params ac_bk = + const int aCWmin = 4, aCWmax = 10; + const struct hostapd_wmm_ac_params ac_bk = { aCWmin, aCWmax, 7, 0, 0 }; /* background traffic */ - const struct hostapd_wme_ac_params ac_be = + const struct hostapd_wmm_ac_params ac_be = { aCWmin, aCWmax, 3, 0, 0 }; /* best effort traffic */ - const struct hostapd_wme_ac_params ac_vi = /* video traffic */ - { aCWmin >> 1, aCWmin, 2, 3000 / 32, 1 }; - const struct hostapd_wme_ac_params ac_vo = /* voice traffic */ - { aCWmin >> 2, aCWmin >> 1, 2, 1500 / 32, 1 }; + const struct hostapd_wmm_ac_params ac_vi = /* video traffic */ + { aCWmin - 1, aCWmin, 2, 3000 / 32, 1 }; + const struct hostapd_wmm_ac_params ac_vo = /* voice traffic */ + { aCWmin - 2, aCWmin - 1, 2, 1500 / 32, 1 }; conf = os_zalloc(sizeof(*conf)); bss = os_zalloc(sizeof(*bss)); @@ -251,10 +251,10 @@ static struct hostapd_config * hostapd_c for (i = 0; i < NUM_TX_QUEUES; i++) conf->tx_queue[i].aifs = -1; /* use hw default */ - conf->wme_ac_params[0] = ac_be; - conf->wme_ac_params[1] = ac_bk; - conf->wme_ac_params[2] = ac_vi; - conf->wme_ac_params[3] = ac_vo; + conf->wmm_ac_params[0] = ac_be; + conf->wmm_ac_params[1] = ac_bk; + conf->wmm_ac_params[2] = ac_vi; + conf->wmm_ac_params[3] = ac_vo; #ifdef CONFIG_IEEE80211N conf->ht_capab = HT_CAP_INFO_SMPS_DISABLED; @@ -1166,14 +1166,14 @@ static int hostapd_config_tx_queue(struc } -static int hostapd_config_wme_ac(struct hostapd_config *conf, char *name, - char *val) +static int hostapd_config_wmm_ac(struct hostapd_config *conf, char *name, + char *val) { int num, v; char *pos; - struct hostapd_wme_ac_params *ac; + struct hostapd_wmm_ac_params *ac; - /* skip 'wme_ac_' prefix */ + /* skip 'wme_ac_' or 'wmm_ac_' prefix */ pos = name + 7; if (os_strncmp(pos, "be_", 3) == 0) { num = 0; @@ -1188,11 +1188,11 @@ static int hostapd_config_wme_ac(struct num = 3; pos += 3; } else { - wpa_printf(MSG_ERROR, "Unknown wme name '%s'", pos); + wpa_printf(MSG_ERROR, "Unknown WMM name '%s'", pos); return -1; } - ac = &conf->wme_ac_params[num]; + ac = &conf->wmm_ac_params[num]; if (os_strcmp(pos, "aifs") == 0) { v = atoi(val); @@ -1221,7 +1221,7 @@ static int hostapd_config_wme_ac(struct wpa_printf(MSG_ERROR, "Invalid txop value %d", v); return -1; } - ac->txopLimit = v; + ac->txop_limit = v; } else if (os_strcmp(pos, "acm") == 0) { v = atoi(val); if (v < 0 || v > 1) { @@ -1230,7 +1230,7 @@ static int hostapd_config_wme_ac(struct } ac->admission_control_mandatory = v; } else { - wpa_printf(MSG_ERROR, "Unknown wme_ac_ field '%s'", pos); + wpa_printf(MSG_ERROR, "Unknown wmm_ac_ field '%s'", pos); return -1; } @@ -1452,13 +1452,13 @@ struct hostapd_config * hostapd_config_r } else if (os_strcmp(buf, "bridge") == 0) { os_strlcpy(bss->bridge, pos, sizeof(bss->bridge)); } else if (os_strcmp(buf, "driver") == 0) { - int i; + int j; /* clear to get error below if setting is invalid */ conf->driver = NULL; - for (i = 0; hostapd_drivers[i]; i++) { - if (os_strcmp(pos, hostapd_drivers[i]->name) == + for (j = 0; hostapd_drivers[j]; j++) { + if (os_strcmp(pos, hostapd_drivers[j]->name) == 0) { - conf->driver = hostapd_drivers[i]; + conf->driver = hostapd_drivers[j]; break; } } @@ -2070,11 +2070,13 @@ struct hostapd_config * hostapd_config_r "queue item", line); errors++; } - } else if (os_strcmp(buf, "wme_enabled") == 0) { - bss->wme_enabled = atoi(pos); - } else if (os_strncmp(buf, "wme_ac_", 7) == 0) { - if (hostapd_config_wme_ac(conf, buf, pos)) { - wpa_printf(MSG_ERROR, "Line %d: invalid wme " + } else if (os_strcmp(buf, "wme_enabled") == 0 || + os_strcmp(buf, "wmm_enabled") == 0) { + bss->wmm_enabled = atoi(pos); + } else if (os_strncmp(buf, "wme_ac_", 7) == 0 || + os_strncmp(buf, "wmm_ac_", 7) == 0) { + if (hostapd_config_wmm_ac(conf, buf, pos)) { + wpa_printf(MSG_ERROR, "Line %d: invalid WMM " "ac item", line); errors++; } @@ -2255,29 +2257,30 @@ struct hostapd_config * hostapd_config_r fclose(f); - if (bss->individual_wep_key_len == 0) { - /* individual keys are not use; can use key idx0 for broadcast - * keys */ - bss->broadcast_key_idx_min = 0; - } - - /* Select group cipher based on the enabled pairwise cipher suites */ - pairwise = 0; - if (bss->wpa & 1) - pairwise |= bss->wpa_pairwise; - if (bss->wpa & 2) { - if (bss->rsn_pairwise == 0) - bss->rsn_pairwise = bss->wpa_pairwise; - pairwise |= bss->rsn_pairwise; - } - if (pairwise & WPA_CIPHER_TKIP) - bss->wpa_group = WPA_CIPHER_TKIP; - else - bss->wpa_group = WPA_CIPHER_CCMP; - for (i = 0; i < conf->num_bss; i++) { bss = &conf->bss[i]; + if (bss->individual_wep_key_len == 0) { + /* individual keys are not use; can use key idx0 for + * broadcast keys */ + bss->broadcast_key_idx_min = 0; + } + + /* Select group cipher based on the enabled pairwise cipher + * suites */ + pairwise = 0; + if (bss->wpa & 1) + pairwise |= bss->wpa_pairwise; + if (bss->wpa & 2) { + if (bss->rsn_pairwise == 0) + bss->rsn_pairwise = bss->wpa_pairwise; + pairwise |= bss->rsn_pairwise; + } + if (pairwise & WPA_CIPHER_TKIP) + bss->wpa_group = WPA_CIPHER_TKIP; + else + bss->wpa_group = WPA_CIPHER_CCMP; + bss->radius->auth_server = bss->radius->auth_servers; bss->radius->acct_server = bss->radius->acct_servers; @@ -2476,6 +2479,8 @@ void hostapd_config_free(struct hostapd_ for (i = 0; i < conf->num_bss; i++) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Jun 14 21:11:24 2010 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 1945F106566B; Mon, 14 Jun 2010 21:11:24 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 087058FC1E; Mon, 14 Jun 2010 21:11:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5ELBNxa071601; Mon, 14 Jun 2010 21:11:23 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5ELBNO8071599; Mon, 14 Jun 2010 21:11:23 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006142111.o5ELBNO8071599@svn.freebsd.org> From: Roman Divacky Date: Mon, 14 Jun 2010 21:11:23 +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: r209176 - projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend 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: Mon, 14 Jun 2010 21:11:24 -0000 Author: rdivacky Date: Mon Jun 14 21:11:23 2010 New Revision: 209176 URL: http://svn.freebsd.org/changeset/base/209176 Log: Fix a mismerge and get us closer to head. Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp ============================================================================== --- projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Mon Jun 14 21:01:13 2010 (r209175) +++ projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Mon Jun 14 21:11:23 2010 (r209176) @@ -408,6 +408,7 @@ static bool getWindowsSDKDir(std::string void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, const HeaderSearchOptions &HSOpts) { +#if 0 /* Remove unneeded include paths. */ // FIXME: temporary hack: hard-coded paths. AddPath("/usr/local/include", System, true, false, false); @@ -420,6 +421,7 @@ void InitHeaderSearch::AddDefaultCInclud P.appendComponent("include"); AddPath(P.str(), System, false, false, false, /*IgnoreSysRoot=*/ true); } +#endif // Add dirs specified via 'configure --with-c-include-dirs'. llvm::StringRef CIncludeDirs(C_INCLUDE_DIRS); From owner-svn-src-projects@FreeBSD.ORG Tue Jun 15 13:08:04 2010 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 17C5B106566C; Tue, 15 Jun 2010 13:08:04 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 076B98FC1C; Tue, 15 Jun 2010 13:08:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5FD837J087014; Tue, 15 Jun 2010 13:08:03 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5FD83WM087012; Tue, 15 Jun 2010 13:08:03 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006151308.o5FD83WM087012@svn.freebsd.org> From: Roman Divacky Date: Tue, 15 Jun 2010 13:08:03 +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: r209202 - projects/clangbsd/sys/boot/i386/boot2 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: Tue, 15 Jun 2010 13:08:04 -0000 Author: rdivacky Date: Tue Jun 15 13:08:03 2010 New Revision: 209202 URL: http://svn.freebsd.org/changeset/base/209202 Log: Use __noinline instead of __attribute__((noinline)). Remove this from strcmp() as it is used only once. Suggested by: ed, Benjamin Kramer Modified: projects/clangbsd/sys/boot/i386/boot2/boot2.c Modified: projects/clangbsd/sys/boot/i386/boot2/boot2.c ============================================================================== --- projects/clangbsd/sys/boot/i386/boot2/boot2.c Tue Jun 15 11:37:33 2010 (r209201) +++ projects/clangbsd/sys/boot/i386/boot2/boot2.c Tue Jun 15 13:08:03 2010 (r209202) @@ -152,7 +152,7 @@ static int xgetc(int); static int getc(int); void memcpy(void *, const void *, int); -void __attribute__ ((noinline)) +void __noinline memcpy(void *dst, const void *src, int len) { const char *s = src; @@ -162,7 +162,7 @@ memcpy(void *dst, const void *src, int l *d++ = *s++; } -static int __attribute__ ((noinline)) +static int strcmp(const char *s1, const char *s2) { for (; *s1 == *s2 && *s1; s1++, s2++); @@ -601,7 +601,7 @@ printf(const char *fmt,...) return; } -static void __attribute__ ((noinline)) +static void __noinline putchar(int c) { if (c == '\n') From owner-svn-src-projects@FreeBSD.ORG Tue Jun 15 13:13:13 2010 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 0EDA61065672; Tue, 15 Jun 2010 13:13:13 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F2A628FC17; Tue, 15 Jun 2010 13:13:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5FDDCrU088215; Tue, 15 Jun 2010 13:13:12 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5FDDCI1088213; Tue, 15 Jun 2010 13:13:12 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201006151313.o5FDDCI1088213@svn.freebsd.org> From: Roman Divacky Date: Tue, 15 Jun 2010 13:13:12 +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: r209203 - projects/clangbsd/sys/boot/i386/boot2 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: Tue, 15 Jun 2010 13:13:13 -0000 Author: rdivacky Date: Tue Jun 15 13:13:12 2010 New Revision: 209203 URL: http://svn.freebsd.org/changeset/base/209203 Log: make memcpy static and fix the previous commit style Modified: projects/clangbsd/sys/boot/i386/boot2/boot2.c Modified: projects/clangbsd/sys/boot/i386/boot2/boot2.c ============================================================================== --- projects/clangbsd/sys/boot/i386/boot2/boot2.c Tue Jun 15 13:08:03 2010 (r209202) +++ projects/clangbsd/sys/boot/i386/boot2/boot2.c Tue Jun 15 13:13:12 2010 (r209203) @@ -151,8 +151,8 @@ static int xputc(int); static int xgetc(int); static int getc(int); -void memcpy(void *, const void *, int); -void __noinline +static void memcpy(void *, const void *, int); +static __noinline void memcpy(void *dst, const void *src, int len) { const char *s = src; @@ -162,7 +162,7 @@ memcpy(void *dst, const void *src, int l *d++ = *s++; } -static int +static inline int strcmp(const char *s1, const char *s2) { for (; *s1 == *s2 && *s1; s1++, s2++); @@ -601,7 +601,7 @@ printf(const char *fmt,...) return; } -static void __noinline +static __noinline void putchar(int c) { if (c == '\n') From owner-svn-src-projects@FreeBSD.ORG Tue Jun 15 21:46:07 2010 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 98B20106564A; Tue, 15 Jun 2010 21:46:07 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 880E88FC0A; Tue, 15 Jun 2010 21:46:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5FLk7Q3002715; Tue, 15 Jun 2010 21:46:07 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5FLk79o002713; Tue, 15 Jun 2010 21:46:07 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006152146.o5FLk79o002713@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 15 Jun 2010 21:46:07 +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: r209220 - projects/ppc64/sys/powerpc/aim 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: Tue, 15 Jun 2010 21:46:07 -0000 Author: nwhitehorn Date: Tue Jun 15 21:46:07 2010 New Revision: 209220 URL: http://svn.freebsd.org/changeset/base/209220 Log: Implement a page table spilling mechanism to allow the kernel to continue when user-space applications have filled all the slots in a PTEG. This relies on VM gracefully remapping pages when it gets faults on pages it thinks are mapped already, which it seems to do in limited forkbomb-based testing. Comments by alc appreciated before merging to HEAD. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Tue Jun 15 21:34:57 2010 (r209219) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Tue Jun 15 21:46:07 2010 (r209220) @@ -1024,6 +1024,8 @@ moea64_bootstrap(mmu_t mmup, vm_offset_t while (moea64_pteg_count < physmem) moea64_pteg_count <<= 1; + + moea64_pteg_count >>= 1; #endif /* PTEGCOUNT */ size = moea64_pteg_count * sizeof(struct lpteg); @@ -2625,6 +2627,8 @@ moea64_pvo_to_pte(const struct pvo_entry { struct lpte *pt; + ASSERT_TABLE_LOCK(); + /* * If we haven't been supplied the ptegidx, calculate it. */ @@ -2652,6 +2656,10 @@ moea64_pvo_to_pte(const struct pvo_entry "pvo but no valid pte", pvo); } + /* If the PTEG index is not set, then there is no page table entry */ + if (!PVO_PTEGIDX_ISSET(pvo)) + return (NULL); + if ((pt->pte_hi ^ (pvo->pvo_pte.lpte.pte_hi & ~LPTE_VALID)) == LPTE_VALID) { if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) == 0) { @@ -2679,10 +2687,47 @@ moea64_pvo_to_pte(const struct pvo_entry return (NULL); } +static __inline int +moea64_pte_spillable_ident(u_int ptegidx) +{ + struct lpte *pt; + int i, j, k; + + /* Start at a random slot */ + i = mftb() % 8; + k = -1; + for (j = 0; j < 8; j++) { + pt = &moea64_pteg_table[ptegidx].pt[(i + j) % 8]; + if (pt->pte_hi & LPTE_LOCKED) + continue; + + /* Don't spill kernel mappings */ + #ifdef __powerpc64__ + if ((pt->pte_hi >> LPTE_VSID_SHIFT) & KERNEL_VSID_BIT) + continue; + #else + if (((pt->pte_hi >> LPTE_VSID_SHIFT) & EMPTY_SEGMENT) == + EMPTY_SEGMENT) + continue; + #endif + + /* This is a candidate, so remember it */ + k = (i + j) % 8; + + /* Try to get a page that has not been used lately */ + if (!(pt->pte_lo & LPTE_REF)) + return (k); + } + + return (k); +} + static int moea64_pte_insert(u_int ptegidx, struct lpte *pvo_pt) { struct lpte *pt; + struct pvo_entry *pvo; + u_int pteg_bktidx; int i; ASSERT_TABLE_LOCK(); @@ -2690,6 +2735,7 @@ moea64_pte_insert(u_int ptegidx, struct /* * First try primary hash. */ + pteg_bktidx = ptegidx; for (pt = moea64_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) { if ((pt->pte_hi & LPTE_VALID) == 0 && (pt->pte_hi & LPTE_LOCKED) == 0) { @@ -2702,7 +2748,7 @@ moea64_pte_insert(u_int ptegidx, struct /* * Now try secondary hash. */ - ptegidx ^= moea64_pteg_mask; + pteg_bktidx ^= moea64_pteg_mask; for (pt = moea64_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) { if ((pt->pte_hi & LPTE_VALID) == 0 && @@ -2713,8 +2759,50 @@ moea64_pte_insert(u_int ptegidx, struct } } - panic("moea64_pte_insert: overflow"); - return (-1); + /* + * Out of luck. Find a PTE to sacrifice. + */ + pteg_bktidx = ptegidx; + i = moea64_pte_spillable_ident(pteg_bktidx); + if (i < 0) { + pteg_bktidx ^= moea64_pteg_mask; + i = moea64_pte_spillable_ident(pteg_bktidx); + } + + if (i < 0) { + /* No freeable slots in either PTEG? We're hosed. */ + panic("moea64_pte_insert: overflow"); + return (-1); + } + + /* + * Synchronize the sacrifice PTE with its PVO, then mark both + * invalid. The PVO will be reused when/if the VM system comes + * here after a fault. + */ + pt = &moea64_pteg_table[pteg_bktidx].pt[i]; + + if (pt->pte_hi & LPTE_HID) + pvo_pt->pte_hi |= LPTE_HID; + + LIST_FOREACH(pvo, &moea64_pvo_table[ptegidx], pvo_olink) { + if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { + moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); + PVO_PTEGIDX_CLR(pvo); + moea64_pte_overflow++; + break; + } + } + + KASSERT(pvo->pvo_pte.lpte.pte_hi == pt->pte_hi, + ("Unable to find PVO for spilled PTE")); + + /* + * Set the new PTE. + */ + moea64_pte_set(pt, pvo_pt); + + return (i); } static boolean_t From owner-svn-src-projects@FreeBSD.ORG Wed Jun 16 02:50:18 2010 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 EB1751065672; Wed, 16 Jun 2010 02:50:17 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D667F8FC08; Wed, 16 Jun 2010 02:50:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5G2oHRm069651; Wed, 16 Jun 2010 02:50:17 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5G2oHit069615; Wed, 16 Jun 2010 02:50:17 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006160250.o5G2oHit069615@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 16 Jun 2010 02:50:17 +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: r209227 - in projects/ppc64: bin/sh contrib/tzcode/zic etc/periodic/daily gnu/lib/libdialog/TESTS include lib/clang lib/clang/libllvmanalysis lib/clang/libllvmbitreader lib/clang/libllv... 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, 16 Jun 2010 02:50:18 -0000 Author: nwhitehorn Date: Wed Jun 16 02:50:16 2010 New Revision: 209227 URL: http://svn.freebsd.org/changeset/base/209227 Log: IFC to pull in syscons changes Added: projects/ppc64/etc/periodic/daily/800.scrub-zfs - copied unchanged from r209226, head/etc/periodic/daily/800.scrub-zfs Modified: projects/ppc64/bin/sh/histedit.c projects/ppc64/contrib/tzcode/zic/zic.8 projects/ppc64/gnu/lib/libdialog/TESTS/check3.c projects/ppc64/gnu/lib/libdialog/TESTS/menu3.c projects/ppc64/gnu/lib/libdialog/TESTS/radio1.c projects/ppc64/gnu/lib/libdialog/TESTS/radio3.c projects/ppc64/include/histedit.h projects/ppc64/lib/clang/clang.build.mk projects/ppc64/lib/clang/libllvmanalysis/Makefile projects/ppc64/lib/clang/libllvmbitreader/Makefile projects/ppc64/lib/clang/libllvmbitwriter/Makefile projects/ppc64/lib/clang/libllvmcodegen/Makefile projects/ppc64/lib/clang/libllvmcore/Makefile projects/ppc64/lib/clang/libllvmipo/Makefile projects/ppc64/lib/clang/libllvmmc/Makefile projects/ppc64/lib/clang/libllvmscalaropts/Makefile projects/ppc64/lib/clang/libllvmsupport/Makefile projects/ppc64/lib/clang/libllvmsystem/Makefile projects/ppc64/lib/clang/libllvmtarget/Makefile projects/ppc64/lib/libedit/filecomplete.c projects/ppc64/lib/libedit/filecomplete.h projects/ppc64/lib/libmemstat/memstat.c projects/ppc64/lib/libmemstat/memstat.h projects/ppc64/lib/libmemstat/memstat_internal.h projects/ppc64/lib/libmemstat/memstat_uma.c projects/ppc64/sbin/hastd/ebuf.c projects/ppc64/sbin/hastd/hast_proto.c projects/ppc64/sbin/hastd/hastd.c projects/ppc64/sbin/hastd/metadata.c projects/ppc64/sbin/hastd/nv.c projects/ppc64/sbin/hastd/primary.c projects/ppc64/sbin/hastd/secondary.c projects/ppc64/share/examples/kld/syscall/test/call.c projects/ppc64/share/man/man4/bpf.4 projects/ppc64/share/man/man5/periodic.conf.5 projects/ppc64/share/man/man9/vfs_busy.9 projects/ppc64/share/man/man9/vfs_unbusy.9 projects/ppc64/sys/amd64/acpica/acpi_wakeup.c projects/ppc64/sys/amd64/amd64/fpu.c projects/ppc64/sys/amd64/amd64/machdep.c projects/ppc64/sys/amd64/amd64/mp_machdep.c projects/ppc64/sys/amd64/amd64/vm_machdep.c projects/ppc64/sys/amd64/ia32/ia32_signal.c projects/ppc64/sys/amd64/include/mca.h projects/ppc64/sys/arm/arm/pmap.c projects/ppc64/sys/cam/scsi/scsi_all.h projects/ppc64/sys/dev/acpica/acpi_cpu.c projects/ppc64/sys/dev/e1000/if_igb.c projects/ppc64/sys/dev/e1000/if_igb.h projects/ppc64/sys/dev/iwn/if_iwn.c projects/ppc64/sys/dev/md/md.c projects/ppc64/sys/dev/sound/pcm/feeder_eq.c projects/ppc64/sys/dev/sound/pcm/feeder_rate.c projects/ppc64/sys/dev/sound/pcm/sound.c projects/ppc64/sys/dev/usb/wlan/if_rum.c projects/ppc64/sys/dev/usb/wlan/if_run.c projects/ppc64/sys/dev/usb/wlan/if_ural.c projects/ppc64/sys/fs/nfsclient/nfs_clport.c projects/ppc64/sys/fs/nfsserver/nfs_nfsdport.c projects/ppc64/sys/fs/tmpfs/tmpfs_vnops.c projects/ppc64/sys/geom/gate/g_gate.c projects/ppc64/sys/i386/acpica/acpi_wakeup.c projects/ppc64/sys/i386/include/mca.h projects/ppc64/sys/kern/kern_tc.c projects/ppc64/sys/net/bpf.c projects/ppc64/sys/net/bpf.h projects/ppc64/sys/net/bpfdesc.h projects/ppc64/sys/netgraph/ng_patch.c projects/ppc64/sys/netinet/sctp_asconf.c projects/ppc64/sys/netinet/sctp_pcb.c projects/ppc64/sys/powerpc/ofw/ofw_syscons.c projects/ppc64/sys/sys/pmc.h projects/ppc64/sys/sys/proc.h projects/ppc64/sys/sys/time.h projects/ppc64/sys/vm/uma.h projects/ppc64/sys/vm/uma_core.c projects/ppc64/sys/vm/uma_int.h projects/ppc64/sys/vm/vm_page.c projects/ppc64/sys/vm/vm_pageout.c projects/ppc64/sys/x86/x86/mca.c projects/ppc64/tools/build/mk/OptionalObsoleteFiles.inc projects/ppc64/tools/tools/nanobsd/nanobsd.sh projects/ppc64/usr.bin/vmstat/vmstat.c projects/ppc64/usr.bin/wtmpcvt/wtmpcvt.c projects/ppc64/usr.sbin/moused/moused.c projects/ppc64/usr.sbin/sysinstall/disks.c projects/ppc64/usr.sbin/tzsetup/tzsetup.c Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/share/mk/bsd.arch.inc.mk (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/bin/sh/histedit.c ============================================================================== --- projects/ppc64/bin/sh/histedit.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/bin/sh/histedit.c Wed Jun 16 02:50:16 2010 (r209227) @@ -119,6 +119,9 @@ histedit(void) if (hist) el_set(el, EL_HIST, history, hist); el_set(el, EL_PROMPT, getprompt); + el_set(el, EL_ADDFN, "sh-complete", + "Filename completion", + _el_fn_sh_complete); } else { bad: out2fmt_flush("sh: can't initialize editing\n"); @@ -135,6 +138,7 @@ bad: el_set(el, EL_EDITOR, "vi"); else if (Eflag) el_set(el, EL_EDITOR, "emacs"); + el_set(el, EL_BIND, "^I", "sh-complete", NULL); el_source(el, NULL); } } else { Modified: projects/ppc64/contrib/tzcode/zic/zic.8 ============================================================================== --- projects/ppc64/contrib/tzcode/zic/zic.8 Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/contrib/tzcode/zic/zic.8 Wed Jun 16 02:50:16 2010 (r209227) @@ -120,9 +120,9 @@ Non-blank lines are expected to be of on rule lines, zone lines, and link lines. .Pp A rule line has the form: -.Dl "Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +.Dl "Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S" For example: -.Dl "Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D +.Dl "Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D" .Pp The fields that make up a rule line are: .Bl -tag -width "LETTER/S" -offset indent @@ -262,7 +262,7 @@ the variable part is null. A zone line has the form: .Dl "Zone NAME GMTOFF RULES/SAVE FORMAT [UNTILYEAR [MONTH [DAY [TIME]]]]" For example: -.Dl "Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 +.Dl "Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00" The fields that make up a zone line are: .Bl -tag -width indent .It NAME @@ -319,9 +319,9 @@ continuation. .El .Pp A link line has the form -.Dl "Link LINK-FROM LINK-TO +.Dl "Link LINK-FROM LINK-TO" For example: -.Dl "Link Europe/Istanbul Asia/Istanbul +.Dl "Link Europe/Istanbul Asia/Istanbul" The .Em LINK-FROM field should appear as the @@ -335,9 +335,9 @@ Except for continuation lines, lines may appear in any order in the input. .Pp Lines in the file that describes leap seconds have the following form: -.Dl "Leap YEAR MONTH DAY HH:MM:SS CORR R/S +.Dl "Leap YEAR MONTH DAY HH:MM:SS CORR R/S" For example: -.Dl "Leap 1974 Dec 31 23:59:60 + S +.Dl "Leap 1974 Dec 31 23:59:60 + S" The .Em YEAR , .Em MONTH , Copied: projects/ppc64/etc/periodic/daily/800.scrub-zfs (from r209226, head/etc/periodic/daily/800.scrub-zfs) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/etc/periodic/daily/800.scrub-zfs Wed Jun 16 02:50:16 2010 (r209227, copy of r209226, head/etc/periodic/daily/800.scrub-zfs) @@ -0,0 +1,86 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +: ${daily_scrub_zfs_default_threshold=30} + +case "$daily_scrub_zfs_enable" in + [Yy][Ee][Ss]) + echo + echo 'Scrubbing of zfs pools:' + + if [ -z "${daily_scrub_zfs_pools}" ]; then + daily_scrub_zfs_pools="$(zpool list -H -o name)" + fi + + for pool in ${daily_scrub_zfs_pools}; do + # sanity check + zpool list ${pool} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo " WARNING: pool '${pool}' specified in" + echo " '/etc/periodic.conf:daily_scrub_zfs_pools'" + echo " does not exist" + continue + fi + + # successful only if there is at least one pool to scrub + rc=0 + + # determine how many days shall be between scrubs + eval _pool_threshold=\${daily_scrub_zfs_${pool}_threshold} + if [ -z "${_pool_threshold}" ];then + _pool_threshold=${daily_scrub_zfs_default_threshold} + fi + + _last_scrub=$(zpool history ${pool} | \ + egrep "^[0-9\.\:\-]{19} zpool scrub ${pool}\$" | tail -1 |\ + cut -d ' ' -f 1) + if [ -z "${_last_scrub}" ]; then + # creation time of the pool if no scrub was done + _last_scrub=$(zpool history ${pool} | \ + sed -ne '2s/ .*$//p') + fi + + # Now minus last scrub (both in seconds) converted to days. + _scrub_diff=$(expr -e \( $(date +%s) - \ + $(date -j -f %F.%T ${_last_scrub} +%s) \) / 60 / 60 / 24) + if [ ${_scrub_diff} -le ${_pool_threshold} ]; then + echo " skipping scrubbing of pool '${pool}':" + echo " last scrubbing is ${_scrub_diff} days ago, threshold is set to ${_pool_threshold} days" + continue + fi + + _status="$(zpool status ${pool} | grep scrub:)" + case "${_status}" in + *"scrub in progress"*) + echo " scrubbing of pool '${pool}' already in progress, skipping:" + ;; + *"none requested"*) + echo " starting first scrubbing (after reboot) of pool '${pool}':" + zpool scrub ${pool} + ;; + *) + echo " starting scrubbing of pool '${pool}':" + zpool scrub ${pool} + ;; + esac + + echo " consult 'zpool status ${pool}' for the result" + done + ;; + + *) + rc=0 + ;; +esac + +exit $rc Modified: projects/ppc64/gnu/lib/libdialog/TESTS/check3.c ============================================================================== --- projects/ppc64/gnu/lib/libdialog/TESTS/check3.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/gnu/lib/libdialog/TESTS/check3.c Wed Jun 16 02:50:16 2010 (r209227) @@ -47,13 +47,13 @@ static int spending; static int check(dialogMenuItem *self) { - return ((int)self->data == spending); + return ((int)(intptr_t)self->data == spending); } static int spend(dialogMenuItem *self) { - spending = (int)self->data; + spending = (int)(intptr_t)self->data; return DITEM_SUCCESS | DITEM_REDRAW; } Modified: projects/ppc64/gnu/lib/libdialog/TESTS/menu3.c ============================================================================== --- projects/ppc64/gnu/lib/libdialog/TESTS/menu3.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/gnu/lib/libdialog/TESTS/menu3.c Wed Jun 16 02:50:16 2010 (r209227) @@ -44,7 +44,7 @@ maybe(dialogMenuItem *self) static char *insurance[] = { "1,000,000", "Mondo insurance policy", "Off", "5,000,000", "Mega insurance policy", "Off", - "10,000,000", "Friend! Most Favored customer!" + "10,000,000", "Friend! Most Favored customer!", "On" }; static void Modified: projects/ppc64/gnu/lib/libdialog/TESTS/radio1.c ============================================================================== --- projects/ppc64/gnu/lib/libdialog/TESTS/radio1.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/gnu/lib/libdialog/TESTS/radio1.c Wed Jun 16 02:50:16 2010 (r209227) @@ -31,13 +31,13 @@ static int spending; static int check(dialogMenuItem *self) { - return ((int)self->data == spending); + return ((int)(intptr_t)self->data == spending); } static int spend(dialogMenuItem *self) { - spending = (int)self->data; + spending = (int)(intptr_t)self->data; return DITEM_SUCCESS | DITEM_REDRAW; } Modified: projects/ppc64/gnu/lib/libdialog/TESTS/radio3.c ============================================================================== --- projects/ppc64/gnu/lib/libdialog/TESTS/radio3.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/gnu/lib/libdialog/TESTS/radio3.c Wed Jun 16 02:50:16 2010 (r209227) @@ -31,13 +31,13 @@ static int spending; static int check(dialogMenuItem *self) { - return ((int)self->data == spending); + return ((int)(intptr_t)self->data == spending); } static int spend(dialogMenuItem *self) { - spending = (int)self->data; + spending = (int)(intptr_t)self->data; return DITEM_SUCCESS | DITEM_REDRAW; } Modified: projects/ppc64/include/histedit.h ============================================================================== --- projects/ppc64/include/histedit.h Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/include/histedit.h Wed Jun 16 02:50:16 2010 (r209227) @@ -106,6 +106,7 @@ int el_parse(EditLine *, int, const ch int el_set(EditLine *, int, ...); int el_get(EditLine *, int, ...); unsigned char _el_fn_complete(EditLine *, int); +unsigned char _el_fn_sh_complete(EditLine *, int); /* * el_set/el_get parameters Modified: projects/ppc64/lib/clang/clang.build.mk ============================================================================== --- projects/ppc64/lib/clang/clang.build.mk Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/clang.build.mk Wed Jun 16 02:50:16 2010 (r209227) @@ -17,7 +17,7 @@ TARGET_ARCH?= ${MACHINE_ARCH} # XXX: 8.0, to keep __FreeBSD_cc_version happy CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\" \ -DCLANG_VENDOR=\"FreeBSD\ \" -DSVN_REVISION=\"104832\" \ - -DCLANG_VENDOR_SUFFIX=\"\ 20100614\" + -DCLANG_VENDOR_SUFFIX=\"\ 20100615\" .PATH: ${LLVM_SRCS}/${SRCDIR} Modified: projects/ppc64/lib/clang/libllvmanalysis/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmanalysis/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmanalysis/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -10,15 +10,15 @@ SRCS= AliasAnalysis.cpp AliasAnalysisCou DbgInfoPrinter.cpp DebugInfo.cpp IVUsers.cpp InlineCost.cpp \ InstCount.cpp InstructionSimplify.cpp Interval.cpp \ IntervalPartition.cpp LazyValueInfo.cpp \ - LibCallAliasAnalysis.cpp LibCallSemantics.cpp Lint.cpp \ - LiveValues.cpp LoopDependenceAnalysis.cpp LoopInfo.cpp \ - LoopPass.cpp MemoryBuiltins.cpp MemoryDependenceAnalysis.cpp \ + LibCallAliasAnalysis.cpp Lint.cpp LiveValues.cpp \ + LoopDependenceAnalysis.cpp LoopInfo.cpp LoopPass.cpp \ + MemoryBuiltins.cpp MemoryDependenceAnalysis.cpp \ PHITransAddr.cpp PointerTracking.cpp PostDominators.cpp \ ProfileEstimatorPass.cpp ProfileInfo.cpp ProfileInfoLoader.cpp \ ProfileInfoLoaderPass.cpp ProfileVerifierPass.cpp \ ScalarEvolution.cpp ScalarEvolutionAliasAnalysis.cpp \ ScalarEvolutionExpander.cpp ScalarEvolutionNormalization.cpp \ - SparsePropagation.cpp Trace.cpp ValueTracking.cpp + SparsePropagation.cpp ValueTracking.cpp TGHDRS= Intrinsics Modified: projects/ppc64/lib/clang/libllvmbitreader/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmbitreader/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmbitreader/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -3,7 +3,7 @@ LIB= llvmbitreader SRCDIR= lib/Bitcode/Reader -SRCS= BitReader.cpp BitcodeReader.cpp +SRCS= BitcodeReader.cpp TGHDRS= Intrinsics Modified: projects/ppc64/lib/clang/libllvmbitwriter/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmbitwriter/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmbitwriter/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -3,7 +3,7 @@ LIB= llvmbitwriter SRCDIR= lib/Bitcode/Writer -SRCS= BitWriter.cpp BitcodeWriter.cpp BitcodeWriterPass.cpp \ +SRCS= BitcodeWriter.cpp BitcodeWriterPass.cpp \ ValueEnumerator.cpp .include "../clang.lib.mk" Modified: projects/ppc64/lib/clang/libllvmcodegen/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmcodegen/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmcodegen/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -7,21 +7,20 @@ SRCS= AggressiveAntiDepBreaker.cpp Analy CalcSpillWeights.cpp CodePlacementOpt.cpp \ CriticalAntiDepBreaker.cpp DeadMachineInstructionElim.cpp \ DwarfEHPrepare.cpp ELFCodeEmitter.cpp ELFWriter.cpp \ - ExactHazardRecognizer.cpp GCMetadata.cpp GCMetadataPrinter.cpp \ - GCStrategy.cpp IfConversion.cpp IntrinsicLowering.cpp \ - LLVMTargetMachine.cpp LatencyPriorityQueue.cpp \ - LiveInterval.cpp LiveIntervalAnalysis.cpp \ - LiveStackAnalysis.cpp LiveVariables.cpp LowerSubregs.cpp \ - MachineBasicBlock.cpp MachineCSE.cpp MachineDominators.cpp \ - MachineFunction.cpp MachineFunctionAnalysis.cpp \ - MachineFunctionPass.cpp MachineFunctionPrinterPass.cpp \ - MachineInstr.cpp MachineLICM.cpp MachineLoopInfo.cpp \ - MachineModuleInfo.cpp MachineModuleInfoImpls.cpp \ - MachinePassRegistry.cpp MachineRegisterInfo.cpp \ - MachineSSAUpdater.cpp MachineSink.cpp MachineVerifier.cpp \ - ObjectCodeEmitter.cpp OcamlGC.cpp OptimizeExts.cpp \ - OptimizePHIs.cpp PHIElimination.cpp Passes.cpp \ - PostRASchedulerList.cpp PreAllocSplitting.cpp \ + ExactHazardRecognizer.cpp GCMetadata.cpp GCStrategy.cpp \ + IfConversion.cpp IntrinsicLowering.cpp LLVMTargetMachine.cpp \ + LatencyPriorityQueue.cpp LiveInterval.cpp \ + LiveIntervalAnalysis.cpp LiveStackAnalysis.cpp \ + LiveVariables.cpp LowerSubregs.cpp MachineBasicBlock.cpp \ + MachineCSE.cpp MachineDominators.cpp MachineFunction.cpp \ + MachineFunctionAnalysis.cpp MachineFunctionPass.cpp \ + MachineFunctionPrinterPass.cpp MachineInstr.cpp \ + MachineLICM.cpp MachineLoopInfo.cpp MachineModuleInfo.cpp \ + MachineModuleInfoImpls.cpp MachinePassRegistry.cpp \ + MachineRegisterInfo.cpp MachineSSAUpdater.cpp MachineSink.cpp \ + MachineVerifier.cpp ObjectCodeEmitter.cpp OcamlGC.cpp \ + OptimizeExts.cpp OptimizePHIs.cpp PHIElimination.cpp \ + Passes.cpp PostRASchedulerList.cpp PreAllocSplitting.cpp \ ProcessImplicitDefs.cpp PrologEpilogInserter.cpp \ PseudoSourceValue.cpp RegAllocFast.cpp RegAllocLinearScan.cpp \ RegAllocLocal.cpp RegAllocPBQP.cpp RegisterCoalescer.cpp \ Modified: projects/ppc64/lib/clang/libllvmcore/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmcore/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmcore/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -5,8 +5,8 @@ LIB= llvmcore SRCDIR= lib/VMCore SRCS= AsmWriter.cpp Attributes.cpp AutoUpgrade.cpp BasicBlock.cpp \ ConstantFold.cpp Constants.cpp Core.cpp DebugLoc.cpp \ - Dominators.cpp Function.cpp GVMaterializer.cpp Globals.cpp \ - IRBuilder.cpp InlineAsm.cpp Instruction.cpp Instructions.cpp \ + Dominators.cpp Function.cpp Globals.cpp IRBuilder.cpp \ + InlineAsm.cpp Instruction.cpp Instructions.cpp \ IntrinsicInst.cpp LLVMContext.cpp LLVMContextImpl.cpp \ LeakDetector.cpp Metadata.cpp Module.cpp Pass.cpp \ PassManager.cpp PrintModulePass.cpp Type.cpp \ Modified: projects/ppc64/lib/clang/libllvmipo/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmipo/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmipo/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -6,11 +6,10 @@ SRCDIR= lib/Transforms/IPO SRCS= ArgumentPromotion.cpp ConstantMerge.cpp \ DeadArgumentElimination.cpp DeadTypeElimination.cpp \ ExtractGV.cpp FunctionAttrs.cpp GlobalDCE.cpp GlobalOpt.cpp \ - IPConstantPropagation.cpp IPO.cpp InlineAlways.cpp \ - InlineSimple.cpp Inliner.cpp Internalize.cpp LoopExtractor.cpp \ - LowerSetJmp.cpp MergeFunctions.cpp PartialSpecialization.cpp \ - PruneEH.cpp StripDeadPrototypes.cpp StripSymbols.cpp \ - StructRetPromotion.cpp + IPConstantPropagation.cpp InlineAlways.cpp InlineSimple.cpp \ + Inliner.cpp Internalize.cpp LoopExtractor.cpp LowerSetJmp.cpp \ + MergeFunctions.cpp PartialSpecialization.cpp PruneEH.cpp \ + StripDeadPrototypes.cpp StripSymbols.cpp StructRetPromotion.cpp TGHDRS= Intrinsics Modified: projects/ppc64/lib/clang/libllvmmc/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmmc/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmmc/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -5,11 +5,10 @@ LIB= llvmmc SRCDIR= lib/MC SRCS= MCAsmInfo.cpp MCAsmInfoCOFF.cpp MCAsmInfoDarwin.cpp \ MCAsmStreamer.cpp MCAssembler.cpp MCCodeEmitter.cpp \ - MCContext.cpp MCDisassembler.cpp MCExpr.cpp MCInst.cpp \ - MCInstPrinter.cpp MCLoggingStreamer.cpp MCMachOStreamer.cpp \ - MCNullStreamer.cpp MCObjectWriter.cpp MCSection.cpp \ - MCSectionCOFF.cpp MCSectionELF.cpp MCSectionMachO.cpp \ - MCStreamer.cpp MCSymbol.cpp MCValue.cpp MachObjectWriter.cpp \ - TargetAsmBackend.cpp + MCContext.cpp MCExpr.cpp MCInst.cpp MCInstPrinter.cpp \ + MCLoggingStreamer.cpp MCMachOStreamer.cpp MCNullStreamer.cpp \ + MCObjectWriter.cpp MCSection.cpp MCSectionCOFF.cpp \ + MCSectionELF.cpp MCSectionMachO.cpp MCStreamer.cpp \ + MCSymbol.cpp MachObjectWriter.cpp TargetAsmBackend.cpp .include "../clang.lib.mk" Modified: projects/ppc64/lib/clang/libllvmscalaropts/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmscalaropts/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmscalaropts/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -9,7 +9,7 @@ SRCS= ADCE.cpp BasicBlockPlacement.cpp C LICM.cpp LoopDeletion.cpp LoopIndexSplit.cpp LoopRotation.cpp \ LoopStrengthReduce.cpp LoopUnrollPass.cpp LoopUnswitch.cpp \ MemCpyOptimizer.cpp Reassociate.cpp Reg2Mem.cpp SCCP.cpp \ - Scalar.cpp ScalarReplAggregates.cpp SimplifyCFGPass.cpp \ + ScalarReplAggregates.cpp SimplifyCFGPass.cpp \ SimplifyHalfPowrLibCalls.cpp SimplifyLibCalls.cpp \ TailDuplication.cpp TailRecursionElimination.cpp Modified: projects/ppc64/lib/clang/libllvmsupport/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmsupport/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmsupport/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -6,14 +6,13 @@ SRCDIR= lib/Support SRCS= APFloat.cpp APInt.cpp APSInt.cpp Allocator.cpp CommandLine.cpp \ ConstantRange.cpp Debug.cpp DeltaAlgorithm.cpp Dwarf.cpp \ ErrorHandling.cpp FileUtilities.cpp FoldingSet.cpp \ - FormattedStream.cpp GraphWriter.cpp IsInf.cpp IsNAN.cpp \ - ManagedStatic.cpp MemoryBuffer.cpp MemoryObject.cpp \ - PluginLoader.cpp PrettyStackTrace.cpp Regex.cpp \ - SlowOperationInformer.cpp SmallPtrSet.cpp SmallVector.cpp \ - SourceMgr.cpp Statistic.cpp StringExtras.cpp StringMap.cpp \ - StringPool.cpp StringRef.cpp SystemUtils.cpp \ - TargetRegistry.cpp Timer.cpp Triple.cpp Twine.cpp \ - circular_raw_ostream.cpp raw_os_ostream.cpp raw_ostream.cpp \ - regcomp.c regerror.c regexec.c regfree.c regstrlcpy.c + FormattedStream.cpp GraphWriter.cpp ManagedStatic.cpp \ + MemoryBuffer.cpp PluginLoader.cpp PrettyStackTrace.cpp \ + Regex.cpp SlowOperationInformer.cpp SmallPtrSet.cpp \ + SmallVector.cpp SourceMgr.cpp Statistic.cpp StringExtras.cpp \ + StringMap.cpp StringPool.cpp StringRef.cpp TargetRegistry.cpp \ + Timer.cpp Triple.cpp Twine.cpp circular_raw_ostream.cpp \ + raw_os_ostream.cpp raw_ostream.cpp regcomp.c regerror.c \ + regexec.c regfree.c regstrlcpy.c .include "../clang.lib.mk" Modified: projects/ppc64/lib/clang/libllvmsystem/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmsystem/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmsystem/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -3,9 +3,8 @@ LIB= llvmsystem SRCDIR= lib/System -SRCS= Alarm.cpp Atomic.cpp Disassembler.cpp DynamicLibrary.cpp \ - Errno.cpp Host.cpp IncludeFile.cpp Memory.cpp Mutex.cpp \ - Path.cpp Process.cpp Program.cpp RWMutex.cpp \ +SRCS= Atomic.cpp DynamicLibrary.cpp Errno.cpp Host.cpp Memory.cpp \ + Mutex.cpp Path.cpp Process.cpp Program.cpp RWMutex.cpp \ SearchForAddressOfSpecialSymbol.cpp Signals.cpp \ ThreadLocal.cpp Threading.cpp TimeValue.cpp Valgrind.cpp Modified: projects/ppc64/lib/clang/libllvmtarget/Makefile ============================================================================== --- projects/ppc64/lib/clang/libllvmtarget/Makefile Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/clang/libllvmtarget/Makefile Wed Jun 16 02:50:16 2010 (r209227) @@ -5,8 +5,7 @@ LIB= llvmtarget SRCDIR= lib/Target SRCS= Mangler.cpp SubtargetFeature.cpp Target.cpp TargetAsmLexer.cpp \ TargetData.cpp TargetELFWriterInfo.cpp TargetFrameInfo.cpp \ - TargetInstrInfo.cpp TargetIntrinsicInfo.cpp \ - TargetLoweringObjectFile.cpp TargetMachine.cpp \ - TargetRegisterInfo.cpp TargetSubtarget.cpp + TargetInstrInfo.cpp TargetLoweringObjectFile.cpp \ + TargetMachine.cpp TargetRegisterInfo.cpp TargetSubtarget.cpp .include "../clang.lib.mk" Modified: projects/ppc64/lib/libedit/filecomplete.c ============================================================================== --- projects/ppc64/lib/libedit/filecomplete.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libedit/filecomplete.c Wed Jun 16 02:50:16 2010 (r209227) @@ -50,8 +50,10 @@ __FBSDID("$FreeBSD$"); #include "histedit.h" #include "filecomplete.h" -static char break_chars[] = { ' ', '\t', '\n', '"', '\\', '\'', '`', '@', - '$', '>', '<', '=', ';', '|', '&', '{', '(', '\0' }; +static char break_chars[] = { ' ', '\t', '\n', '"', '\\', '\'', '`', + '>', '<', '=', ';', '|', '&', '{', '(', '\0' }; +/* Tilde is deliberately omitted here, we treat it specially. */ +static char extra_quote_chars[] = { ')', '}', '*', '?', '[', '$', '\0' }; /********************************/ @@ -347,13 +349,12 @@ fn_display_match_list(EditLine *el, char count++; /* Sort the items if they are not already sorted. */ - qsort(&matches[1], (size_t)(len - 1), sizeof(char *), - _fn_qsort_string_compare); + qsort(&matches[1], len, sizeof(char *), _fn_qsort_string_compare); idx = 1; for(; count > 0; count--) { int more = limit > 0 && matches[0]; - for(i = 0; more; i++, idx++) { + for(i = 0; more; idx++) { more = ++i < limit && matches[idx + 1]; (void)fprintf(el->el_outfile, "%-*s%s", (int)max, matches[idx], more ? " " : ""); @@ -381,10 +382,14 @@ fn_complete(EditLine *el, char **(*attempted_completion_function)(const char *, int, int), const char *word_break, const char *special_prefixes, const char *(*app_func)(const char *), size_t query_items, - int *completion_type, int *over, int *point, int *end) + int *completion_type, int *over, int *point, int *end, + const char *(*find_word_start_func)(const char *, const char *), + char *(*dequoting_func)(const char *), + char *(*quoting_func)(const char *)) { const LineInfo *li; char *temp; + char *dequoted_temp; char **matches; const char *ctemp; size_t len; @@ -405,11 +410,15 @@ fn_complete(EditLine *el, /* We now look backwards for the start of a filename/variable word */ li = el_line(el); - ctemp = li->cursor; - while (ctemp > li->buffer - && !strchr(word_break, ctemp[-1]) - && (!special_prefixes || !strchr(special_prefixes, ctemp[-1]) ) ) - ctemp--; + if (find_word_start_func) + ctemp = find_word_start_func(li->buffer, li->cursor); + else { + ctemp = li->cursor; + while (ctemp > li->buffer + && !strchr(word_break, ctemp[-1]) + && (!special_prefixes || !strchr(special_prefixes, ctemp[-1]) ) ) + ctemp--; + } len = li->cursor - ctemp; #if defined(__SSP__) || defined(__SSP_ALL__) @@ -422,6 +431,13 @@ fn_complete(EditLine *el, (void)strncpy(temp, ctemp, len); temp[len] = '\0'; + if (dequoting_func) { + dequoted_temp = dequoting_func(temp); + if (dequoted_temp == NULL) + return retval; + } else + dequoted_temp = NULL; + /* these can be used by function called in completion_matches() */ /* or (*attempted_completion_function)() */ if (point != 0) @@ -431,13 +447,13 @@ fn_complete(EditLine *el, if (attempted_completion_function) { int cur_off = (int)(li->cursor - li->buffer); - matches = (*attempted_completion_function) (temp, + matches = (*attempted_completion_function) (dequoted_temp ? dequoted_temp : temp, (int)(cur_off - len), cur_off); } else matches = 0; if (!attempted_completion_function || (over != NULL && !*over && !matches)) - matches = completion_matches(temp, complet_func); + matches = completion_matches(dequoted_temp ? dequoted_temp : temp, complet_func); if (over != NULL) *over = 0; @@ -452,8 +468,18 @@ fn_complete(EditLine *el, * possible matches if there is possible completion. */ if (matches[0][0] != '\0') { + char *quoted_match; + if (quoting_func) { + quoted_match = quoting_func(matches[0]); + if (quoted_match == NULL) + goto free_matches; + } else + quoted_match = NULL; + el_deletestr(el, (int) len); - el_insertstr(el, matches[0]); + el_insertstr(el, quoted_match ? quoted_match : matches[0]); + + free(quoted_match); } if (what_to_do == '?') @@ -515,12 +541,14 @@ fn_complete(EditLine *el, retval = CC_NORM; } +free_matches: /* free elements of array and the array itself */ for (i = 0; matches[i]; i++) free(matches[i]); free(matches); matches = NULL; } + free(dequoted_temp); #if defined(__SSP__) || defined(__SSP_ALL__) free(temp); #endif @@ -537,5 +565,103 @@ _el_fn_complete(EditLine *el, int ch __a { return (unsigned char)fn_complete(el, NULL, NULL, break_chars, NULL, NULL, 100, - NULL, NULL, NULL, NULL); + NULL, NULL, NULL, NULL, + NULL, NULL, NULL); +} + + +static const char * +sh_find_word_start(const char *buffer, const char *cursor) +{ + const char *word_start = buffer; + + while (buffer < cursor) { + if (*buffer == '\\') + buffer++; + else if (strchr(break_chars, *buffer)) + word_start = buffer + 1; + + buffer++; + } + + return word_start; +} + + +static char * +sh_quote(const char *str) +{ + const char *src; + int extra_len = 0; + char *quoted_str, *dst; + + if (*str == '-' || *str == '+') + extra_len += 2; + for (src = str; *src != '\0'; src++) + if (strchr(break_chars, *src) || + strchr(extra_quote_chars, *src)) + extra_len++; + + quoted_str = malloc(sizeof(*quoted_str) * + (strlen(str) + extra_len + 1)); + if (quoted_str == NULL) + return NULL; + + dst = quoted_str; + if (*str == '-' || *str == '+') + *dst++ = '.', *dst++ = '/'; + for (src = str; *src != '\0'; src++) { + if (strchr(break_chars, *src) || + strchr(extra_quote_chars, *src)) + *dst++ = '\\'; + *dst++ = *src; + } + *dst = '\0'; + + return quoted_str; +} + + +static char * +sh_dequote(const char *str) +{ + char *dequoted_str, *dst; + + /* save extra space to replace \~ with ./~ */ + dequoted_str = malloc(sizeof(*dequoted_str) * (strlen(str) + 1 + 1)); + if (dequoted_str == NULL) + return NULL; + + dst = dequoted_str; + + /* dequote \~ at start as ./~ */ + if (*str == '\\' && str[1] == '~') { + str++; + *dst++ = '.'; + *dst++ = '/'; + } + + while (*str) { + if (*str == '\\') + str++; + if (*str) + *dst++ = *str++; + } + *dst = '\0'; + + return dequoted_str; +} + + +/* + * completion function using sh quoting rules; for key binding + */ +/* ARGSUSED */ +unsigned char +_el_fn_sh_complete(EditLine *el, int ch __attribute__((__unused__))) +{ + return (unsigned char)fn_complete(el, NULL, NULL, + break_chars, NULL, NULL, 100, + NULL, NULL, NULL, NULL, + sh_find_word_start, sh_dequote, sh_quote); } Modified: projects/ppc64/lib/libedit/filecomplete.h ============================================================================== --- projects/ppc64/lib/libedit/filecomplete.h Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libedit/filecomplete.h Wed Jun 16 02:50:16 2010 (r209227) @@ -36,7 +36,10 @@ int fn_complete(EditLine *, char *(*)(const char *, int), char **(*)(const char *, int, int), const char *, const char *, const char *(*)(const char *), size_t, - int *, int *, int *, int *); + int *, int *, int *, int *, + const char *(*)(const char *, const char *), + char *(*)(const char *), + char *(*)(const char *)); void fn_display_match_list(EditLine *, char **, size_t, size_t); char *fn_tilde_expand(const char *); Modified: projects/ppc64/lib/libmemstat/memstat.c ============================================================================== --- projects/ppc64/lib/libmemstat/memstat.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libmemstat/memstat.c Wed Jun 16 02:50:16 2010 (r209227) @@ -188,6 +188,7 @@ _memstat_mt_reset_stats(struct memory_ty mtp->mt_count = 0; mtp->mt_free = 0; mtp->mt_failures = 0; + mtp->mt_sleeps = 0; mtp->mt_zonefree = 0; mtp->mt_kegfree = 0; @@ -304,6 +305,13 @@ memstat_get_failures(const struct memory return (mtp->mt_failures); } +uint64_t +memstat_get_sleeps(const struct memory_type *mtp) +{ + + return (mtp->mt_sleeps); +} + void * memstat_get_caller_pointer(const struct memory_type *mtp, int index) { Modified: projects/ppc64/lib/libmemstat/memstat.h ============================================================================== --- projects/ppc64/lib/libmemstat/memstat.h Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libmemstat/memstat.h Wed Jun 16 02:50:16 2010 (r209227) @@ -139,6 +139,7 @@ uint64_t memstat_get_bytes(const struct uint64_t memstat_get_count(const struct memory_type *mtp); uint64_t memstat_get_free(const struct memory_type *mtp); uint64_t memstat_get_failures(const struct memory_type *mtp); +uint64_t memstat_get_sleeps(const struct memory_type *mtp); void *memstat_get_caller_pointer(const struct memory_type *mtp, int index); void memstat_set_caller_pointer(struct memory_type *mtp, Modified: projects/ppc64/lib/libmemstat/memstat_internal.h ============================================================================== --- projects/ppc64/lib/libmemstat/memstat_internal.h Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libmemstat/memstat_internal.h Wed Jun 16 02:50:16 2010 (r209227) @@ -65,6 +65,7 @@ struct memory_type { uint64_t mt_count; /* Number of current allocations. */ uint64_t mt_free; /* Number of cached free items. */ uint64_t mt_failures; /* Number of allocation failures. */ + uint64_t mt_sleeps; /* Number of allocation sleeps. */ /* * Caller-owned memory. Modified: projects/ppc64/lib/libmemstat/memstat_uma.c ============================================================================== --- projects/ppc64/lib/libmemstat/memstat_uma.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/lib/libmemstat/memstat_uma.c Wed Jun 16 02:50:16 2010 (r209227) @@ -208,6 +208,7 @@ retry: mtp->mt_numallocs = uthp->uth_allocs; mtp->mt_numfrees = uthp->uth_frees; mtp->mt_failures = uthp->uth_fails; + mtp->mt_sleeps = uthp->uth_sleeps; for (j = 0; j < maxcpus; j++) { upsp = (struct uma_percpu_stat *)p; @@ -402,6 +403,7 @@ memstat_kvm_uma(struct memory_type_list mtp->mt_numallocs = uz.uz_allocs; mtp->mt_numfrees = uz.uz_frees; mtp->mt_failures = uz.uz_fails; + mtp->mt_sleeps = uz.uz_sleeps; if (kz.uk_flags & UMA_ZFLAG_INTERNAL) goto skip_percpu; for (i = 0; i < mp_maxid + 1; i++) { Modified: projects/ppc64/sbin/hastd/ebuf.c ============================================================================== --- projects/ppc64/sbin/hastd/ebuf.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/ebuf.c Wed Jun 16 02:50:16 2010 (r209227) @@ -55,8 +55,8 @@ struct ebuf { size_t eb_size; }; -static int ebuf_head_extent(struct ebuf *eb, size_t size); -static int ebuf_tail_extent(struct ebuf *eb, size_t size); +static int ebuf_head_extend(struct ebuf *eb, size_t size); +static int ebuf_tail_extend(struct ebuf *eb, size_t size); struct ebuf * ebuf_alloc(size_t size) @@ -110,7 +110,7 @@ ebuf_add_head(struct ebuf *eb, const voi * We can't add more entries at the front, so we have to extend * our buffer. */ - if (ebuf_head_extent(eb, size) < 0) + if (ebuf_head_extend(eb, size) < 0) return (-1); } assert(size <= (size_t)(eb->eb_used - eb->eb_start)); @@ -137,13 +137,13 @@ ebuf_add_tail(struct ebuf *eb, const voi * We can't add more entries at the back, so we have to extend * our buffer. */ - if (ebuf_tail_extent(eb, size) < 0) + if (ebuf_tail_extend(eb, size) < 0) return (-1); } assert(size <= (size_t)(eb->eb_end - (eb->eb_used + eb->eb_size))); /* - * If data is NULL the caller just wants to reserve place. + * If data is NULL the caller just wants to reserve space. */ if (data != NULL) bcopy(data, eb->eb_used + eb->eb_size, size); @@ -203,7 +203,7 @@ ebuf_size(struct ebuf *eb) * Function adds size + (PAGE_SIZE / 4) bytes at the front of the buffer.. */ static int -ebuf_head_extent(struct ebuf *eb, size_t size) +ebuf_head_extend(struct ebuf *eb, size_t size) { unsigned char *newstart, *newused; size_t newsize; @@ -231,7 +231,7 @@ ebuf_head_extent(struct ebuf *eb, size_t * Function adds size + ((3 * PAGE_SIZE) / 4) bytes at the back. */ static int -ebuf_tail_extent(struct ebuf *eb, size_t size) +ebuf_tail_extend(struct ebuf *eb, size_t size) { unsigned char *newstart; size_t newsize; Modified: projects/ppc64/sbin/hastd/hast_proto.c ============================================================================== --- projects/ppc64/sbin/hastd/hast_proto.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/hast_proto.c Wed Jun 16 02:50:16 2010 (r209227) @@ -329,9 +329,7 @@ hast_proto_recv_hdr(struct proto_conn *c *nvp = nv; return (0); fail: - if (nv != NULL) - nv_free(nv); - else if (eb != NULL) + if (eb != NULL) ebuf_free(eb); return (-1); } Modified: projects/ppc64/sbin/hastd/hastd.c ============================================================================== --- projects/ppc64/sbin/hastd/hastd.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/hastd.c Wed Jun 16 02:50:16 2010 (r209227) @@ -200,7 +200,7 @@ listen_accept(void) proto_local_address(conn, laddr, sizeof(laddr)); proto_remote_address(conn, raddr, sizeof(raddr)); - pjdlog_info("Connection from %s to %s.", laddr, raddr); + pjdlog_info("Connection from %s to %s.", raddr, laddr); /* Error in setting timeout is not critical, but why should it fail? */ if (proto_timeout(conn, HAST_TIMEOUT) < 0) @@ -286,7 +286,7 @@ listen_accept(void) if (token != NULL && memcmp(token, res->hr_token, sizeof(res->hr_token)) != 0) { pjdlog_error("Token received from %s doesn't match.", raddr); - nv_add_stringf(nverr, "errmsg", "Toke doesn't match."); + nv_add_stringf(nverr, "errmsg", "Token doesn't match."); goto fail; } /* @@ -400,7 +400,11 @@ static void main_loop(void) { fd_set rfds, wfds; - int fd, maxfd, ret; + int cfd, lfd, maxfd, ret; + + cfd = proto_descriptor(cfg->hc_controlconn); + lfd = proto_descriptor(cfg->hc_listenconn); + maxfd = cfd > lfd ? cfd : lfd; for (;;) { if (sigchld_received) { @@ -412,22 +416,13 @@ main_loop(void) hastd_reload(); } - maxfd = 0; + /* Setup descriptors for select(2). */ FD_ZERO(&rfds); + FD_SET(cfd, &rfds); + FD_SET(lfd, &rfds); FD_ZERO(&wfds); - - /* Setup descriptors for select(2). */ -#define SETUP_FD(conn) do { \ - fd = proto_descriptor(conn); \ - if (fd >= 0) { \ - maxfd = fd > maxfd ? fd : maxfd; \ - FD_SET(fd, &rfds); \ - FD_SET(fd, &wfds); \ - } \ -} while (0) - SETUP_FD(cfg->hc_controlconn); - SETUP_FD(cfg->hc_listenconn); -#undef SETUP_FD + FD_SET(cfd, &wfds); + FD_SET(lfd, &wfds); ret = select(maxfd + 1, &rfds, &wfds, NULL, NULL); if (ret == -1) { @@ -437,13 +432,10 @@ main_loop(void) pjdlog_exit(EX_OSERR, "select() failed"); } -#define ISSET_FD(conn) \ - (FD_ISSET((fd = proto_descriptor(conn)), &rfds) || FD_ISSET(fd, &wfds)) - if (ISSET_FD(cfg->hc_controlconn)) + if (FD_ISSET(cfd, &rfds) || FD_ISSET(cfd, &wfds)) control_handle(cfg); - if (ISSET_FD(cfg->hc_listenconn)) + if (FD_ISSET(lfd, &rfds) || FD_ISSET(lfd, &wfds)) listen_accept(); -#undef ISSET_FD } } Modified: projects/ppc64/sbin/hastd/metadata.c ============================================================================== --- projects/ppc64/sbin/hastd/metadata.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/metadata.c Wed Jun 16 02:50:16 2010 (r209227) @@ -96,6 +96,7 @@ metadata_read(struct hast_resource *res, rerrno = errno; pjdlog_errno(LOG_ERR, "Unable to allocate memory to read metadata"); + ebuf_free(eb); goto fail; } buf = ebuf_data(eb, NULL); @@ -154,6 +155,7 @@ metadata_read(struct hast_resource *res, nv_free(nv); goto fail; } + nv_free(nv); return (0); fail: if (opened_here) { @@ -172,6 +174,7 @@ metadata_write(struct hast_resource *res unsigned char *buf, *ptr; size_t size; ssize_t done; + int ret; buf = calloc(1, METADATA_SIZE); if (buf == NULL) { @@ -180,6 +183,8 @@ metadata_write(struct hast_resource *res return (-1); } + ret = -1; + nv = nv_alloc(); nv_add_string(nv, res->hr_name, "resource"); nv_add_uint64(nv, (uint64_t)res->hr_datasize, "datasize"); @@ -199,7 +204,7 @@ metadata_write(struct hast_resource *res nv_add_string(nv, role2str(res->hr_role), "prevrole"); if (nv_error(nv) != 0) { pjdlog_error("Unable to create metadata."); - goto fail; + goto end; } res->hr_previous_role = res->hr_role; eb = nv_hton(nv); @@ -211,12 +216,11 @@ metadata_write(struct hast_resource *res done = pwrite(res->hr_localfd, buf, METADATA_SIZE, 0); if (done < 0 || done != METADATA_SIZE) { pjdlog_errno(LOG_ERR, "Unable to write metadata"); - goto fail; + goto end; } - - return (0); -fail: + ret = 0; +end: free(buf); nv_free(nv); - return (-1); + return (ret); } Modified: projects/ppc64/sbin/hastd/nv.c ============================================================================== --- projects/ppc64/sbin/hastd/nv.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/nv.c Wed Jun 16 02:50:16 2010 (r209227) @@ -707,8 +707,10 @@ nv_add(struct nv *nv, const unsigned cha assert(errno != 0); if (nv->nv_error == 0) nv->nv_error = errno; + free(nvh); return; } + free(nvh); /* Add the actual data. */ if (ebuf_add_tail(nv->nv_ebuf, value, vsize) < 0) { assert(errno != 0); Modified: projects/ppc64/sbin/hastd/primary.c ============================================================================== --- projects/ppc64/sbin/hastd/primary.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/primary.c Wed Jun 16 02:50:16 2010 (r209227) @@ -195,7 +195,10 @@ static pthread_mutex_t metadata_lock; mtx_unlock(&hio_##name##_list_lock); \ } while (0) -#define SYNCREQ(hio) do { (hio)->hio_ggio.gctl_unit = -1; } while (0) +#define SYNCREQ(hio) do { \ + (hio)->hio_ggio.gctl_unit = -1; \ + (hio)->hio_ggio.gctl_seq = 1; \ +} while (0) #define ISSYNCREQ(hio) ((hio)->hio_ggio.gctl_unit == -1) #define SYNCREQDONE(hio) do { (hio)->hio_ggio.gctl_unit = -2; } while (0) #define ISSYNCREQDONE(hio) ((hio)->hio_ggio.gctl_unit == -2) @@ -447,6 +450,7 @@ init_local(struct hast_resource *res) primary_exit(EX_NOINPUT, "Unable to read activemap"); } activemap_copyin(res->hr_amp, buf, mapsize); + free(buf); if (res->hr_resuid != 0) return; /* Modified: projects/ppc64/sbin/hastd/secondary.c ============================================================================== --- projects/ppc64/sbin/hastd/secondary.c Wed Jun 16 00:41:21 2010 (r209226) +++ projects/ppc64/sbin/hastd/secondary.c Wed Jun 16 02:50:16 2010 (r209227) @@ -295,6 +295,7 @@ init_remote(struct hast_resource *res, s nv_free(nvout); exit(EX_TEMPFAIL); } + nv_free(nvout); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 17:21:49 2010 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 7CB0C1065675; Sat, 19 Jun 2010 17:21:49 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 672D88FC0C; Sat, 19 Jun 2010 17:21:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JHLnpu045239; Sat, 19 Jun 2010 17:21:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JHLnPe045217; Sat, 19 Jun 2010 17:21:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191721.o5JHLnPe045217@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 17:21: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: r209345 - in projects/ppc64: . bin/sh cddl/contrib/opensolaris/lib/libdtrace/common etc etc/namedb etc/periodic/daily gnu/lib/csu lib/csu/i386-elf lib/libc lib/libc/mips lib/libc/mips/g... 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, 19 Jun 2010 17:21:49 -0000 Author: nwhitehorn Date: Sat Jun 19 17:21:48 2010 New Revision: 209345 URL: http://svn.freebsd.org/changeset/base/209345 Log: IFC @ 209344. This reduces diffs on this branch to actually only ppc64. Added: projects/ppc64/lib/libc/mips/gen/_ctx_start.S - copied unchanged from r209344, head/lib/libc/mips/gen/_ctx_start.S projects/ppc64/share/man/man7/c99.7 - copied unchanged from r209344, head/share/man/man7/c99.7 projects/ppc64/sys/mips/include/tlb.h - copied unchanged from r209344, head/sys/mips/include/tlb.h projects/ppc64/sys/mips/mips/tlb.c - copied unchanged from r209344, head/sys/mips/mips/tlb.c Modified: projects/ppc64/Makefile.inc1 projects/ppc64/bin/sh/parser.c projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l projects/ppc64/etc/Makefile projects/ppc64/etc/login.conf projects/ppc64/etc/namedb/named.root projects/ppc64/etc/periodic/daily/Makefile projects/ppc64/gnu/lib/csu/Makefile projects/ppc64/lib/csu/i386-elf/crt1_s.S projects/ppc64/lib/libc/Makefile projects/ppc64/lib/libc/mips/Makefile.inc projects/ppc64/lib/libc/mips/SYS.h projects/ppc64/lib/libc/mips/Symbol.map projects/ppc64/lib/libc/mips/gen/Makefile.inc projects/ppc64/lib/libc/mips/gen/_setjmp.S projects/ppc64/lib/libc/mips/gen/makecontext.c projects/ppc64/lib/libc/mips/gen/setjmp.S projects/ppc64/lib/libc/mips/gen/sigsetjmp.S projects/ppc64/lib/libc/mips/string/bcmp.S projects/ppc64/lib/libc/mips/string/bcopy.S projects/ppc64/lib/libc/mips/string/bzero.S projects/ppc64/lib/libc/mips/string/ffs.S projects/ppc64/lib/libc/mips/string/index.S projects/ppc64/lib/libc/mips/string/rindex.S projects/ppc64/lib/libc/mips/string/strcmp.S projects/ppc64/lib/libc/mips/string/strlen.S projects/ppc64/lib/libc/mips/sys/Makefile.inc projects/ppc64/lib/libc/mips/sys/Ovfork.S projects/ppc64/lib/libc/mips/sys/brk.S projects/ppc64/lib/libc/mips/sys/cerror.S projects/ppc64/lib/libc/mips/sys/exect.S projects/ppc64/lib/libc/mips/sys/fork.S projects/ppc64/lib/libc/mips/sys/pipe.S projects/ppc64/lib/libc/mips/sys/ptrace.S projects/ppc64/lib/libc/mips/sys/sbrk.S projects/ppc64/lib/libkvm/kvm_proc.c projects/ppc64/libexec/rtld-elf/mips/rtld_start.S projects/ppc64/release/scripts/ports-install.sh projects/ppc64/sbin/ping6/ping6.c projects/ppc64/share/man/man7/Makefile projects/ppc64/sys/amd64/amd64/apic_vector.S projects/ppc64/sys/amd64/amd64/mp_machdep.c projects/ppc64/sys/amd64/conf/NOTES projects/ppc64/sys/amd64/ia32/ia32_signal.c projects/ppc64/sys/amd64/include/smp.h projects/ppc64/sys/arm/arm/nexus.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/ppc64/sys/conf/NOTES projects/ppc64/sys/conf/files.mips projects/ppc64/sys/conf/options.amd64 projects/ppc64/sys/dev/acpica/acpi_cpu.c projects/ppc64/sys/dev/agp/agp_nvidia.c projects/ppc64/sys/dev/ata/chipsets/ata-serverworks.c projects/ppc64/sys/dev/cxgb/ulp/tom/cxgb_vm.c projects/ppc64/sys/dev/e1000/if_em.c projects/ppc64/sys/dev/e1000/if_igb.c projects/ppc64/sys/dev/e1000/if_igb.h projects/ppc64/sys/dev/e1000/if_lem.c projects/ppc64/sys/dev/hptiop/hptiop.c projects/ppc64/sys/dev/hptmv/entry.c projects/ppc64/sys/dev/twa/tw_cl_misc.c projects/ppc64/sys/fs/nwfs/nwfs_io.c projects/ppc64/sys/fs/smbfs/smbfs_io.c projects/ppc64/sys/i386/conf/NOTES projects/ppc64/sys/i386/i386/mp_machdep.c projects/ppc64/sys/kern/kern_conf.c projects/ppc64/sys/kern/subr_lock.c projects/ppc64/sys/kern/subr_trap.c projects/ppc64/sys/kern/subr_unit.c projects/ppc64/sys/kern/vfs_subr.c projects/ppc64/sys/mips/atheros/ar71xx_wdog.c projects/ppc64/sys/mips/include/cpu.h projects/ppc64/sys/mips/include/pmap.h projects/ppc64/sys/mips/include/pte.h projects/ppc64/sys/mips/mips/cpu.c projects/ppc64/sys/mips/mips/machdep.c projects/ppc64/sys/mips/mips/mp_machdep.c projects/ppc64/sys/mips/mips/pmap.c projects/ppc64/sys/mips/mips/trap.c projects/ppc64/sys/mips/rmi/board.c projects/ppc64/sys/mips/rmi/board.h projects/ppc64/sys/mips/rmi/dev/xlr/rge.c projects/ppc64/sys/netinet/sctp.h projects/ppc64/sys/netinet/sctp_usrreq.c projects/ppc64/sys/netinet/sctputil.c projects/ppc64/sys/powerpc/mpc85xx/atpic.c projects/ppc64/sys/powerpc/ofw/ofw_pcibus.c projects/ppc64/sys/powerpc/powerpc/openpic.c projects/ppc64/sys/sparc64/ebus/ebus.c projects/ppc64/sys/sun4v/sun4v/hv_pci.c projects/ppc64/sys/sys/conf.h projects/ppc64/sys/sys/pcpu.h projects/ppc64/sys/x86/cpufreq/est.c projects/ppc64/tools/build/mk/OptionalObsoleteFiles.inc projects/ppc64/tools/tools/tinybsd/conf/default/TINYBSD projects/ppc64/tools/tools/tinybsd/conf/vpn/TINYBSD projects/ppc64/usr.bin/c99/c99.1 projects/ppc64/usr.bin/systat/vmstat.c projects/ppc64/usr.bin/ypwhich/ypwhich.c projects/ppc64/usr.sbin/cpucontrol/amd.c projects/ppc64/usr.sbin/cpucontrol/intel.c projects/ppc64/usr.sbin/mptutil/mptutil.8 projects/ppc64/usr.sbin/powerd/powerd.c projects/ppc64/usr.sbin/sysinstall/devices.c projects/ppc64/usr.sbin/sysinstall/disks.c projects/ppc64/usr.sbin/sysinstall/label.c projects/ppc64/usr.sbin/timed/timed/measure.c Directory Properties: projects/ppc64/ (props changed) projects/ppc64/cddl/contrib/opensolaris/ (props changed) projects/ppc64/contrib/ee/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/file/ (props changed) projects/ppc64/contrib/gdb/ (props changed) projects/ppc64/contrib/gnu-sort/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/less/ (props changed) projects/ppc64/contrib/libpcap/ (props changed) projects/ppc64/contrib/ncurses/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/openbsm/ (props changed) projects/ppc64/contrib/openpam/ (props changed) projects/ppc64/contrib/pf/ (props changed) projects/ppc64/contrib/tcpdump/ (props changed) projects/ppc64/contrib/tcsh/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/contrib/wpa/ (props changed) projects/ppc64/lib/libutil/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sbin/ (props changed) projects/ppc64/sbin/ipfw/ (props changed) projects/ppc64/share/mk/bsd.arch.inc.mk (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/amd64/include/xen/ (props changed) projects/ppc64/sys/arm/conf/SHEEVAPLUG (props changed) projects/ppc64/sys/cddl/contrib/opensolaris/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) projects/ppc64/usr.bin/csup/ (props changed) projects/ppc64/usr.bin/procstat/ (props changed) Modified: projects/ppc64/Makefile.inc1 ============================================================================== --- projects/ppc64/Makefile.inc1 Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/Makefile.inc1 Sat Jun 19 17:21:48 2010 (r209345) @@ -1472,8 +1472,8 @@ _xi-links: DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/ .if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE) -FDT_DTS_FILE!= grep "^makeoptions[[:space:]]\+FDT_DTS_FILE" \ - ${KERNCONFDIR}/${KERNCONF} 2> /dev/null | cut -d= -f2 +FDT_DTS_FILE!= awk '/^makeoptions[[:space:]]+FDT_DTS_FILE/ {FS="=|[ \t]+"; print $$3}' \ + ${KERNCONFDIR}/${KERNCONF} .endif .endif Modified: projects/ppc64/bin/sh/parser.c ============================================================================== --- projects/ppc64/bin/sh/parser.c Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/bin/sh/parser.c Sat Jun 19 17:21:48 2010 (r209345) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "shell.h" #include "parser.h" Modified: projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Sat Jun 19 17:21:48 2010 (r209345) @@ -45,7 +45,7 @@ #undef input #undef unput #else -/* +/* * Define YY_INPUT for flex since input() can't be re-defined. */ #define YY_INPUT(buf,result,max_size) \ @@ -60,6 +60,15 @@ buf[n] = *yypcb->pcb_strptr++; \ result = n; \ } +/* + * Do not EOF let tokens to be put back. This does not work with flex. + * On the other hand, leaving current buffer in same state it was when + * last EOF was received guarantees that input() will keep returning EOF + * for all subsequent invocations, which is the effect desired. + */ +#undef unput +#define unput(c) \ + if (c != EOF) yyunput( c, yytext_ptr ) #endif static int id_or_type(const char *); @@ -811,8 +820,7 @@ id_or_type(const char *s) longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); } - if (c0 != EOF) - unput(c0); + unput(c0); return (ttok); } Modified: projects/ppc64/etc/Makefile ============================================================================== --- projects/ppc64/etc/Makefile Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/etc/Makefile Sat Jun 19 17:21:48 2010 (r209345) @@ -253,11 +253,13 @@ distribution: ${DESTDIR}/var/crash cd ${.CURDIR}/..; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ ${FREEBSD} ${DESTDIR}/ +.if ${MK_BOOT} != "no" .if exists(${.CURDIR}/../sys/${MACHINE}/conf/GENERIC.hints) ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \ ${.CURDIR}/../sys/${MACHINE}/conf/GENERIC.hints \ ${DESTDIR}/boot/device.hints .endif +.endif distrib-dirs: mtree -eU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.root.dist -p ${DESTDIR}/ Modified: projects/ppc64/etc/login.conf ============================================================================== --- projects/ppc64/etc/login.conf Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/etc/login.conf Sat Jun 19 17:21:48 2010 (r209345) @@ -228,7 +228,7 @@ russian|Russian Users Accounts:\ # # ## -## The dialer class should be used for a dialup PPP/SLIP accounts +## The dialer class should be used for a dialup PPP account ## Welcome messages/news suppressed ## #dialer:\ @@ -247,7 +247,7 @@ russian|Russian Users Accounts:\ # # ## -## Site full-time 24/7 PPP/SLIP connections +## Site full-time 24/7 PPP connection ## - no time accounting, restricted to access via dialin lines ## #site:\ @@ -306,11 +306,6 @@ russian|Russian Users Accounts:\ # :tc=subscriber: # # -#subslip|SLIP Subscriber Accounts:\ -# :tc=dialer:\ -# :tc=subscriber: -# -# #subshell|Shell Subscriber Accounts:\ # :tc=subscriber: # Modified: projects/ppc64/etc/namedb/named.root ============================================================================== --- projects/ppc64/etc/namedb/named.root Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/etc/namedb/named.root Sat Jun 19 17:21:48 2010 (r209345) @@ -13,8 +13,8 @@ ; on server FTP.INTERNIC.NET ; -OR- RS.INTERNIC.NET ; -; last update: Dec 12, 2008 -; related version of root zone: 2008121200 +; last update: Jun 17, 2010 +; related version of root zone: 2010061700 ; ; formerly NS.INTERNIC.NET ; @@ -63,6 +63,7 @@ H.ROOT-SERVERS.NET. 3600000 AA ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 +I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FE::53 ; ; OPERATED BY VERISIGN, INC. ; Modified: projects/ppc64/etc/periodic/daily/Makefile ============================================================================== --- projects/ppc64/etc/periodic/daily/Makefile Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/etc/periodic/daily/Makefile Sat Jun 19 17:21:48 2010 (r209345) @@ -8,7 +8,6 @@ FILES= 100.clean-disks \ 200.backup-passwd \ 330.news \ 400.status-disks \ - 404.status-zfs \ 405.status-ata-raid \ 406.status-gmirror \ 407.status-graid3 \ @@ -53,4 +52,9 @@ FILES+= 150.clean-hoststat \ 500.queuerun .endif +.if ${MK_ZFS} != "no" +FILES+= 404.status-zfs \ + 800.scrub-zfs +.endif + .include Modified: projects/ppc64/gnu/lib/csu/Makefile ============================================================================== --- projects/ppc64/gnu/lib/csu/Makefile Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/gnu/lib/csu/Makefile Sat Jun 19 17:21:48 2010 (r209345) @@ -17,7 +17,8 @@ CSTD?= gnu89 CFLAGS+= -DIN_GCC -DHAVE_LD_EH_FRAME_HDR -DDT_CONFIG -D__GLIBC__=3 CFLAGS+= -finhibit-size-directive -fno-inline-functions \ -fno-exceptions -fno-zero-initialized-in-bss \ - -fno-zero-initialized-in-bss -fno-toplevel-reorder + -fno-zero-initialized-in-bss -fno-toplevel-reorder \ + -fno-asynchronous-unwind-tables -fno-omit-frame-pointer CFLAGS+= -I${GCCLIB}/include -I${GCCDIR}/config -I${GCCDIR} -I. \ -I${CCDIR}/cc_tools CRTS_CFLAGS= -DCRTSTUFFS_O -DSHARED ${PICFLAG} Modified: projects/ppc64/lib/csu/i386-elf/crt1_s.S ============================================================================== --- projects/ppc64/lib/csu/i386-elf/crt1_s.S Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/csu/i386-elf/crt1_s.S Sat Jun 19 17:21:48 2010 (r209345) @@ -30,15 +30,22 @@ .align 4 .globl _start .type _start, @function -_start: xorl %ebp,%ebp +_start: + .cfi_startproc + xorl %ebp,%ebp pushl %ebp + .cfi_def_cfa_offset 4 movl %esp,%ebp + .cfi_offset %ebp,-8 + .cfi_def_cfa_register %ebp andl $0xfffffff0,%esp # align stack leal 8(%ebp),%eax pushl %eax # argv pushl 4(%ebp) # argc pushl %edx # rtld cleanup call _start1 + int3 + .cfi_endproc .size _start, . - _start .ident "$FreeBSD$" Modified: projects/ppc64/lib/libc/Makefile ============================================================================== --- projects/ppc64/lib/libc/Makefile Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/Makefile Sat Jun 19 17:21:48 2010 (r209345) @@ -52,7 +52,12 @@ NOASM= .if ${MACHINE_ARCH} != "amd64" && \ ${MACHINE_ARCH} != "ia64" && \ ${MACHINE_ARCH} != "powerpc64" && \ - ${MACHINE_ARCH} != "sparc64" + ${MACHINE_ARCH} != "sparc64" && \ + ${MACHINE_ARCH} != "mips" +.include "${.CURDIR}/quad/Makefile.inc" +.endif +.if ${MACHINE_ARCH} == "mips" && \ + (!defined(TARGET_ABI) || ${TARGET_ABI} == "o32") .include "${.CURDIR}/quad/Makefile.inc" .endif .include "${.CURDIR}/regex/Makefile.inc" Modified: projects/ppc64/lib/libc/mips/Makefile.inc ============================================================================== --- projects/ppc64/lib/libc/mips/Makefile.inc Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/Makefile.inc Sat Jun 19 17:21:48 2010 (r209345) @@ -1,8 +1,6 @@ # $NetBSD: Makefile.inc,v 1.7 2005/09/17 11:49:39 tsutsui Exp $ # $FreeBSD$ -SOFTFLOAT_BITS=32 - CFLAGS+=-DSOFTFLOAT MDSRCS+= machdep_ldisd.c Modified: projects/ppc64/lib/libc/mips/SYS.h ============================================================================== --- projects/ppc64/lib/libc/mips/SYS.h Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/SYS.h Sat Jun 19 17:21:48 2010 (r209345) @@ -1,4 +1,4 @@ -/* $NetBSD: SYS.h,v 1.18 2003/10/29 12:28:33 pooka Exp $ */ +/* $NetBSD: SYS.h,v 1.19 2009/12/14 01:07:41 matt Exp $ */ /* $FreeBSD$ */ /*- @@ -79,14 +79,22 @@ */ #ifdef __ABICALLS__ .abicalls -# define PIC_PROLOGUE(x,sr) .set noreorder; .cpload sr; .set reorder -# define PIC_CALL(l,sr) la sr, _C_LABEL(l); jr sr +# if defined(__mips_o32) || defined(__mips_o64) +# define PIC_PROLOGUE(x) SETUP_GP +# define PIC_TAILCALL(l) PTR_LA t9, _C_LABEL(l); jr t9 +# define PIC_RETURN() j ra +# else +# define PIC_PROLOGUE(x) SETUP_GP64(t3, x) +# define PIC_TAILCALL(l) PTR_LA t9, _C_LABEL(l); RESTORE_GP64; jr t9 +# define PIC_RETURN() RESTORE_GP64; j ra +# endif #else -# define PIC_PROLOGUE(x,sr) -# define PIC_CALL(l,sr) j _C_LABEL(l) -#endif +# define PIC_PROLOGUE(x) +# define PIC_TAILCALL(l) j _C_LABEL(l) +# define PIC_RETURN() +#endif /* __ABICALLS__ */ -# define SYSTRAP(x) li v0, SYS_ ## x; syscall; +# define SYSTRAP(x) li v0,SYS_ ## x; syscall; /* * Do a syscall that cannot fail (sync, get{p,u,g,eu,eg)id) @@ -106,7 +114,7 @@ */ #define PSEUDO_NOERROR(x) \ LEAF(__sys_ ## x); \ - .weak _C_LABEL(x); \ + .weak _C_LABEL(x); \ _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ .weak _C_LABEL(__CONCAT(_,x)); \ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ @@ -116,14 +124,14 @@ LEAF(__sys_ ## x); \ #define PSEUDO(x) \ LEAF(__sys_ ## x); \ - .weak _C_LABEL(x); \ + .weak _C_LABEL(x); \ _C_LABEL(x) = _C_LABEL(__CONCAT(__sys_,x)); \ .weak _C_LABEL(__CONCAT(_,x)); \ _C_LABEL(__CONCAT(_,x)) = _C_LABEL(__CONCAT(__sys_,x)); \ - PIC_PROLOGUE(x,t9); \ + PIC_PROLOGUE(__sys_ ## x); \ SYSTRAP(x); \ bne a3,zero,err; \ - j ra; \ + PIC_RETURN(); \ err: \ - PIC_CALL(__cerror,t9); \ - END(__sys_ ## x) + PIC_TAILCALL(__cerror); \ +END(__sys_ ## x) Modified: projects/ppc64/lib/libc/mips/Symbol.map ============================================================================== --- projects/ppc64/lib/libc/mips/Symbol.map Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/Symbol.map Sat Jun 19 17:21:48 2010 (r209345) @@ -24,13 +24,9 @@ FBSD_1.0 { sigsetjmp; siglongjmp; htonl; - __htonl; htons; - __htons; ntohl; - __ntohl; ntohs; - __ntohs; vfork; brk; cerror; /* XXX - Should this be .cerror (see sys/cerror.S)? */ Modified: projects/ppc64/lib/libc/mips/gen/Makefile.inc ============================================================================== --- projects/ppc64/lib/libc/mips/gen/Makefile.inc Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/gen/Makefile.inc Sat Jun 19 17:21:48 2010 (r209345) @@ -6,4 +6,4 @@ SRCS+= infinity.c fabs.c ldexp.c modf.c # SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ # fpsetround.c fpsetsticky.c -SRCS+= _set_tp.c _setjmp.S makecontext.c setjmp.S signalcontext.c sigsetjmp.S +SRCS+= _ctx_start.S _set_tp.c _setjmp.S makecontext.c setjmp.S signalcontext.c sigsetjmp.S Copied: projects/ppc64/lib/libc/mips/gen/_ctx_start.S (from r209344, head/lib/libc/mips/gen/_ctx_start.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/lib/libc/mips/gen/_ctx_start.S Sat Jun 19 17:21:48 2010 (r209345, copy of r209344, head/lib/libc/mips/gen/_ctx_start.S) @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2010 Juli Mallett. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * XXX gp? + */ +ENTRY(_ctx_start) + jalr t9 + + move a0, s0 + PTR_LA t9, _ctx_done + jalr t9 + + break 0 +END(_ctx_start) Modified: projects/ppc64/lib/libc/mips/gen/_setjmp.S ============================================================================== --- projects/ppc64/lib/libc/mips/gen/_setjmp.S Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/gen/_setjmp.S Sat Jun 19 17:21:48 2010 (r209345) @@ -1,4 +1,4 @@ -/* $NetBSD: _setjmp.S,v 1.20 2005/10/07 17:16:40 tsutsui Exp $ */ +/* $NetBSD: _setjmp.S,v 1.20.34.5 2010/02/03 23:46:47 matt Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -36,14 +36,15 @@ __FBSDID("$FreeBSD$"); #include -#if defined(LIBC_SCCS) && !defined(lint) - ASMSTR("from: @(#)_setjmp.s 8.1 (Berkeley) 6/4/93") - ASMSTR("$NetBSD: _setjmp.S,v 1.20 2005/10/07 17:16:40 tsutsui Exp $") -#endif /* LIBC_SCCS and not lint */ +#include "SYS.h" -#ifdef __ABICALLS__ - .abicalls +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 + RCSID("from: @(#)_setjmp.s 8.1 (Berkeley) 6/4/93") +#else + RCSID("$NetBSD: _setjmp.S,v 1.20.34.5 2010/02/03 23:46:47 matt Exp $") #endif +#endif /* LIBC_SCCS and not lint */ /* * C library -- _setjmp, _longjmp @@ -56,62 +57,70 @@ __FBSDID("$FreeBSD$"); * The previous signal state is NOT restored. */ + .set noreorder LEAF(_setjmp) -#ifdef __ABICALLS__ - .set noreorder - .cpload t9 - subu sp, sp, CALLFRAME_SIZ # allocate stack frame - .cprestore 16 + REG_PROLOGUE + REG_LI v0, _JB_MAGIC__SETJMP + REG_S v0, (_JB_MAGIC * SZREG)(a0) + REG_S ra, (_JB_REG_RA * SZREG)(a0) + REG_S s0, (_JB_REG_S0 * SZREG)(a0) + REG_S s1, (_JB_REG_S1 * SZREG)(a0) + REG_S s2, (_JB_REG_S2 * SZREG)(a0) + REG_S s3, (_JB_REG_S3 * SZREG)(a0) + REG_S s4, (_JB_REG_S4 * SZREG)(a0) + REG_S s5, (_JB_REG_S5 * SZREG)(a0) + REG_S s6, (_JB_REG_S6 * SZREG)(a0) + REG_S s7, (_JB_REG_S7 * SZREG)(a0) + REG_S s8, (_JB_REG_S8 * SZREG)(a0) +#if defined(__mips_n32) || defined(__mips_n64) + REG_S gp, (_JB_REG_GP * SZREG)(a0) # newabi gp is callee-saved #endif - li v0, _JB_MAGIC__SETJMP - sw v0, (_JB_MAGIC * SZREG)(a0) - sw ra, (_JB_REG_RA * SZREG)(a0) - sw s0, (_JB_REG_S0 * SZREG)(a0) - sw s1, (_JB_REG_S1 * SZREG)(a0) - sw s2, (_JB_REG_S2 * SZREG)(a0) - sw s3, (_JB_REG_S3 * SZREG)(a0) - sw s4, (_JB_REG_S4 * SZREG)(a0) - sw s5, (_JB_REG_S5 * SZREG)(a0) - sw s6, (_JB_REG_S6 * SZREG)(a0) - sw s7, (_JB_REG_S7 * SZREG)(a0) - sw s8, (_JB_REG_S8 * SZREG)(a0) -#ifdef __ABICALLS__ - addu sp, sp, CALLFRAME_SIZ # un-allocate the stack frame -#endif - sw sp, (_JB_REG_SP * SZREG)(a0) + REG_S sp, (_JB_REG_SP * SZREG)(a0) + REG_EPILOGUE + j ra move v0, zero END(_setjmp) LEAF(_longjmp) -#ifdef __ABICALLS__ - .set noreorder - .cpload t9 - subu sp, sp, CALLFRAME_SIZ # allocate stack frame - .cprestore 16 -#endif - lw v0, (_JB_MAGIC * SZREG)(a0) - lw ra, (_JB_REG_RA * SZREG)(a0) - li t0, _JB_MAGIC__SETJMP - bne v0, t0, botch # jump if error - lw s0, (_JB_REG_S0 * SZREG)(a0) - lw s1, (_JB_REG_S1 * SZREG)(a0) - lw s2, (_JB_REG_S2 * SZREG)(a0) - lw s3, (_JB_REG_S3 * SZREG)(a0) - lw s4, (_JB_REG_S4 * SZREG)(a0) - lw s5, (_JB_REG_S5 * SZREG)(a0) - lw s6, (_JB_REG_S6 * SZREG)(a0) - lw s7, (_JB_REG_S7 * SZREG)(a0) - lw sp, (_JB_REG_SP * SZREG)(a0) - lw s8, (_JB_REG_S8 * SZREG)(a0) + PIC_PROLOGUE(_longjmp) + PTR_SUBU sp, sp, CALLFRAME_SIZ + SAVE_GP(CALLFRAME_GP) + + REG_PROLOGUE + REG_L v0, (_JB_MAGIC * SZREG)(a0) # get magic number + REG_L ra, (_JB_REG_RA * SZREG)(a0) + REG_LI t0, _JB_MAGIC__SETJMP + bne v0, t0, botch # jump if error + PTR_ADDU sp, sp, CALLFRAME_SIZ # does not matter, sanity + REG_L s0, (_JB_REG_S0 * SZREG)(a0) + REG_L s1, (_JB_REG_S1 * SZREG)(a0) + REG_L s2, (_JB_REG_S2 * SZREG)(a0) + REG_L s3, (_JB_REG_S3 * SZREG)(a0) + REG_L s4, (_JB_REG_S4 * SZREG)(a0) + REG_L s5, (_JB_REG_S5 * SZREG)(a0) + REG_L s6, (_JB_REG_S6 * SZREG)(a0) + REG_L s7, (_JB_REG_S7 * SZREG)(a0) +#if defined(__mips_n32) || defined(__mips_n64) + REG_L gp, (_JB_REG_GP * SZREG)(a0) +#endif + REG_L sp, (_JB_REG_SP * SZREG)(a0) + REG_L s8, (_JB_REG_S8 * SZREG)(a0) + REG_EPILOGUE + move v0, a1 # get return value in 1st arg j ra - move v0, a1 + nop botch: - jal _C_LABEL(longjmperror) - nop - jal _C_LABEL(abort) + /* + * We know we aren't returning so we don't care about restoring + * our caller's GP. + */ + PTR_LA t9, _C_LABEL(longjmperror) + jalr t9 nop + + PIC_TAILCALL(abort) END(_longjmp) Modified: projects/ppc64/lib/libc/mips/gen/makecontext.c ============================================================================== --- projects/ppc64/lib/libc/mips/gen/makecontext.c Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/gen/makecontext.c Sat Jun 19 17:21:48 2010 (r209345) @@ -1,4 +1,4 @@ -/* $NetBSD: makecontext.c,v 1.3 2003/01/19 08:53:36 matt Exp $ */ +/* $NetBSD: makecontext.c,v 1.5 2009/12/14 01:07:42 matt Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -15,13 +15,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -39,48 +32,92 @@ #include __FBSDID("$FreeBSD$"); #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: makecontext.c,v 1.3 2003/01/19 08:53:36 matt Exp $"); +__RCSID("$NetBSD: makecontext.c,v 1.5 2009/12/14 01:07:42 matt Exp $"); #endif -#include -#include +#include +#include + #include +#include +#include +#include +#include + +__weak_reference(__makecontext, makecontext); + +void _ctx_done(ucontext_t *); +void _ctx_start(void); void -makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) +__makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...) { - /* XXXMIPS: Implement me */ -#if 0 - __greg_t *gr = ucp->uc_mcontext.__gregs; - uintptr_t *sp; + mcontext_t *mc; + register_t *sp; int i; va_list ap; - void __resumecontext(void); + /* + * XXX/juli + * We need an mc_len or mc_flags like other architectures + * so that we can mark a context as invalid. Store it in + * mc->mc_regs[ZERO] perhaps? + */ + if (argc < 0 || argc > 6 || ucp == NULL || + ucp->uc_stack.ss_sp == NULL || + ucp->uc_stack.ss_size < MINSIGSTKSZ) + return; + mc = &ucp->uc_mcontext; - /* LINTED uintptr_t is safe */ - sp = (uintptr_t *) + sp = (register_t *) ((uintptr_t)ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); - /* LINTED uintptr_t is safe */ +#if defined(__mips_o32) || defined(__mips_o64) sp -= (argc >= 4 ? argc : 4); /* Make room for >=4 arguments. */ - sp = (uintptr_t *) - ((uintptr_t)sp & ~0x7); /* Align on double-word boundary. */ + sp = (register_t *) + ((uintptr_t)sp & ~0x7); /* Align on double-word boundary. */ +#elif defined(__mips_n32) || defined(__mips_n64) + sp -= (argc > 8 ? argc - 8 : 0); /* Make room for > 8 arguments. */ + sp = (register_t *) + ((uintptr_t)sp & ~0xf); /* Align on quad-word boundary. */ +#endif - gr[_REG_SP] = (__greg_t)sp; - gr[_REG_RA] = (__greg_t)__resumecontext; - gr[_REG_T9] = (__greg_t)func; /* required for .abicalls */ - gr[_REG_EPC] = (__greg_t)func; + mc->mc_regs[SP] = (intptr_t)sp; + mc->mc_regs[S0] = (intptr_t)ucp; + mc->mc_regs[T9] = (intptr_t)func; + mc->mc_pc = (intptr_t)_ctx_start; /* Construct argument list. */ va_start(ap, argc); +#if defined(__mips_o32) || defined(__mips_o64) /* Up to the first four arguments are passed in $a0-3. */ for (i = 0; i < argc && i < 4; i++) - /* LINTED uintptr_t is safe */ - gr[_REG_A0 + i] = va_arg(ap, uintptr_t); + /* LINTED register_t is safe */ + mc->mc_regs[A0 + i] = va_arg(ap, register_t); + /* Pass remaining arguments on the stack above the $a0-3 gap. */ + sp += i; +#endif +#if defined(__mips_n32) || defined(__mips_n64) + /* Up to the first 8 arguments are passed in $a0-7. */ + for (i = 0; i < argc && i < 8; i++) + /* LINTED register_t is safe */ + mc->mc_regs[A0 + i] = va_arg(ap, register_t); /* Pass remaining arguments on the stack above the $a0-3 gap. */ - for (sp += 4; i < argc; i++) +#endif + /* Pass remaining arguments on the stack above the $a0-3 gap. */ + for (; i < argc; i++) /* LINTED uintptr_t is safe */ - *sp++ = va_arg(ap, uintptr_t); + *sp++ = va_arg(ap, register_t); va_end(ap); -#endif +} + +void +_ctx_done(ucontext_t *ucp) +{ + + if (ucp->uc_link == NULL) + exit(0); + else { + setcontext((const ucontext_t *)ucp->uc_link); + abort(); + } } Modified: projects/ppc64/lib/libc/mips/gen/setjmp.S ============================================================================== --- projects/ppc64/lib/libc/mips/gen/setjmp.S Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/gen/setjmp.S Sat Jun 19 17:21:48 2010 (r209345) @@ -41,6 +41,8 @@ __FBSDID("$FreeBSD$"); ASMSTR("$NetBSD: setjmp.S,v 1.17 2005/09/17 11:49:39 tsutsui Exp $") #endif /* LIBC_SCCS and not lint */ +#include "SYS.h" + #ifdef __ABICALLS__ .abicalls #endif @@ -61,100 +63,102 @@ __FBSDID("$FreeBSD$"); NESTED(setjmp, SETJMP_FRAME_SIZE, ra) .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) - .set noreorder -#ifdef __ABICALLS__ - .cpload t9 -#endif - subu sp, sp, SETJMP_FRAME_SIZE # allocate stack frame -#ifdef __ABICALLS__ - .cprestore 16 -#endif - sw ra, CALLFRAME_RA(sp) # save RA - sw a0, CALLFRAME_SIZ(sp) # store env + SETUP_GP + PTR_SUBU sp, sp, SETJMP_FRAME_SIZE # allocate stack frame + SAVE_GP(CALLFRAME_GP) + SETUP_GP64(CALLFRAME_GP, setjmp) + + REG_S ra, CALLFRAME_RA(sp) # save RA + REG_S a0, CALLFRAME_SIZ(sp) # store env /* Get the signal mask. */ - addu a2, a0, _JB_SIGMASK * SZREG # &oenv + PTR_ADDU a2, a0, _JB_SIGMASK * SZREG # &oenv li a0, 1 # SIG_SETBLOCK move a1, zero # &env == 0 - la t9, _C_LABEL(sigprocmask) # get current signal mask - jal t9 - nop + PTR_LA t9, _C_LABEL(sigprocmask) # get current signal mask + jalr t9 - lw a0, CALLFRAME_SIZ(sp) # restore env pointer - lw ra, CALLFRAME_RA(sp) # restore RA - addu sp, sp, SETJMP_FRAME_SIZE # pop stack frame - - li v0, _JB_MAGIC_SETJMP - sw v0, (_JB_MAGIC * SZREG)(a0) - sw ra, (_JB_REG_RA * SZREG)(a0) - sw s0, (_JB_REG_S0 * SZREG)(a0) - sw s1, (_JB_REG_S1 * SZREG)(a0) - sw s2, (_JB_REG_S2 * SZREG)(a0) - sw s3, (_JB_REG_S3 * SZREG)(a0) - sw s4, (_JB_REG_S4 * SZREG)(a0) - sw s5, (_JB_REG_S5 * SZREG)(a0) - sw s6, (_JB_REG_S6 * SZREG)(a0) - sw s7, (_JB_REG_S7 * SZREG)(a0) - sw sp, (_JB_REG_SP * SZREG)(a0) - sw s8, (_JB_REG_S8 * SZREG)(a0) + RESTORE_GP64 + REG_L a0, CALLFRAME_SIZ(sp) # restore env pointer + REG_L ra, CALLFRAME_RA(sp) # restore RA + PTR_ADDU sp, sp, SETJMP_FRAME_SIZE # pop stack frame + + REG_LI v0, _JB_MAGIC_SETJMP + REG_S v0, (_JB_MAGIC * SZREG)(a0) + REG_S ra, (_JB_REG_RA * SZREG)(a0) + REG_S s0, (_JB_REG_S0 * SZREG)(a0) + REG_S s1, (_JB_REG_S1 * SZREG)(a0) + REG_S s2, (_JB_REG_S2 * SZREG)(a0) + REG_S s3, (_JB_REG_S3 * SZREG)(a0) + REG_S s4, (_JB_REG_S4 * SZREG)(a0) + REG_S s5, (_JB_REG_S5 * SZREG)(a0) + REG_S s6, (_JB_REG_S6 * SZREG)(a0) + REG_S s7, (_JB_REG_S7 * SZREG)(a0) + REG_S sp, (_JB_REG_SP * SZREG)(a0) + REG_S s8, (_JB_REG_S8 * SZREG)(a0) +#if defined(__mips_n32) || defined(__mips_n64) + REG_S gp, (_JB_REG_GP * SZREG)(a0) +#endif move v0, zero - j ra + jr ra END(setjmp) #define LONGJMP_FRAME_SIZE (CALLFRAME_SIZ + (SZREG * 2)) NESTED(longjmp, LONGJMP_FRAME_SIZE, ra) .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) - .set noreorder -#ifdef __ABICALLS__ - .cpload t9 -#endif - subu sp, sp, LONGJMP_FRAME_SIZE # allocate stack frame -#ifdef __ABICALLS__ - .cprestore 16 -#endif - sw ra, CALLFRAME_RA(sp) # save RA - lw v0, (_JB_MAGIC * SZREG)(a0) - li t0, _JB_MAGIC_SETJMP + PIC_PROLOGUE(longjmp) + PTR_SUBU sp, sp, LONGJMP_FRAME_SIZE # allocate stack frame + SAVE_GP(CALLFRAME_GP) + + REG_S ra, CALLFRAME_RA(sp) # save RA + REG_L v0, (_JB_MAGIC * SZREG)(a0) + REG_LI t0, _JB_MAGIC_SETJMP bne v0, t0, botch # jump if error nop - sw a0, CALLFRAME_SIZ(sp) # save env - sw a1, (CALLFRAME_SIZ + SZREG)(sp) # save return value + REG_S a0, CALLFRAME_SIZ(sp) # save env + REG_S a1, (CALLFRAME_SIZ + SZREG)(sp) # save return value # set sigmask - addu a1, a0, _JB_SIGMASK * SZREG # &set + PTR_ADDU a1, a0, _JB_SIGMASK * SZREG # &set move a2, zero # &oset == NULL li a0, 3 # SIG_SETMASK - la t9,_C_LABEL(sigprocmask) # set current signal mask + PTR_LA t9,_C_LABEL(sigprocmask) # set current signal mask jal t9 nop - lw a0, CALLFRAME_SIZ(sp) # restore env - lw a1, (CALLFRAME_SIZ + SZREG)(sp) # restore return value + REG_L a0, CALLFRAME_SIZ(sp) # restore env + REG_L a1, (CALLFRAME_SIZ + SZREG)(sp) # restore return value + + REG_L ra, (_JB_REG_RA * SZREG)(a0) + REG_L s0, (_JB_REG_S0 * SZREG)(a0) + REG_L s1, (_JB_REG_S1 * SZREG)(a0) + REG_L s2, (_JB_REG_S2 * SZREG)(a0) + REG_L s3, (_JB_REG_S3 * SZREG)(a0) + REG_L s4, (_JB_REG_S4 * SZREG)(a0) + REG_L s5, (_JB_REG_S5 * SZREG)(a0) + REG_L s6, (_JB_REG_S6 * SZREG)(a0) + REG_L s7, (_JB_REG_S7 * SZREG)(a0) + REG_L sp, (_JB_REG_SP * SZREG)(a0) + REG_L s8, (_JB_REG_S8 * SZREG)(a0) +#if defined(__mips_n32) || defined(__mips_n64) + REG_L gp, (_JB_REG_GP * SZREG)(a0) +#endif - lw ra, (_JB_REG_RA * SZREG)(a0) - lw s0, (_JB_REG_S0 * SZREG)(a0) - lw s1, (_JB_REG_S1 * SZREG)(a0) - lw s2, (_JB_REG_S2 * SZREG)(a0) - lw s3, (_JB_REG_S3 * SZREG)(a0) - lw s4, (_JB_REG_S4 * SZREG)(a0) - lw s5, (_JB_REG_S5 * SZREG)(a0) - lw s6, (_JB_REG_S6 * SZREG)(a0) - lw s7, (_JB_REG_S7 * SZREG)(a0) - lw sp, (_JB_REG_SP * SZREG)(a0) - lw s8, (_JB_REG_S8 * SZREG)(a0) move v0, a1 j ra nop botch: - la t9, _C_LABEL(longjmperror) - jal t9 + /* + * We know we aren't returning so we don't care about restoring + * our caller's GP. + */ + PTR_LA t9, _C_LABEL(longjmperror) + jalr t9 nop - la t9, _C_LABEL(abort) - jal t9 - nop + PIC_TAILCALL(abort) END(longjmp) Modified: projects/ppc64/lib/libc/mips/gen/sigsetjmp.S ============================================================================== --- projects/ppc64/lib/libc/mips/gen/sigsetjmp.S Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/gen/sigsetjmp.S Sat Jun 19 17:21:48 2010 (r209345) @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$"); ASMSTR("$NetBSD: sigsetjmp.S,v 1.8 2005/09/17 11:49:39 tsutsui Exp $") #endif /* LIBC_SCCS and not lint */ +#include "SYS.h" + #ifdef __ABICALLS__ .abicalls #endif @@ -57,30 +59,19 @@ __FBSDID("$FreeBSD$"); */ LEAF(sigsetjmp) -#ifdef __ABICALLS__ - .set noreorder - .cpload t9 - .set reorder -#endif + PIC_PROLOGUE(sigsetjmp) + bne a1, 0x0, 1f # do saving of signal mask? - la t9, _setjmp - jr t9 + PIC_TAILCALL(_setjmp) -1: la t9, setjmp - jr t9 +1: PIC_TAILCALL(setjmp) END(sigsetjmp) LEAF(siglongjmp) -#ifdef __ABICALLS__ - .set noreorder - .cpload t9 - .set reorder -#endif - lw t0, (_JB_MAGIC * SZREG)(a0) - li t1, _JB_MAGIC__SETJMP + PIC_PROLOGUE(siglongjmp) + REG_L t0, (_JB_MAGIC * SZREG)(a0) + REG_LI t1, _JB_MAGIC__SETJMP bne t0, t1, 1f # setjmp or _setjmp magic? - la t9, _longjmp - jr t9 -1: la t9, longjmp - jr t9 + PIC_TAILCALL(_longjmp) +1: PIC_TAILCALL(longjmp) END(siglongjmp) Modified: projects/ppc64/lib/libc/mips/string/bcmp.S ============================================================================== --- projects/ppc64/lib/libc/mips/string/bcmp.S Sat Jun 19 17:04:01 2010 (r209344) +++ projects/ppc64/lib/libc/mips/string/bcmp.S Sat Jun 19 17:21:48 2010 (r209345) @@ -1,4 +1,4 @@ -/* $NetBSD: bcmp.S,v 1.8 2003/08/07 16:42:16 agc Exp $ */ +/* $NetBSD: bcmp.S,v 1.9 2009/12/14 01:07:42 matt Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -35,9 +35,15 @@ #include __FBSDID("$FreeBSD$"); +#define _LOCORE /* XXX not really, just assembly-code source */ +#include /* LWLO/LWHI, SWLO/SWHI */ + #if defined(LIBC_SCCS) && !defined(lint) +#if 0 ASMSTR("from: @(#)bcmp.s 8.1 (Berkeley) 6/4/93") - ASMSTR("$NetBSD: bcmp.S,v 1.8 2003/08/07 16:42:16 agc Exp $") +#else + ASMSTR("$NetBSD: bcmp.S,v 1.9 2009/12/14 01:07:42 matt Exp $") +#endif #endif /* LIBC_SCCS and not lint */ #ifdef __ABICALLS__ @@ -49,86 +55,76 @@ __FBSDID("$FreeBSD$"); LEAF(bcmp) .set noreorder - blt a2, 16, small # is it worth any trouble? - xor v0, a0, a1 # compare low two bits of addresses - and v0, v0, 3 - subu a3, zero, a1 # compute # bytes to word align address - bne v0, zero, unaligned # not possible to align addresses - and a3, a3, 3 - - beq a3, zero, 1f - subu a2, a2, a3 # subtract from remaining count - move v0, v1 # init v0,v1 so unmodified bytes match -#ifdef __MIPSEB__ - lwl v0, 0(a0) # read 1, 2, or 3 bytes - lwl v1, 0(a1) -#else - lwr v0, 0(a0) # read 1, 2, or 3 bytes - lwr v1, 0(a1) -#endif - addu a1, a1, a3 - bne v0, v1, nomatch - addu a0, a0, a3 + blt a2, 16, small # is it worth any trouble? + xor v0, a0, a1 # compare low two bits of addresses + and v0, v0, 3 + PTR_SUBU a3, zero, a1 # compute # bytes to word align address + bne v0, zero, unaligned # not possible to align addresses + and a3, a3, 3 + + beq a3, zero, 1f + PTR_SUBU a2, a2, a3 # subtract from remaining count + move v0, v1 # init v0,v1 so unmodified bytes match + LWHI v0, 0(a0) # read 1, 2, or 3 bytes + LWHI v1, 0(a1) + PTR_ADDU a1, a1, a3 + bne v0, v1, nomatch + PTR_ADDU a0, a0, a3 1: - and a3, a2, ~3 # compute number of whole words left - subu a2, a2, a3 # which has to be >= (16-3) & ~3 - addu a3, a3, a0 # compute ending address + and a3, a2, ~3 # compute number of whole words left + PTR_SUBU a2, a2, a3 # which has to be >= (16-3) & ~3 + PTR_ADDU a3, a3, a0 # compute ending address 2: - lw v0, 0(a0) # compare words - lw v1, 0(a1) - addu a0, a0, 4 - bne v0, v1, nomatch - addu a1, a1, 4 - bne a0, a3, 2b + lw v0, 0(a0) # compare words + lw v1, 0(a1) + PTR_ADDU a0, a0, 4 + bne v0, v1, nomatch + PTR_ADDU a1, a1, 4 + bne a0, a3, 2b nop - b small # finish remainder + b small # finish remainder nop unaligned: - beq a3, zero, 2f - subu a2, a2, a3 # subtract from remaining count - addu a3, a3, a0 # compute ending address + beq a3, zero, 2f + PTR_SUBU a2, a2, a3 # subtract from remaining count + PTR_ADDU a3, a3, a0 # compute ending address 1: - lbu v0, 0(a0) # compare bytes until a1 word aligned - lbu v1, 0(a1) - addu a0, a0, 1 - bne v0, v1, nomatch - addu a1, a1, 1 - bne a0, a3, 1b + lbu v0, 0(a0) # compare bytes until a1 word aligned + lbu v1, 0(a1) + PTR_ADDU a0, a0, 1 + bne v0, v1, nomatch + PTR_ADDU a1, a1, 1 + bne a0, a3, 1b nop 2: - and a3, a2, ~3 # compute number of whole words left - subu a2, a2, a3 # which has to be >= (16-3) & ~3 - addu a3, a3, a0 # compute ending address + and a3, a2, ~3 # compute number of whole words left + PTR_SUBU a2, a2, a3 # which has to be >= (16-3) & ~3 + PTR_ADDU a3, a3, a0 # compute ending address 3: -#ifdef __MIPSEB__ - lwl v0, 0(a0) # compare words a0 unaligned, a1 aligned - lwr v0, 3(a0) -#else - lwr v0, 0(a0) # compare words a0 unaligned, a1 aligned - lwl v0, 3(a0) -#endif - lw v1, 0(a1) - addu a0, a0, 4 - bne v0, v1, nomatch - addu a1, a1, 4 - bne a0, a3, 3b + LWHI v0, 0(a0) # compare words a0 unaligned, a1 aligned + LWLO v0, 3(a0) + lw v1, 0(a1) + PTR_ADDU a0, a0, 4 + bne v0, v1, nomatch + PTR_ADDU a1, a1, 4 + bne a0, a3, 3b nop small: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 17:28:35 2010 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 9BFC9106564A; Sat, 19 Jun 2010 17:28:35 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A2BC8FC12; Sat, 19 Jun 2010 17:28:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JHSZwY046757; Sat, 19 Jun 2010 17:28:35 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JHSZxa046753; Sat, 19 Jun 2010 17:28:35 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191728.o5JHSZxa046753@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 17:28:35 +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: r209346 - in projects/ppc64/sys/powerpc: aim booke powerpc 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, 19 Jun 2010 17:28:35 -0000 Author: nwhitehorn Date: Sat Jun 19 17:28:35 2010 New Revision: 209346 URL: http://svn.freebsd.org/changeset/base/209346 Log: Moved cpu_thread_swapin/out() back to booke/aim dependent vm_machdep.c, since they relate to VM operations and could be used to optimize KVA use of the SLB on 64-bit AIM. Modified: projects/ppc64/sys/powerpc/aim/vm_machdep.c projects/ppc64/sys/powerpc/booke/vm_machdep.c projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Modified: projects/ppc64/sys/powerpc/aim/vm_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/vm_machdep.c Sat Jun 19 17:21:48 2010 (r209345) +++ projects/ppc64/sys/powerpc/aim/vm_machdep.c Sat Jun 19 17:28:35 2010 (r209346) @@ -396,3 +396,19 @@ is_physical_memory(addr) return 1; } +/* + * CPU threading functions related to the VM layer. These could be used + * to map the SLB bits required for the kernel stack instead of forcing a + * fixed-size KVA. + */ + +void +cpu_thread_swapin(struct thread *td) +{ +} + +void +cpu_thread_swapout(struct thread *td) +{ +} + Modified: projects/ppc64/sys/powerpc/booke/vm_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/booke/vm_machdep.c Sat Jun 19 17:21:48 2010 (r209345) +++ projects/ppc64/sys/powerpc/booke/vm_machdep.c Sat Jun 19 17:28:35 2010 (r209346) @@ -379,3 +379,17 @@ is_physical_memory(vm_offset_t addr) return (1); } +/* + * CPU threading functions related to VM. + */ + +void +cpu_thread_swapin(struct thread *td) +{ +} + +void +cpu_thread_swapout(struct thread *td) +{ +} + Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jun 19 17:21:48 2010 (r209345) +++ projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Sat Jun 19 17:28:35 2010 (r209346) @@ -940,16 +940,6 @@ cpu_thread_free(struct thread *td) { } -void -cpu_thread_swapin(struct thread *td) -{ -} - -void -cpu_thread_swapout(struct thread *td) -{ -} - int cpu_set_user_tls(struct thread *td, void *tls_base) { From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 18:07:16 2010 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 23B7A106564A; Sat, 19 Jun 2010 18:07:16 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 124368FC0A; Sat, 19 Jun 2010 18:07:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JI7F00055421; Sat, 19 Jun 2010 18:07:15 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JI7FNI055419; Sat, 19 Jun 2010 18:07:15 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191807.o5JI7FNI055419@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 18:07:15 +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: r209347 - projects/ppc64/sys/powerpc/aim 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, 19 Jun 2010 18:07:16 -0000 Author: nwhitehorn Date: Sat Jun 19 18:07:15 2010 New Revision: 209347 URL: http://svn.freebsd.org/changeset/base/209347 Log: Fix a typo that kept systems with > 1 GB of RAM from booting. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 17:28:35 2010 (r209346) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 18:07:15 2010 (r209347) @@ -2736,7 +2736,7 @@ moea64_pte_insert(u_int ptegidx, struct * First try primary hash. */ pteg_bktidx = ptegidx; - for (pt = moea64_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) { + for (pt = moea64_pteg_table[pteg_bktidx].pt, i = 0; i < 8; i++, pt++) { if ((pt->pte_hi & LPTE_VALID) == 0 && (pt->pte_hi & LPTE_LOCKED) == 0) { pvo_pt->pte_hi &= ~LPTE_HID; @@ -2749,8 +2749,7 @@ moea64_pte_insert(u_int ptegidx, struct * Now try secondary hash. */ pteg_bktidx ^= moea64_pteg_mask; - - for (pt = moea64_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) { + for (pt = moea64_pteg_table[pteg_bktidx].pt, i = 0; i < 8; i++, pt++) { if ((pt->pte_hi & LPTE_VALID) == 0 && (pt->pte_hi & LPTE_LOCKED) == 0) { pvo_pt->pte_hi |= LPTE_HID; From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 18:13:31 2010 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 96F54106564A; Sat, 19 Jun 2010 18:13:31 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 854F78FC23; Sat, 19 Jun 2010 18:13:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JIDVGG056850; Sat, 19 Jun 2010 18:13:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JIDVGE056848; Sat, 19 Jun 2010 18:13:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191813.o5JIDVGE056848@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 18:13:31 +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: r209348 - projects/ppc64/sys/powerpc/powerpc 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, 19 Jun 2010 18:13:31 -0000 Author: nwhitehorn Date: Sat Jun 19 18:13:31 2010 New Revision: 209348 URL: http://svn.freebsd.org/changeset/base/209348 Log: Fix SVN mismerge. Modified: projects/ppc64/sys/powerpc/powerpc/openpic.c Modified: projects/ppc64/sys/powerpc/powerpc/openpic.c ============================================================================== --- projects/ppc64/sys/powerpc/powerpc/openpic.c Sat Jun 19 18:07:15 2010 (r209347) +++ projects/ppc64/sys/powerpc/powerpc/openpic.c Sat Jun 19 18:13:31 2010 (r209348) @@ -124,29 +124,6 @@ openpic_attach(device_t dev) DELAY(100); } - /* Check if this is a cascaded PIC */ - sc->sc_irq = 0; - sc->sc_intr = NULL; - if (resource_list_find(BUS_GET_RESOURCE_LIST(device_get_parent(dev), - dev), SYS_RES_IRQ, 0) != NULL) { - sc->sc_intr = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &sc->sc_irq, RF_ACTIVE); - - /* XXX Cascaded PICs pass NULL trapframes! */ - bus_setup_intr(dev, sc->sc_intr, INTR_TYPE_MISC | INTR_MPSAFE, - openpic_intr, NULL, dev, &sc->sc_icookie); - } - - /* Reset the PIC */ - x = openpic_read(sc, OPENPIC_CONFIG); - x |= OPENPIC_CONFIG_RESET; - openpic_write(sc, OPENPIC_CONFIG, x); - - while (openpic_read(sc, OPENPIC_CONFIG) & OPENPIC_CONFIG_RESET) { - powerpc_sync(); - DELAY(100); - } - x = openpic_read(sc, OPENPIC_FEATURE); switch (x & OPENPIC_FEATURE_VERSION_MASK) { case 1: From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 19:09:09 2010 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 1CACD106564A; Sat, 19 Jun 2010 19:09:09 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0BA218FC16; Sat, 19 Jun 2010 19:09:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JJ986b069185; Sat, 19 Jun 2010 19:09:08 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JJ98ML069183; Sat, 19 Jun 2010 19:09:08 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191909.o5JJ98ML069183@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 19:09: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: r209351 - projects/ppc64/sys/powerpc/aim 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, 19 Jun 2010 19:09:09 -0000 Author: nwhitehorn Date: Sat Jun 19 19:09:08 2010 New Revision: 209351 URL: http://svn.freebsd.org/changeset/base/209351 Log: Fix a bug where the kernel could panic for large numbers of spilled mappings due to looking in the wrong PVO bucket. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 18:52:37 2010 (r209350) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 19:09:08 2010 (r209351) @@ -2784,7 +2784,7 @@ moea64_pte_insert(u_int ptegidx, struct if (pt->pte_hi & LPTE_HID) pvo_pt->pte_hi |= LPTE_HID; - LIST_FOREACH(pvo, &moea64_pvo_table[ptegidx], pvo_olink) { + LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); @@ -2793,6 +2793,19 @@ moea64_pte_insert(u_int ptegidx, struct } } + if (pvo->pvo_pte.lpte.pte_hi != pt->pte_hi) { + /* It could have landed in the secondary PTEG */ + pteg_bktidx ^= moea64_pteg_mask; + LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { + if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { + moea64_pte_unset(pt, &pvo->pvo_pte.lpte, + pvo->pvo_vpn); + PVO_PTEGIDX_CLR(pvo); + moea64_pte_overflow++; + break; + } + } + } KASSERT(pvo->pvo_pte.lpte.pte_hi == pt->pte_hi, ("Unable to find PVO for spilled PTE")); From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 19:45:09 2010 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 3F0321065672; Sat, 19 Jun 2010 19:45:09 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2DB298FC15; Sat, 19 Jun 2010 19:45:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JJj97S077116; Sat, 19 Jun 2010 19:45:09 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JJj99T077114; Sat, 19 Jun 2010 19:45:09 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006191945.o5JJj99T077114@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 19:45:09 +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: r209352 - projects/ppc64/sys/powerpc/aim 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, 19 Jun 2010 19:45:09 -0000 Author: nwhitehorn Date: Sat Jun 19 19:45:08 2010 New Revision: 209352 URL: http://svn.freebsd.org/changeset/base/209352 Log: The VM tells us which pages are wired, we don't need to wire the whole kernel against PTE spills. Suggested by: mdf Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 19:09:08 2010 (r209351) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 19:45:08 2010 (r209352) @@ -1312,20 +1312,52 @@ void moea64_change_wiring(mmu_t mmu, pmap_t pm, vm_offset_t va, boolean_t wired) { struct pvo_entry *pvo; + struct lpte *pt; + uint64_t vsid; + int i, ptegidx; PMAP_LOCK(pm); pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF, NULL); if (pvo != NULL) { + LOCK_TABLE(); + pt = moea64_pvo_to_pte(pvo, -1); + if (pt != NULL) + moea64_pte_synch(pt, &pvo->pvo_pte.lpte); + if (wired) { if ((pvo->pvo_vaddr & PVO_WIRED) == 0) pm->pm_stats.wired_count++; pvo->pvo_vaddr |= PVO_WIRED; + pvo->pvo_pte.lpte.pte_hi |= LPTE_WIRED; } else { if ((pvo->pvo_vaddr & PVO_WIRED) != 0) pm->pm_stats.wired_count--; pvo->pvo_vaddr &= ~PVO_WIRED; + pvo->pvo_pte.lpte.pte_hi &= ~LPTE_WIRED; } + + if (pt != NULL) { + /* Update wiring flag in page table. */ + moea64_pte_change(pt, &pvo->pvo_pte.lpte, + pvo->pvo_vpn); + } else if (wired) { + /* + * If we are wiring the page, and it wasn't in the + * page table before, add it. + */ + vsid = PVO_VSID(pvo); + ptegidx = va_to_pteg(vsid, PVO_VADDR(pvo), + pvo->pvo_vaddr & PVO_LARGE); + + i = moea64_pte_insert(ptegidx, &pvo->pvo_pte.lpte); + if (i >= 0) { + PVO_PTEGIDX_CLR(pvo); + PVO_PTEGIDX_SET(pvo, i); + } + } + + UNLOCK_TABLE(); } PMAP_UNLOCK(pm); } @@ -2410,6 +2442,13 @@ moea64_pvo_enter(pmap_t pm, uma_zone_t z if ((pvo->pvo_pte.lpte.pte_lo & LPTE_RPGN) == pa && (pvo->pvo_pte.lpte.pte_lo & LPTE_PP) == (pte_lo & LPTE_PP)) { + if (!(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID)) { + /* Re-insert if spilled */ + i = moea64_pte_insert(ptegidx, + &pvo->pvo_pte.lpte); + if (i >= 0) + PVO_PTEGIDX_SET(pvo, i); + } UNLOCK_TABLE(); return (0); } @@ -2479,8 +2518,10 @@ moea64_pvo_enter(pmap_t pm, uma_zone_t z first = 1; LIST_INSERT_HEAD(pvo_head, pvo, pvo_vlink); - if (pvo->pvo_vaddr & PVO_WIRED) + if (pvo->pvo_vaddr & PVO_WIRED) { + pvo->pvo_pte.lpte.pte_hi |= LPTE_WIRED; pm->pm_stats.wired_count++; + } pm->pm_stats.resident_count++; /* @@ -2627,8 +2668,6 @@ moea64_pvo_to_pte(const struct pvo_entry { struct lpte *pt; - ASSERT_TABLE_LOCK(); - /* * If we haven't been supplied the ptegidx, calculate it. */ @@ -2642,8 +2681,6 @@ moea64_pvo_to_pte(const struct pvo_entry pteidx = moea64_pvo_pte_index(pvo, ptegidx); } - pt = &moea64_pteg_table[pteidx >> 3].pt[pteidx & 7]; - if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) && !PVO_PTEGIDX_ISSET(pvo)) { panic("moea64_pvo_to_pte: pvo %p has valid pte in pvo but no " @@ -2660,6 +2697,8 @@ moea64_pvo_to_pte(const struct pvo_entry if (!PVO_PTEGIDX_ISSET(pvo)) return (NULL); + ASSERT_TABLE_LOCK(); + pt = &moea64_pteg_table[pteidx >> 3].pt[pteidx & 7]; if ((pt->pte_hi ^ (pvo->pvo_pte.lpte.pte_hi & ~LPTE_VALID)) == LPTE_VALID) { if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) == 0) { @@ -2675,7 +2714,6 @@ moea64_pvo_to_pte(const struct pvo_entry (uint32_t)(pt->pte_lo ^ pvo->pvo_pte.lpte.pte_lo)); } - ASSERT_TABLE_LOCK(); return (pt); } @@ -2698,18 +2736,8 @@ moea64_pte_spillable_ident(u_int ptegidx k = -1; for (j = 0; j < 8; j++) { pt = &moea64_pteg_table[ptegidx].pt[(i + j) % 8]; - if (pt->pte_hi & LPTE_LOCKED) - continue; - - /* Don't spill kernel mappings */ - #ifdef __powerpc64__ - if ((pt->pte_hi >> LPTE_VSID_SHIFT) & KERNEL_VSID_BIT) - continue; - #else - if (((pt->pte_hi >> LPTE_VSID_SHIFT) & EMPTY_SEGMENT) == - EMPTY_SEGMENT) + if (pt->pte_hi & (LPTE_LOCKED | LPTE_WIRED)) continue; - #endif /* This is a candidate, so remember it */ k = (i + j) % 8; @@ -2786,6 +2814,8 @@ moea64_pte_insert(u_int ptegidx, struct LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { + if (!(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID)) + continue; moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); moea64_pte_overflow++; @@ -2797,6 +2827,8 @@ moea64_pte_insert(u_int ptegidx, struct /* It could have landed in the secondary PTEG */ pteg_bktidx ^= moea64_pteg_mask; LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { + if (!(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID)) + continue; if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 20:11:06 2010 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 E0E341065673; Sat, 19 Jun 2010 20:11:06 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D07C98FC16; Sat, 19 Jun 2010 20:11:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JKB6Rx082907; Sat, 19 Jun 2010 20:11:06 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JKB64L082905; Sat, 19 Jun 2010 20:11:06 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006192011.o5JKB64L082905@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 20:11:06 +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: r209353 - projects/ppc64/sys/powerpc/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: Sat, 19 Jun 2010 20:11:07 -0000 Author: nwhitehorn Date: Sat Jun 19 20:11:06 2010 New Revision: 209353 URL: http://svn.freebsd.org/changeset/base/209353 Log: Missed a file. Modified: projects/ppc64/sys/powerpc/include/pte.h Modified: projects/ppc64/sys/powerpc/include/pte.h ============================================================================== --- projects/ppc64/sys/powerpc/include/pte.h Sat Jun 19 19:45:08 2010 (r209352) +++ projects/ppc64/sys/powerpc/include/pte.h Sat Jun 19 20:11:06 2010 (r209353) @@ -95,6 +95,7 @@ struct lpteg { /* High quadword: */ #define LPTE_VSID_SHIFT 12 #define LPTE_API 0x0000000000000F80ULL +#define LPTE_WIRED 0x0000000000000010ULL #define LPTE_LOCKED 0x0000000000000008ULL #define LPTE_BIG 0x0000000000000004ULL /* 4kb/16Mb page */ #define LPTE_HID 0x0000000000000002ULL From owner-svn-src-projects@FreeBSD.ORG Sat Jun 19 20:34:37 2010 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 5ECBB106566C; Sat, 19 Jun 2010 20:34:37 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4E4DE8FC1B; Sat, 19 Jun 2010 20:34:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5JKYbat088129; Sat, 19 Jun 2010 20:34:37 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5JKYbBN088127; Sat, 19 Jun 2010 20:34:37 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201006192034.o5JKYbBN088127@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 19 Jun 2010 20:34: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: r209354 - projects/ppc64/sys/powerpc/aim 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, 19 Jun 2010 20:34:37 -0000 Author: nwhitehorn Date: Sat Jun 19 20:34:37 2010 New Revision: 209354 URL: http://svn.freebsd.org/changeset/base/209354 Log: Change a silent failure to a loud failure. Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c Modified: projects/ppc64/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 20:11:06 2010 (r209353) +++ projects/ppc64/sys/powerpc/aim/mmu_oea64.c Sat Jun 19 20:34:37 2010 (r209354) @@ -2814,8 +2814,8 @@ moea64_pte_insert(u_int ptegidx, struct LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { - if (!(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID)) - continue; + KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, + ("Invalid PVO for valid PTE!\n")); moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo); moea64_pte_overflow++; @@ -2827,9 +2827,9 @@ moea64_pte_insert(u_int ptegidx, struct /* It could have landed in the secondary PTEG */ pteg_bktidx ^= moea64_pteg_mask; LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { - if (!(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID)) - continue; if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) { + KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, + ("Invalid PVO for valid PTE!\n")); moea64_pte_unset(pt, &pvo->pvo_pte.lpte, pvo->pvo_vpn); PVO_PTEGIDX_CLR(pvo);