summaryrefslogtreecommitdiff
path: root/usr/src/uts/i86pc/os/machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/i86pc/os/machdep.c')
-rw-r--r--usr/src/uts/i86pc/os/machdep.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/usr/src/uts/i86pc/os/machdep.c b/usr/src/uts/i86pc/os/machdep.c
index c9f97fc046..e9d08a9fa7 100644
--- a/usr/src/uts/i86pc/os/machdep.c
+++ b/usr/src/uts/i86pc/os/machdep.c
@@ -23,6 +23,10 @@
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/*
+ * Copyright (c) 2010, Intel Corporation.
+ * All rights reserved.
+ */
#include <sys/types.h>
#include <sys/t_lock.h>
@@ -147,6 +151,16 @@ int force_shutdown_method = AD_UNKNOWN;
char panicbuf[PANICBUFSIZE];
/*
+ * Flags to control Dynamic Reconfiguration features.
+ */
+uint64_t plat_dr_options;
+
+/*
+ * Maximum physical address for memory DR operations.
+ */
+uint64_t plat_dr_physmax;
+
+/*
* maxphys - used during physio
* klustsize - used for klustering by swapfs and specfs
*/
@@ -1390,3 +1404,33 @@ lbolt_softint_post(void)
{
(*setsoftint)(CBE_LOCK_PIL, lbolt_softint_hdl.ih_pending);
}
+
+boolean_t
+plat_dr_check_capability(uint64_t features)
+{
+ return ((plat_dr_options & features) == features);
+}
+
+boolean_t
+plat_dr_support_cpu(void)
+{
+ return (plat_dr_options & PLAT_DR_FEATURE_CPU);
+}
+
+boolean_t
+plat_dr_support_memory(void)
+{
+ return (plat_dr_options & PLAT_DR_FEATURE_MEMORY);
+}
+
+void
+plat_dr_enable_capability(uint64_t features)
+{
+ atomic_or_64(&plat_dr_options, features);
+}
+
+void
+plat_dr_disable_capability(uint64_t features)
+{
+ atomic_and_64(&plat_dr_options, ~features);
+}