summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/cpuvar.h
diff options
context:
space:
mode:
authorJonathan Haslam <Jonathan.Haslam@Sun.COM>2009-02-13 07:13:13 +0000
committerJonathan Haslam <Jonathan.Haslam@Sun.COM>2009-02-13 07:13:13 +0000
commitb9e93c10c0a2a4bb069d38bb311021a9478c4711 (patch)
tree8a82dbbc533447409d902987f543b2ad72e8e78a /usr/src/uts/common/sys/cpuvar.h
parent2e5e9e19867a0d75685f5beb2fe1b0e31491d49b (diff)
downloadillumos-joyent-b9e93c10c0a2a4bb069d38bb311021a9478c4711.tar.gz
PSARC 2008/480 DTrace CPC Provider
6486156 DTrace cpc provider
Diffstat (limited to 'usr/src/uts/common/sys/cpuvar.h')
-rw-r--r--usr/src/uts/common/sys/cpuvar.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/usr/src/uts/common/sys/cpuvar.h b/usr/src/uts/common/sys/cpuvar.h
index 69e324ffa6..2d056fa6ab 100644
--- a/usr/src/uts/common/sys/cpuvar.h
+++ b/usr/src/uts/common/sys/cpuvar.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -211,6 +211,9 @@ typedef struct cpu {
uint64_t cpu_curr_clock; /* current clock freq in Hz */
char *cpu_supp_freqs; /* supported freqs in Hz */
+ uintptr_t cpu_cpcprofile_pc; /* kernel PC in cpc interrupt */
+ uintptr_t cpu_cpcprofile_upc; /* user PC in cpc interrupt */
+
/*
* Interrupt load factor used by dispatcher & softcall
*/
@@ -240,12 +243,13 @@ typedef struct cpu {
* is up to the platform to assure that this is performed properly. Note that
* the structure is sized to avoid false sharing.
*/
-#define CPUC_SIZE (sizeof (uint16_t) + sizeof (uintptr_t) + \
- sizeof (kmutex_t))
+#define CPUC_SIZE (sizeof (uint16_t) + sizeof (uint8_t) + \
+ sizeof (uintptr_t) + sizeof (kmutex_t))
#define CPUC_PADSIZE CPU_CACHE_COHERENCE_SIZE - CPUC_SIZE
typedef struct cpu_core {
uint16_t cpuc_dtrace_flags; /* DTrace flags */
+ uint8_t cpuc_dcpc_intr_state; /* DCPC provider intr state */
uint8_t cpuc_pad[CPUC_PADSIZE]; /* padding */
uintptr_t cpuc_dtrace_illval; /* DTrace illegal value */
kmutex_t cpuc_pid_lock; /* DTrace pid provider lock */
@@ -715,7 +719,8 @@ typedef enum {
CPU_ON,
CPU_OFF,
CPU_CPUPART_IN,
- CPU_CPUPART_OUT
+ CPU_CPUPART_OUT,
+ CPU_SETUP
} cpu_setup_t;
typedef int cpu_setup_func_t(cpu_setup_t, int, void *);