From owner-svn-src-user@FreeBSD.ORG Thu Mar 11 22:11:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4638106564A; Thu, 11 Mar 2010 22:11:25 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C0BB98FC15; Thu, 11 Mar 2010 22:11:25 +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 o2BMBPI5085803; Thu, 11 Mar 2010 22:11:25 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2BMBOev085752; Thu, 11 Mar 2010 22:11:24 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201003112211.o2BMBOev085752@svn.freebsd.org> From: Juli Mallett Date: Thu, 11 Mar 2010 22:11:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205044 - in user/jmallett/octeon: . lib/libc/rpc lib/libc/sparc64/fpu lib/libc/stdio sbin/nos-tun secure/libexec secure/libexec/ssh-pkcs11-helper sys/amd64/amd64 sys/amd64/conf sys/amd... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Mar 2010 22:11:25 -0000 Author: jmallett Date: Thu Mar 11 22:11:24 2010 New Revision: 205044 URL: http://svn.freebsd.org/changeset/base/205044 Log: Merge from head. Added: user/jmallett/octeon/secure/libexec/ssh-pkcs11-helper/Makefile - copied unchanged from r205041, head/secure/libexec/ssh-pkcs11-helper/Makefile Modified: user/jmallett/octeon/UPDATING user/jmallett/octeon/lib/libc/rpc/Symbol.map user/jmallett/octeon/lib/libc/rpc/clnt_simple.c user/jmallett/octeon/lib/libc/rpc/getnetconfig.c user/jmallett/octeon/lib/libc/rpc/key_call.c user/jmallett/octeon/lib/libc/rpc/mt_misc.c user/jmallett/octeon/lib/libc/rpc/mt_misc.h user/jmallett/octeon/lib/libc/rpc/rpc_generic.c user/jmallett/octeon/lib/libc/rpc/rpc_soc.c user/jmallett/octeon/lib/libc/sparc64/fpu/fpu.c user/jmallett/octeon/lib/libc/sparc64/fpu/fpu_emu.h user/jmallett/octeon/lib/libc/stdio/findfp.c user/jmallett/octeon/lib/libc/stdio/local.h user/jmallett/octeon/lib/libc/stdio/snprintf.c user/jmallett/octeon/lib/libc/stdio/vasprintf.c user/jmallett/octeon/lib/libc/stdio/vdprintf.c user/jmallett/octeon/lib/libc/stdio/vfprintf.c user/jmallett/octeon/lib/libc/stdio/vsnprintf.c user/jmallett/octeon/lib/libc/stdio/vsprintf.c user/jmallett/octeon/lib/libc/stdio/vsscanf.c user/jmallett/octeon/lib/libc/stdio/vswprintf.c user/jmallett/octeon/lib/libc/stdio/vswscanf.c user/jmallett/octeon/lib/libc/stdio/xprintf.c user/jmallett/octeon/sbin/nos-tun/Makefile user/jmallett/octeon/sbin/nos-tun/nos-tun.c user/jmallett/octeon/secure/libexec/Makefile user/jmallett/octeon/sys/amd64/amd64/db_trace.c user/jmallett/octeon/sys/amd64/amd64/exception.S user/jmallett/octeon/sys/amd64/amd64/identcpu.c user/jmallett/octeon/sys/amd64/amd64/pmap.c user/jmallett/octeon/sys/amd64/amd64/vm_machdep.c user/jmallett/octeon/sys/amd64/conf/GENERIC user/jmallett/octeon/sys/amd64/conf/NOTES user/jmallett/octeon/sys/amd64/conf/XENHVM user/jmallett/octeon/sys/amd64/include/elf.h user/jmallett/octeon/sys/amd64/include/reg.h user/jmallett/octeon/sys/amd64/linux32/linux32_sysvec.c user/jmallett/octeon/sys/arm/arm/busdma_machdep.c user/jmallett/octeon/sys/arm/arm/identcpu.c user/jmallett/octeon/sys/arm/arm/vm_machdep.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32.h user/jmallett/octeon/sys/compat/freebsd32/freebsd32_misc.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32_proto.h user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscall.h user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscalls.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32_sysent.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32_util.h user/jmallett/octeon/sys/compat/freebsd32/syscalls.master user/jmallett/octeon/sys/compat/ia32/ia32_reg.h user/jmallett/octeon/sys/compat/ia32/ia32_sysvec.c user/jmallett/octeon/sys/conf/files.amd64 user/jmallett/octeon/sys/conf/files.ia64 user/jmallett/octeon/sys/conf/options.amd64 user/jmallett/octeon/sys/conf/options.i386 user/jmallett/octeon/sys/conf/options.ia64 user/jmallett/octeon/sys/dev/acpica/acpi_video.c user/jmallett/octeon/sys/dev/bge/if_bge.c user/jmallett/octeon/sys/dev/bwn/if_bwn.c user/jmallett/octeon/sys/dev/mii/brgphy.c user/jmallett/octeon/sys/dev/pci/vga_pci.c user/jmallett/octeon/sys/dev/siba/siba_core.c user/jmallett/octeon/sys/dev/usb/controller/usb_controller.c user/jmallett/octeon/sys/dev/usb/controller/uss820dci.c user/jmallett/octeon/sys/dev/usb/input/ukbd.c user/jmallett/octeon/sys/dev/usb/serial/uftdi.c user/jmallett/octeon/sys/dev/usb/serial/uvisor.c user/jmallett/octeon/sys/dev/usb/template/usb_template.c user/jmallett/octeon/sys/dev/usb/template/usb_template.h user/jmallett/octeon/sys/dev/usb/template/usb_template_mtp.c user/jmallett/octeon/sys/dev/usb/usb_device.c user/jmallett/octeon/sys/dev/usb/usb_device.h user/jmallett/octeon/sys/dev/usb/usb_generic.c user/jmallett/octeon/sys/dev/usb/usb_transfer.c user/jmallett/octeon/sys/dev/usb/usbdevs user/jmallett/octeon/sys/fs/nfsserver/nfs_nfsdport.c user/jmallett/octeon/sys/fs/procfs/procfs_dbregs.c user/jmallett/octeon/sys/fs/procfs/procfs_fpregs.c user/jmallett/octeon/sys/fs/procfs/procfs_ioctl.c user/jmallett/octeon/sys/fs/procfs/procfs_map.c user/jmallett/octeon/sys/fs/procfs/procfs_regs.c user/jmallett/octeon/sys/i386/conf/NOTES user/jmallett/octeon/sys/i386/i386/identcpu.c user/jmallett/octeon/sys/i386/i386/mp_machdep.c user/jmallett/octeon/sys/i386/i386/pmap.c user/jmallett/octeon/sys/i386/xen/mp_machdep.c user/jmallett/octeon/sys/ia64/conf/NOTES user/jmallett/octeon/sys/ia64/ia64/exception.S user/jmallett/octeon/sys/ia64/ia64/genassym.c user/jmallett/octeon/sys/ia64/ia64/machdep.c user/jmallett/octeon/sys/ia64/include/elf.h user/jmallett/octeon/sys/ia64/include/reg.h user/jmallett/octeon/sys/kern/imgact_elf.c user/jmallett/octeon/sys/kern/kern_jail.c user/jmallett/octeon/sys/kern/kern_ktr.c user/jmallett/octeon/sys/kern/kern_module.c user/jmallett/octeon/sys/kern/kern_thr.c user/jmallett/octeon/sys/kern/kern_umtx.c user/jmallett/octeon/sys/kern/sys_generic.c user/jmallett/octeon/sys/kern/sys_process.c user/jmallett/octeon/sys/kern/uipc_socket.c user/jmallett/octeon/sys/kern/vfs_aio.c user/jmallett/octeon/sys/kern/vfs_syscalls.c user/jmallett/octeon/sys/mips/include/kdb.h user/jmallett/octeon/sys/mips/include/smp.h user/jmallett/octeon/sys/mips/mips/db_trace.c user/jmallett/octeon/sys/mips/mips/mp_machdep.c user/jmallett/octeon/sys/mips/mips/swtch.S user/jmallett/octeon/sys/modules/linux/Makefile user/jmallett/octeon/sys/modules/procfs/Makefile user/jmallett/octeon/sys/net/if_tap.c user/jmallett/octeon/sys/net/route.h user/jmallett/octeon/sys/netinet/ipfw/ip_dn_glue.c user/jmallett/octeon/sys/netinet/ipfw/ip_fw_sockopt.c user/jmallett/octeon/sys/sys/pcpu.h user/jmallett/octeon/sys/sys/pioctl.h user/jmallett/octeon/sys/sys/ptrace.h user/jmallett/octeon/usr.bin/perror/perror.1 user/jmallett/octeon/usr.bin/script/script.c user/jmallett/octeon/usr.bin/truss/amd64-fbsd.c user/jmallett/octeon/usr.bin/truss/amd64-fbsd32.c user/jmallett/octeon/usr.bin/truss/amd64-linux32.c user/jmallett/octeon/usr.bin/truss/extern.h user/jmallett/octeon/usr.bin/truss/i386-fbsd.c user/jmallett/octeon/usr.bin/truss/i386-linux.c user/jmallett/octeon/usr.bin/truss/ia64-fbsd.c user/jmallett/octeon/usr.bin/truss/main.c user/jmallett/octeon/usr.bin/truss/mips-fbsd.c user/jmallett/octeon/usr.bin/truss/powerpc-fbsd.c user/jmallett/octeon/usr.bin/truss/setup.c user/jmallett/octeon/usr.bin/truss/sparc64-fbsd.c user/jmallett/octeon/usr.bin/truss/syscalls.c user/jmallett/octeon/usr.bin/truss/truss.h Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/sys/contrib/x86emu/ (props changed) Modified: user/jmallett/octeon/UPDATING ============================================================================== --- user/jmallett/octeon/UPDATING Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/UPDATING Thu Mar 11 22:11:24 2010 (r205044) @@ -22,6 +22,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20100311: + The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 + to allow 32-bit compatibility on non-x86 platforms. All kernel + configurations on amd64 and ia64 platforms using these options must + be modified accordingly. + 20100113: The utmp user accounting database has been replaced with utmpx, the user accounting interface standardized by POSIX. Modified: user/jmallett/octeon/lib/libc/rpc/Symbol.map ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/Symbol.map Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/Symbol.map Thu Mar 11 22:11:24 2010 (r205044) @@ -239,10 +239,6 @@ FBSDprivate_1.0 { __key_encryptsession_pk_LOCAL; __key_decryptsession_pk_LOCAL; __key_gendes_LOCAL; - __tsd_lock; /* - * Why does usr.bin/rpcinfo/Makefile need rpc_generic.c? - * Remove this hack if rpcinfo stops building with it. - */ __svc_clean_idle; __rpc_gss_unwrap; __rpc_gss_unwrap_stub; Modified: user/jmallett/octeon/lib/libc/rpc/clnt_simple.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/clnt_simple.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/clnt_simple.c Thu Mar 11 22:11:24 2010 (r205044) @@ -76,7 +76,11 @@ struct rpc_call_private { char nettype[NETIDLEN]; /* Network type */ }; static struct rpc_call_private *rpc_call_private_main; +static thread_key_t rpc_call_key; +static once_t rpc_call_once = ONCE_INITIALIZER; +static int rpc_call_key_error; +static void rpc_call_key_init(void); static void rpc_call_destroy(void *); static void @@ -91,6 +95,13 @@ rpc_call_destroy(void *vp) } } +static void +rpc_call_key_init(void) +{ + + rpc_call_key_error = thr_keycreate(&rpc_call_key, rpc_call_destroy); +} + /* * This is the simplified interface to the client rpc layer. * The client handle is not destroyed here and is reused for @@ -112,17 +123,16 @@ rpc_call(host, prognum, versnum, procnum struct rpc_call_private *rcp = (struct rpc_call_private *) 0; enum clnt_stat clnt_stat; struct timeval timeout, tottimeout; - static thread_key_t rpc_call_key; int main_thread = 1; if ((main_thread = thr_main())) { rcp = rpc_call_private_main; } else { - if (rpc_call_key == 0) { - mutex_lock(&tsd_lock); - if (rpc_call_key == 0) - thr_keycreate(&rpc_call_key, rpc_call_destroy); - mutex_unlock(&tsd_lock); + if (thr_once(&rpc_call_once, rpc_call_key_init) != 0 || + rpc_call_key_error != 0) { + rpc_createerr.cf_stat = RPC_SYSTEMERROR; + rpc_createerr.cf_error.re_errno = rpc_call_key_error; + return (rpc_createerr.cf_stat); } rcp = (struct rpc_call_private *)thr_getspecific(rpc_call_key); } Modified: user/jmallett/octeon/lib/libc/rpc/getnetconfig.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/getnetconfig.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/getnetconfig.c Thu Mar 11 22:11:24 2010 (r205044) @@ -130,21 +130,29 @@ static struct netconfig *dup_ncp(struct static FILE *nc_file; /* for netconfig db */ -static pthread_mutex_t nc_file_lock = PTHREAD_MUTEX_INITIALIZER; +static mutex_t nc_file_lock = MUTEX_INITIALIZER; static struct netconfig_info ni = { 0, 0, NULL, NULL}; -static pthread_mutex_t ni_lock = PTHREAD_MUTEX_INITIALIZER; +static mutex_t ni_lock = MUTEX_INITIALIZER; +static thread_key_t nc_key; +static once_t nc_once = ONCE_INITIALIZER; +static int nc_key_error; + +static void +nc_key_init(void) +{ + + nc_key_error = thr_keycreate(&nc_key, free); +} #define MAXNETCONFIGLINE 1000 static int * __nc_error() { - static pthread_mutex_t nc_lock = PTHREAD_MUTEX_INITIALIZER; - static thread_key_t nc_key = 0; static int nc_error = 0; - int error, *nc_addr; + int *nc_addr; /* * Use the static `nc_error' if we are the main thread @@ -153,15 +161,8 @@ __nc_error() */ if (thr_main()) return (&nc_error); - if (nc_key == 0) { - error = 0; - mutex_lock(&nc_lock); - if (nc_key == 0) - error = thr_keycreate(&nc_key, free); - mutex_unlock(&nc_lock); - if (error) - return (&nc_error); - } + if (thr_once(&nc_once, nc_key_init) != 0 || nc_key_error != 0) + return (&nc_error); if ((nc_addr = (int *)thr_getspecific(nc_key)) == NULL) { nc_addr = (int *)malloc(sizeof (int)); if (thr_setspecific(nc_key, (void *) nc_addr) != 0) { Modified: user/jmallett/octeon/lib/libc/rpc/key_call.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/key_call.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/key_call.c Thu Mar 11 22:11:24 2010 (r205044) @@ -279,6 +279,9 @@ struct key_call_private { uid_t uid; /* user-id at last authorization */ }; static struct key_call_private *key_call_private_main = NULL; +static thread_key_t key_call_key; +static once_t key_call_once = ONCE_INITIALIZER; +static int key_call_key_error; static void key_call_destroy(void *vp) @@ -292,6 +295,13 @@ key_call_destroy(void *vp) } } +static void +key_call_init(void) +{ + + key_call_key_error = thr_keycreate(&key_call_key, key_call_destroy); +} + /* * Keep the handle cached. This call may be made quite often. */ @@ -307,7 +317,6 @@ int vers; struct utsname u; int main_thread; int fd; - static thread_key_t key_call_key; #define TOTAL_TIMEOUT 30 /* total timeout talking to keyserver */ #define TOTAL_TRIES 5 /* Number of tries */ @@ -315,12 +324,9 @@ int vers; if ((main_thread = thr_main())) { kcp = key_call_private_main; } else { - if (key_call_key == 0) { - mutex_lock(&tsd_lock); - if (key_call_key == 0) - thr_keycreate(&key_call_key, key_call_destroy); - mutex_unlock(&tsd_lock); - } + if (thr_once(&key_call_once, key_call_init) != 0 || + key_call_key_error != 0) + return ((CLIENT *) NULL); kcp = (struct key_call_private *)thr_getspecific(key_call_key); } if (kcp == (struct key_call_private *)NULL) { Modified: user/jmallett/octeon/lib/libc/rpc/mt_misc.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/mt_misc.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/mt_misc.c Thu Mar 11 22:11:24 2010 (r205044) @@ -28,7 +28,6 @@ __FBSDID("$FreeBSD$"); #define proglst_lock __proglst_lock #define rpcsoc_lock __rpcsoc_lock #define svcraw_lock __svcraw_lock -#define tsd_lock __tsd_lock #define xprtlist_lock __xprtlist_lock /* protects the services list (svc.c) */ @@ -76,33 +75,33 @@ pthread_mutex_t rpcsoc_lock = PTHREAD_MU /* svc_raw.c serialization */ pthread_mutex_t svcraw_lock = PTHREAD_MUTEX_INITIALIZER; -/* protects TSD key creation */ -pthread_mutex_t tsd_lock = PTHREAD_MUTEX_INITIALIZER; - /* xprtlist (svc_generic.c) */ pthread_mutex_t xprtlist_lock = PTHREAD_MUTEX_INITIALIZER; #undef rpc_createerr struct rpc_createerr rpc_createerr; +static thread_key_t rce_key; +static once_t rce_once = ONCE_INITIALIZER; +static int rce_key_error; + +static void +rce_key_init(void) +{ + + rce_key_error = thr_keycreate(&rce_key, free); +} struct rpc_createerr * __rpc_createerr() { - static thread_key_t rce_key = 0; struct rpc_createerr *rce_addr = 0; if (thr_main()) return (&rpc_createerr); - if ((rce_addr = - (struct rpc_createerr *)thr_getspecific(rce_key)) != 0) { - mutex_lock(&tsd_lock); - if (thr_keycreate(&rce_key, free) != 0) { - mutex_unlock(&tsd_lock); - return (&rpc_createerr); - } - mutex_unlock(&tsd_lock); - } + if (thr_once(&rce_once, rce_key_init) != 0 || rce_key_error != 0) + return (&rpc_createerr); + rce_addr = (struct rpc_createerr *)thr_getspecific(rce_key); if (!rce_addr) { rce_addr = (struct rpc_createerr *) malloc(sizeof (struct rpc_createerr)); Modified: user/jmallett/octeon/lib/libc/rpc/mt_misc.h ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/mt_misc.h Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/mt_misc.h Thu Mar 11 22:11:24 2010 (r205044) @@ -42,7 +42,6 @@ #define proglst_lock __proglst_lock #define rpcsoc_lock __rpcsoc_lock #define svcraw_lock __svcraw_lock -#define tsd_lock __tsd_lock #define xprtlist_lock __xprtlist_lock extern pthread_rwlock_t svc_lock; Modified: user/jmallett/octeon/lib/libc/rpc/rpc_generic.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/rpc_generic.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/rpc_generic.c Thu Mar 11 22:11:24 2010 (r205044) @@ -221,6 +221,18 @@ getnettype(nettype) return (_rpctypelist[i].type); } +static thread_key_t tcp_key, udp_key; +static once_t keys_once = ONCE_INITIALIZER; +static int tcp_key_error, udp_key_error; + +static void +keys_init(void) +{ + + tcp_key_error = thr_keycreate(&tcp_key, free); + udp_key_error = thr_keycreate(&udp_key, free); +} + /* * For the given nettype (tcp or udp only), return the first structure found. * This should be freed by calling freenetconfigent() @@ -236,25 +248,15 @@ __rpc_getconfip(nettype) static char *netid_udp_main; struct netconfig *dummy; int main_thread; - static thread_key_t tcp_key, udp_key; if ((main_thread = thr_main())) { netid_udp = netid_udp_main; netid_tcp = netid_tcp_main; } else { - if (tcp_key == 0) { - mutex_lock(&tsd_lock); - if (tcp_key == 0) - thr_keycreate(&tcp_key, free); - mutex_unlock(&tsd_lock); - } + if (thr_once(&keys_once, keys_init) != 0 || + tcp_key_error != 0 || udp_key_error != 0) + return (NULL); netid_tcp = (char *)thr_getspecific(tcp_key); - if (udp_key == 0) { - mutex_lock(&tsd_lock); - if (udp_key == 0) - thr_keycreate(&udp_key, free); - mutex_unlock(&tsd_lock); - } netid_udp = (char *)thr_getspecific(udp_key); } if (!netid_udp && !netid_tcp) { Modified: user/jmallett/octeon/lib/libc/rpc/rpc_soc.c ============================================================================== --- user/jmallett/octeon/lib/libc/rpc/rpc_soc.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/rpc/rpc_soc.c Thu Mar 11 22:11:24 2010 (r205044) @@ -360,6 +360,14 @@ registerrpc(prognum, versnum, procnum, p */ static thread_key_t clnt_broadcast_key; static resultproc_t clnt_broadcast_result_main; +static once_t clnt_broadcast_once = ONCE_INITIALIZER; + +static void +clnt_broadcast_key_init(void) +{ + + thr_keycreate(&clnt_broadcast_key, free); +} /* * Need to translate the netbuf address into sockaddr_in address. @@ -402,12 +410,7 @@ clnt_broadcast(prog, vers, proc, xargs, if (thr_main()) clnt_broadcast_result_main = eachresult; else { - if (clnt_broadcast_key == 0) { - mutex_lock(&tsd_lock); - if (clnt_broadcast_key == 0) - thr_keycreate(&clnt_broadcast_key, free); - mutex_unlock(&tsd_lock); - } + thr_once(&clnt_broadcast_once, clnt_broadcast_key_init); thr_setspecific(clnt_broadcast_key, (void *) eachresult); } return rpc_broadcast((rpcprog_t)prog, (rpcvers_t)vers, Modified: user/jmallett/octeon/lib/libc/sparc64/fpu/fpu.c ============================================================================== --- user/jmallett/octeon/lib/libc/sparc64/fpu/fpu.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/sparc64/fpu/fpu.c Thu Mar 11 22:11:24 2010 (r205044) @@ -97,7 +97,7 @@ __FBSDID("$FreeBSD$"); #define X8(x) X4(x),X4(x) #define X16(x) X8(x),X8(x) -static char cx_to_trapx[] = { +static const char cx_to_trapx[] = { X1(FSR_NX), X2(FSR_DZ), X4(FSR_UF), @@ -113,7 +113,8 @@ int __fpe_debug = 0; #endif #endif /* FPU_DEBUG */ -static int __fpu_execute(struct utrapframe *, struct fpemu *, u_int32_t, u_long); +static int __fpu_execute(struct utrapframe *, struct fpemu *, u_int32_t, + u_long); /* * Need to use an fpstate on the stack; we could switch, so we cannot safely @@ -169,7 +170,7 @@ __fpu_exception(struct utrapframe *uf) void __fpu_dumpfpn(struct fpn *fp) { - static char *class[] = { + static const char *const class[] = { "SNAN", "QNAN", "ZERO", "NUM", "INF" }; @@ -181,15 +182,11 @@ __fpu_dumpfpn(struct fpn *fp) } #endif -static int opmask[] = {0, 0, 1, 3}; +static const int opmask[] = {0, 0, 1, 3, 1}; /* Decode 5 bit register field depending on the type. */ #define RN_DECODE(tp, rn) \ - ((tp == FTYPE_DBL || tp == FTYPE_EXT ? INSFPdq_RN((rn)) : (rn)) & \ - ~opmask[tp]) - -/* Operand size in 32-bit registers. */ -#define OPSZ(tp) ((tp) == FTYPE_LNG ? 2 : (1 << (tp))) + ((tp) >= FTYPE_DBL ? INSFPdq_RN(rn) & ~opmask[tp] : (rn)) /* * Helper for forming the below case statements. Build only the op3 and opf @@ -209,8 +206,6 @@ static void __fpu_mov(struct fpemu *fe, int type, int rd, int rs2, u_int32_t nand, u_int32_t xor) { - u_int64_t tmp64; - int i; if (type == FTYPE_INT || type == FTYPE_SNG) __fpu_setreg(rd, (__fpu_getreg(rs2) & ~nand) ^ xor); @@ -219,13 +214,10 @@ __fpu_mov(struct fpemu *fe, int type, in * Need to use the double versions to be able to access * the upper 32 fp registers. */ - for (i = 0; i < OPSZ(type); i += 2, rd += 2, rs2 += 2) { - tmp64 = __fpu_getreg64(rs2); - if (i == 0) - tmp64 = (tmp64 & ~((u_int64_t)nand << 32)) ^ - ((u_int64_t)xor << 32); - __fpu_setreg64(rd, tmp64); - } + __fpu_setreg64(rd, (__fpu_getreg64(rs2) & + ~((u_int64_t)nand << 32)) ^ ((u_int64_t)xor << 32)); + if (type == FTYPE_EXT) + __fpu_setreg64(rd + 2, __fpu_getreg64(rs2 + 2)); } } @@ -271,17 +263,17 @@ __fpu_cmpck(struct fpemu *fe) * multiply two integers this way. */ static int -__fpu_execute(struct utrapframe *uf, struct fpemu *fe, u_int32_t insn, u_long tstate) +__fpu_execute(struct utrapframe *uf, struct fpemu *fe, u_int32_t insn, + u_long tstate) { struct fpn *fp; int opf, rs1, rs2, rd, type, mask, cx, cond; u_long reg, fsr; u_int space[4]; - int i; /* * `Decode' and execute instruction. Start with no exceptions. - * The type of any opf opcode is in the bottom two bits, so we + * The type of almost any OPF opcode is in the bottom two bits, so we * squish them out here. */ opf = insn & (IF_MASK(IF_F3_OP3_SHIFT, IF_F3_OP3_BITS) | @@ -359,7 +351,7 @@ __fpu_execute(struct utrapframe *uf, str __fpu_explode(fe, &fe->fe_f2, type, rs2); __fpu_compare(fe, 1, IF_F3_CC(insn)); return (__fpu_cmpck(fe)); - case FOP(INS2_FPop1, INSFP1_FMOV): /* these should all be pretty obvious */ + case FOP(INS2_FPop1, INSFP1_FMOV): __fpu_mov(fe, type, rd, rs2, 0, 0); return (0); case FOP(INS2_FPop1, INSFP1_FNEG): @@ -410,6 +402,7 @@ __fpu_execute(struct utrapframe *uf, str case FOP(INS2_FPop1, INSFP1_FxTOd): case FOP(INS2_FPop1, INSFP1_FxTOq): type = FTYPE_LNG; + rs2 = RN_DECODE(type, IF_F3_RS2(insn)); __fpu_explode(fe, fp = &fe->fe_f1, type, rs2); /* sneaky; depends on instruction encoding */ type = (IF_F3_OPF(insn) >> 2) & 3; @@ -418,8 +411,7 @@ __fpu_execute(struct utrapframe *uf, str case FOP(INS2_FPop1, INSFP1_FTOx): __fpu_explode(fe, fp = &fe->fe_f1, type, rs2); type = FTYPE_LNG; - mask = 1; /* needs 2 registers */ - rd = IF_F3_RD(insn) & ~mask; + rd = RN_DECODE(type, IF_F3_RD(insn)); break; case FOP(INS2_FPop1, INSFP1_FTOs): case FOP(INS2_FPop1, INSFP1_FTOd): @@ -457,10 +449,10 @@ __fpu_execute(struct utrapframe *uf, str if (type == FTYPE_INT || type == FTYPE_SNG) __fpu_setreg(rd, space[0]); else { - for (i = 0; i < OPSZ(type); i += 2) { - __fpu_setreg64(rd + i, ((u_int64_t)space[i] << 32) | - space[i + 1]); - } + __fpu_setreg64(rd, ((u_int64_t)space[0] << 32) | space[1]); + if (type == FTYPE_EXT) + __fpu_setreg64(rd + 2, + ((u_int64_t)space[2] << 32) | space[3]); } return (0); /* success */ } Modified: user/jmallett/octeon/lib/libc/sparc64/fpu/fpu_emu.h ============================================================================== --- user/jmallett/octeon/lib/libc/sparc64/fpu/fpu_emu.h Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/sparc64/fpu/fpu_emu.h Thu Mar 11 22:11:24 2010 (r205044) @@ -140,7 +140,7 @@ struct fpn { #define FTYPE_SNG INSFP_s #define FTYPE_DBL INSFP_d #define FTYPE_EXT INSFP_q -#define FTYPE_LNG -1 +#define FTYPE_LNG 4 /* * Emulator state. Modified: user/jmallett/octeon/lib/libc/stdio/findfp.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/findfp.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/findfp.c Thu Mar 11 22:11:24 2010 (r205044) @@ -61,6 +61,7 @@ int __sdidinit; ._read = __sread, \ ._seek = __sseek, \ ._write = __swrite, \ + ._fl_mutex = PTHREAD_MUTEX_INITIALIZER, \ } /* the usual - (stdin + stdout + stderr) */ static FILE usual[FOPEN_MAX - 3]; @@ -96,7 +97,7 @@ moreglue(n) int n; { struct glue *g; - static FILE empty; + static FILE empty = { ._fl_mutex = PTHREAD_MUTEX_INITIALIZER }; FILE *p; g = (struct glue *)malloc(sizeof(*g) + ALIGNBYTES + n * sizeof(FILE)); @@ -154,7 +155,7 @@ found: fp->_ub._size = 0; fp->_lb._base = NULL; /* no line buffer */ fp->_lb._size = 0; -/* fp->_lock = NULL; */ /* once set always set (reused) */ +/* fp->_fl_mutex = NULL; */ /* once set always set (reused) */ fp->_orientation = 0; memset(&fp->_mbstate, 0, sizeof(mbstate_t)); return (fp); Modified: user/jmallett/octeon/lib/libc/stdio/local.h ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/local.h Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/local.h Thu Mar 11 22:11:24 2010 (r205044) @@ -110,6 +110,14 @@ extern int __sdidinit; } /* + * Structure initializations for 'fake' FILE objects. + */ +#define FAKE_FILE { \ + ._file = -1, \ + ._fl_mutex = PTHREAD_MUTEX_INITIALIZER, \ +} + +/* * Set the orientation for a stream. If o > 0, the stream has wide- * orientation. If o < 0, the stream has byte-orientation. */ Modified: user/jmallett/octeon/lib/libc/stdio/snprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/snprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/snprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -48,7 +48,7 @@ snprintf(char * __restrict str, size_t n size_t on; int ret; va_list ap; - FILE f; + FILE f = FAKE_FILE; on = n; if (n != 0) @@ -56,12 +56,9 @@ snprintf(char * __restrict str, size_t n if (n > INT_MAX) n = INT_MAX; va_start(ap, fmt); - f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = n; - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (on > 0) *f._p = '\0'; Modified: user/jmallett/octeon/lib/libc/stdio/vasprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vasprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vasprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -42,9 +42,8 @@ vasprintf(str, fmt, ap) __va_list ap; { int ret; - FILE f; + FILE f = FAKE_FILE; - f._file = -1; f._flags = __SWR | __SSTR | __SALC; f._bf._base = f._p = (unsigned char *)malloc(128); if (f._bf._base == NULL) { @@ -53,8 +52,6 @@ vasprintf(str, fmt, ap) return (-1); } f._bf._size = f._w = 127; /* Leave room for the NUL */ - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (ret < 0) { free(f._bf._base); Modified: user/jmallett/octeon/lib/libc/stdio/vdprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vdprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vdprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); int vdprintf(int fd, const char * __restrict fmt, va_list ap) { - FILE f; + FILE f = FAKE_FILE; unsigned char buf[BUFSIZ]; int ret; @@ -56,8 +56,6 @@ vdprintf(int fd, const char * __restrict f._write = __swrite; f._bf._base = buf; f._bf._size = sizeof(buf); - f._orientation = 0; - bzero(&f._mbstate, sizeof(f._mbstate)); if ((ret = __vfprintf(&f, fmt, ap)) < 0) return (ret); Modified: user/jmallett/octeon/lib/libc/stdio/vfprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vfprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vfprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -169,7 +169,7 @@ static int __sbprintf(FILE *fp, const char *fmt, va_list ap) { int ret; - FILE fake; + FILE fake = FAKE_FILE; unsigned char buf[BUFSIZ]; /* XXX This is probably not needed. */ Modified: user/jmallett/octeon/lib/libc/stdio/vsnprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vsnprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vsnprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -47,7 +47,7 @@ vsnprintf(char * __restrict str, size_t size_t on; int ret; char dummy[2]; - FILE f; + FILE f = FAKE_FILE; on = n; if (n != 0) @@ -61,12 +61,9 @@ vsnprintf(char * __restrict str, size_t str = dummy; n = 1; } - f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = n; - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); if (on > 0) *f._p = '\0'; Modified: user/jmallett/octeon/lib/libc/stdio/vsprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vsprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vsprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -44,14 +44,11 @@ int vsprintf(char * __restrict str, const char * __restrict fmt, __va_list ap) { int ret; - FILE f; + FILE f = FAKE_FILE; - f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = INT_MAX; - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfprintf(&f, fmt, ap); *f._p = 0; return (ret); Modified: user/jmallett/octeon/lib/libc/stdio/vsscanf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vsscanf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vsscanf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -55,16 +55,11 @@ int vsscanf(const char * __restrict str, const char * __restrict fmt, __va_list ap) { - FILE f; + FILE f = FAKE_FILE; - f._file = -1; f._flags = __SRD; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._r = strlen(str); f._read = eofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); return (__svfscanf(&f, fmt, ap)); } Modified: user/jmallett/octeon/lib/libc/stdio/vswprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vswprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vswprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -45,7 +45,7 @@ vswprintf(wchar_t * __restrict s, size_t { static const mbstate_t initial; mbstate_t mbs; - FILE f; + FILE f = FAKE_FILE; char *mbp; int ret, sverrno; size_t nwc; @@ -55,7 +55,6 @@ vswprintf(wchar_t * __restrict s, size_t return (-1); } - f._file = -1; f._flags = __SWR | __SSTR | __SALC; f._bf._base = f._p = (unsigned char *)malloc(128); if (f._bf._base == NULL) { @@ -63,8 +62,6 @@ vswprintf(wchar_t * __restrict s, size_t return (-1); } f._bf._size = f._w = 127; /* Leave room for the NUL */ - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); ret = __vfwprintf(&f, fmt, ap); if (ret < 0) { sverrno = errno; Modified: user/jmallett/octeon/lib/libc/stdio/vswscanf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/vswscanf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/vswscanf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -62,7 +62,7 @@ vswscanf(const wchar_t * __restrict str, { static const mbstate_t initial; mbstate_t mbs; - FILE f; + FILE f = FAKE_FILE; char *mbstr; size_t mlen; int r; @@ -80,15 +80,10 @@ vswscanf(const wchar_t * __restrict str, free(mbstr); return (EOF); } - f._file = -1; f._flags = __SRD; f._bf._base = f._p = (unsigned char *)mbstr; f._bf._size = f._r = mlen; f._read = eofread; - f._ub._base = NULL; - f._lb._base = NULL; - f._orientation = 0; - memset(&f._mbstate, 0, sizeof(mbstate_t)); r = __vfwscanf(&f, fmt, ap); free(mbstr); Modified: user/jmallett/octeon/lib/libc/stdio/xprintf.c ============================================================================== --- user/jmallett/octeon/lib/libc/stdio/xprintf.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/lib/libc/stdio/xprintf.c Thu Mar 11 22:11:24 2010 (r205044) @@ -48,6 +48,7 @@ #include #include "un-namespace.h" +#include "local.h" #include "printf.h" #include "fvwrite.h" @@ -575,7 +576,7 @@ static int __v3printf(FILE *fp, const char *fmt, int pct, va_list ap) { int ret; - FILE fake; + FILE fake = FAKE_FILE; unsigned char buf[BUFSIZ]; /* copy the important variables */ Modified: user/jmallett/octeon/sbin/nos-tun/Makefile ============================================================================== --- user/jmallett/octeon/sbin/nos-tun/Makefile Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sbin/nos-tun/Makefile Thu Mar 11 22:11:24 2010 (r205044) @@ -1,8 +1,8 @@ # $FreeBSD$ PROG= nos-tun -WARNS?= 0 MAN= nos-tun.8 +WARNS?= 3 .include Modified: user/jmallett/octeon/sbin/nos-tun/nos-tun.c ============================================================================== --- user/jmallett/octeon/sbin/nos-tun/nos-tun.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sbin/nos-tun/nos-tun.c Thu Mar 11 22:11:24 2010 (r205044) @@ -89,7 +89,8 @@ int tun; /* tun static void usage(void); -int Set_address(char *addr, struct sockaddr_in *sin) +static int +Set_address(char *addr, struct sockaddr_in *sin) { struct hostent *hp; @@ -107,15 +108,16 @@ int Set_address(char *addr, struct socka return 0; } -int tun_open(char *devname, struct sockaddr *ouraddr, char *theiraddr) +static int +tun_open(char *dev_name, struct sockaddr *ouraddr, char *theiraddr) { int s; struct sockaddr_in *sin; /* Open tun device */ - tun = open (devname, O_RDWR); + tun = open(dev_name, O_RDWR); if (tun < 0) { - syslog(LOG_ERR,"can't open %s - %m",devname); + syslog(LOG_ERR,"can't open %s - %m", dev_name); return(1); } @@ -125,8 +127,8 @@ int tun_open(char *devname, struct socka bzero((char *)&ifra, sizeof(ifra)); bzero((char *)&ifrq, sizeof(ifrq)); - strncpy(ifrq.ifr_name, devname+5, IFNAMSIZ); - strncpy(ifra.ifra_name, devname+5, IFNAMSIZ); + strncpy(ifrq.ifr_name, dev_name+5, IFNAMSIZ); + strncpy(ifra.ifra_name, dev_name+5, IFNAMSIZ); s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) { @@ -189,7 +191,8 @@ tunc_return: return(1); } -void Finish(int signum) +static void +Finish(int signum) { int s; @@ -238,7 +241,7 @@ int main (int argc, char **argv) { int c, len, ipoff; - char *devname = NULL; + char *dev_name = NULL; char *point_to = NULL; char *to_point = NULL; char *target; @@ -268,7 +271,7 @@ int main (int argc, char **argv) point_to = optarg; break; case 't': - devname = optarg; + dev_name = optarg; break; case 'p': protocol = optarg; @@ -278,7 +281,7 @@ int main (int argc, char **argv) argc -= optind; argv += optind; - if ((argc != 1 && argc != 2) || (devname == NULL) || + if ((argc != 1 && argc != 2) || (dev_name == NULL) || (point_to == NULL) || (to_point == NULL)) { usage(); } @@ -302,7 +305,7 @@ int main (int argc, char **argv) exit(2); } - if(tun_open(devname, &t_laddr, to_point)) { + if(tun_open(dev_name, &t_laddr, to_point)) { closelog(); exit(3); } @@ -386,7 +389,7 @@ int main (int argc, char **argv) } static void -usage() +usage(void) { fprintf(stderr, "usage: nos-tun -t tunnel -s source -d destination -p protocol_number [source] target\n"); Modified: user/jmallett/octeon/secure/libexec/Makefile ============================================================================== --- user/jmallett/octeon/secure/libexec/Makefile Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/secure/libexec/Makefile Thu Mar 11 22:11:24 2010 (r205044) @@ -4,7 +4,7 @@ SUBDIR= .if ${MK_OPENSSH} != "no" -SUBDIR+=sftp-server ssh-keysign +SUBDIR+=sftp-server ssh-keysign ssh-pkcs11-helper .endif .include Copied: user/jmallett/octeon/secure/libexec/ssh-pkcs11-helper/Makefile (from r205041, head/secure/libexec/ssh-pkcs11-helper/Makefile) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/secure/libexec/ssh-pkcs11-helper/Makefile Thu Mar 11 22:11:24 2010 (r205044, copy of r205041, head/secure/libexec/ssh-pkcs11-helper/Makefile) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +PROG= ssh-pkcs11-helper +SRCS= ssh-pkcs11.c ssh-pkcs11-helper.c +SRCS+= roaming_dummy.c +MAN= ssh-pkcs11-helper.8 +CFLAGS+=-I${SSHDIR} -include ssh_namespace.h + +DPADD= ${LIBSSH} ${LIBCRYPT} ${LIBCRYPTO} ${LIBZ} +LDADD= -lssh -lcrypt -lcrypto -lz + +.include + +.PATH: ${SSHDIR} + +${OBJS} ${POBJS} ${SOBJS}: ssh_namespace.h Modified: user/jmallett/octeon/sys/amd64/amd64/db_trace.c ============================================================================== --- user/jmallett/octeon/sys/amd64/amd64/db_trace.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/amd64/db_trace.c Thu Mar 11 22:11:24 2010 (r205044) @@ -319,7 +319,7 @@ db_nextframe(struct amd64_frame **fp, db frame_type = INTERRUPT; else if (strcmp(name, "Xfast_syscall") == 0) frame_type = SYSCALL; -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 else if (strcmp(name, "Xint0x80_syscall") == 0) frame_type = SYSCALL; #endif Modified: user/jmallett/octeon/sys/amd64/amd64/exception.S ============================================================================== --- user/jmallett/octeon/sys/amd64/amd64/exception.S Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/amd64/exception.S Thu Mar 11 22:11:24 2010 (r205044) @@ -572,7 +572,7 @@ ENTRY(fork_trampoline) * included. */ -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 .data .p2align 4 .text Modified: user/jmallett/octeon/sys/amd64/amd64/identcpu.c ============================================================================== --- user/jmallett/octeon/sys/amd64/amd64/identcpu.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/amd64/identcpu.c Thu Mar 11 22:11:24 2010 (r205044) @@ -187,7 +187,9 @@ printcpuinfo(void) if (cpu_vendor_id == CPU_VENDOR_INTEL || cpu_vendor_id == CPU_VENDOR_AMD || cpu_vendor_id == CPU_VENDOR_CENTAUR) { - printf(" Stepping = %u", cpu_id & 0xf); + printf(" Family = %x", CPUID_TO_FAMILY(cpu_id)); + printf(" Model = %x", CPUID_TO_MODEL(cpu_id)); + printf(" Stepping = %u", cpu_id & CPUID_STEPPING); if (cpu_high > 0) { /* Modified: user/jmallett/octeon/sys/amd64/amd64/pmap.c ============================================================================== --- user/jmallett/octeon/sys/amd64/amd64/pmap.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/amd64/pmap.c Thu Mar 11 22:11:24 2010 (r205044) @@ -1105,7 +1105,8 @@ pmap_invalidate_cache_range(vm_offset_t if (cpu_feature & CPUID_SS) ; /* If "Self Snoop" is supported, do nothing. */ - else if (cpu_feature & CPUID_CLFSH) { + else if ((cpu_feature & CPUID_CLFSH) != 0 && + eva - sva < 2 * 1024 * 1024) { /* * Otherwise, do per-cache line flush. Use the mfence @@ -1122,7 +1123,8 @@ pmap_invalidate_cache_range(vm_offset_t /* * No targeted cache flush methods are supported by CPU, - * globally invalidate cache as a last resort. + * or the supplied range is bigger then 2MB. + * Globally invalidate cache. */ pmap_invalidate_cache(); } Modified: user/jmallett/octeon/sys/amd64/amd64/vm_machdep.c ============================================================================== --- user/jmallett/octeon/sys/amd64/amd64/vm_machdep.c Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/amd64/vm_machdep.c Thu Mar 11 22:11:24 2010 (r205044) @@ -439,7 +439,7 @@ cpu_set_upcall_kse(struct thread *td, vo */ cpu_thread_clean(td); -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 if (td->td_proc->p_sysent->sv_flags & SV_ILP32) { /* * Set the trap frame to point at the beginning of the uts @@ -490,7 +490,7 @@ cpu_set_user_tls(struct thread *td, void if ((u_int64_t)tls_base >= VM_MAXUSER_ADDRESS) return (EINVAL); -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 if (td->td_proc->p_sysent->sv_flags & SV_ILP32) { td->td_pcb->pcb_gsbase = (register_t)tls_base; return (0); Modified: user/jmallett/octeon/sys/amd64/conf/GENERIC ============================================================================== --- user/jmallett/octeon/sys/amd64/conf/GENERIC Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/conf/GENERIC Thu Mar 11 22:11:24 2010 (r205044) @@ -45,7 +45,7 @@ options PSEUDOFS # Pseudo-filesystem f options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) -options COMPAT_IA32 # Compatible with i386 binaries +options COMPAT_FREEBSD32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 Modified: user/jmallett/octeon/sys/amd64/conf/NOTES ============================================================================== --- user/jmallett/octeon/sys/amd64/conf/NOTES Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/conf/NOTES Thu Mar 11 22:11:24 2010 (r205044) @@ -483,7 +483,7 @@ options PMAP_SHPGPERPROC=201 #XXX these 32 bit binaries is added. # Enable 32-bit runtime support for FreeBSD/i386 binaries. -options COMPAT_IA32 +options COMPAT_FREEBSD32 # Enable iBCS2 runtime support for SCO and ISC binaries #XXX#options IBCS2 @@ -494,7 +494,7 @@ options COMPAT_IA32 # Enable Linux ABI emulation #XXX#options COMPAT_LINUX -# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_IA32) +# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32) options COMPAT_LINUX32 # Enable the linux-like proc filesystem support (requires COMPAT_LINUX32 Modified: user/jmallett/octeon/sys/amd64/conf/XENHVM ============================================================================== --- user/jmallett/octeon/sys/amd64/conf/XENHVM Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/conf/XENHVM Thu Mar 11 22:11:24 2010 (r205044) @@ -46,7 +46,7 @@ options PSEUDOFS # Pseudo-filesystem f options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) -options COMPAT_IA32 # Compatible with i386 binaries +options COMPAT_FREEBSD32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 Modified: user/jmallett/octeon/sys/amd64/include/elf.h ============================================================================== --- user/jmallett/octeon/sys/amd64/include/elf.h Thu Mar 11 22:09:21 2010 (r205043) +++ user/jmallett/octeon/sys/amd64/include/elf.h Thu Mar 11 22:11:24 2010 (r205044) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***