Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/i386/include Explain what is going on with the 64 b...



details:   https://anonhg.NetBSD.org/src/rev/5a98f90ad200
branches:  trunk
changeset: 328926:5a98f90ad200
user:      christos <christos%NetBSD.org@localhost>
date:      Thu Apr 24 19:23:00 2014 +0000

description:
Explain what is going on with the 64 bit atomic ops, and restore them
for pure kernel use.

diffstat:

 sys/arch/i386/include/types.h |  10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diffs (25 lines):

diff -r 4bdd6c94859d -r 5a98f90ad200 sys/arch/i386/include/types.h
--- a/sys/arch/i386/include/types.h     Thu Apr 24 18:43:02 2014 +0000
+++ b/sys/arch/i386/include/types.h     Thu Apr 24 19:23:00 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: types.h,v 1.78 2014/04/22 14:09:19 christos Exp $      */
+/*     $NetBSD: types.h,v 1.79 2014/04/24 19:23:00 christos Exp $      */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -109,10 +109,12 @@
 #define        __HAVE_SYSCALL_INTERN
 #define        __HAVE_MINIMAL_EMUL
 #define        __HAVE_OLD_DISKLABEL
-#if 0
+#if defined(_KERNEL) && !defined(_RUMPKERNEL) && !defined(_RUMP_NATIVE_ABI)
 /*
- * < i586 does not have cmpxchg8b, and we compile for i486 by default.
- * Atomic64 ops are not currently used in the kernel.
+ * Processors < i586 do not have cmpxchg8b, and we compile for i486
+ * by default in userland. The kernel tsc driver uses them though,
+ * and handles < i586 * by patching. We don't want to expose them in
+ * userland, that is why we exclude rump.
  */
 #define __HAVE_ATOMIC64_OPS
 #endif



Home | Main Index | Thread Index | Old Index