summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/sys/cpu.h
diff options
context:
space:
mode:
authorjohnlev <none@none>2007-09-18 15:46:43 -0700
committerjohnlev <none@none>2007-09-18 15:46:43 -0700
commit843e19887f64dde75055cf8842fc4db2171eff45 (patch)
tree4ab8a445a86736e31e88b22413d080cc29f89aa0 /usr/src/uts/intel/sys/cpu.h
parent3d318c665ed0c4b4170851459cc58b3386bfec9b (diff)
downloadillumos-joyent-843e19887f64dde75055cf8842fc4db2171eff45.tar.gz
PSARC 2006/260 Solaris on Xen
PSARC 2007/155 IPv4 Network Configuration Enhancements for Xen Guest Domains 6424124 panic in intr_thread->av_dispatch_autovect->atomic_add_ptr 6496858 mdb could use a memory-based IO backend 6515319 workaround for 6491065 needs to be removed from elfextract.c 6518807 snv_nightly: SUNWcakr pkgck error 6551858 PSARC 2006/260 Solaris on Xen 6584697 Can't boot Xen / Solaris dom0 if root is using ZFS 6593429 usr/src/cmd/devfsadm isn't linting properly 6600359 mdb_kvm_intrframe() is unused 6600750 can remove 'u' workaround from zlib 6601465 /dev/lofictl needs to accept kernel ioctl 6604043 Erronous ASSERT in sdev_vnops.c ASSERT(VTOSDEV(vp)->sdev_attrvp); --HG-- rename : usr/src/common/util/memset.h => deleted_files/usr/src/common/util/memset.h rename : usr/src/uts/common/krtld/mapfile => deleted_files/usr/src/uts/common/krtld/mapfile rename : usr/src/uts/i86pc/boot/boot_keyboard.h => deleted_files/usr/src/uts/i86pc/boot/boot_keyboard.h rename : usr/src/uts/intel/io/i8254.c => usr/src/uts/i86pc/io/microfind.c rename : usr/src/uts/i86pc/cpunex/Makefile => usr/src/uts/intel/cpunex/Makefile rename : usr/src/uts/i86pc/io/cpunex.c => usr/src/uts/intel/io/cpunex.c
Diffstat (limited to 'usr/src/uts/intel/sys/cpu.h')
-rw-r--r--usr/src/uts/intel/sys/cpu.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/usr/src/uts/intel/sys/cpu.h b/usr/src/uts/intel/sys/cpu.h
index 8f4d5af138..9a4217d1ee 100644
--- a/usr/src/uts/intel/sys/cpu.h
+++ b/usr/src/uts/intel/sys/cpu.h
@@ -39,9 +39,15 @@
*/
#include <sys/bustypes.h>
#include <sys/inttypes.h>
-#if defined(__GNUC__) && defined(_ASM_INLINES) && defined(_KERNEL)
+
+#if defined(_KERNEL)
+#if defined(__xpv)
+#include <sys/hypervisor.h>
+#endif
+#if defined(__GNUC__) && defined(_ASM_INLINES)
#include <asm/cpu.h>
#endif
+#endif /* _KERNEL */
#ifdef __cplusplus
extern "C" {
@@ -59,7 +65,19 @@ extern void i86_mwait(uint32_t data, uint32_t extensions);
/*
* Used to insert cpu-dependent instructions into spin loops
*/
+#if defined(__xpv)
+extern int xpv_panicking;
+#define SMT_PAUSE() \
+ { \
+ if (IN_XPV_PANIC()) \
+ ht_pause(); \
+ else \
+ (void) HYPERVISOR_yield(); \
+ }
+
+#else
#define SMT_PAUSE() ht_pause()
+#endif
#endif /* _KERNEL */