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...
Juli Mallett
jmallett at FreeBSD.org
Thu Mar 11 22:11:25 UTC 2010
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 <wchar.h>
#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 <bsd.prog.mk>
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 <bsd.subdir.mk>
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 <bsd.prog.mk>
+
+.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 ***
More information about the svn-src-user
mailing list