diff options
Diffstat (limited to 'include/asm-x86')
-rw-r--r-- | include/asm-x86/processor.h | 7 | ||||
-rw-r--r-- | include/asm-x86/thread_info_64.h | 4 | ||||
-rw-r--r-- | include/asm-x86/tsc.h | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h index 6e26c7c717a2..eaf4548a23d2 100644 --- a/include/asm-x86/processor.h +++ b/include/asm-x86/processor.h | |||
@@ -918,4 +918,11 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip, | |||
918 | 918 | ||
919 | #define KSTK_EIP(task) (task_pt_regs(task)->ip) | 919 | #define KSTK_EIP(task) (task_pt_regs(task)->ip) |
920 | 920 | ||
921 | /* Get/set a process' ability to use the timestamp counter instruction */ | ||
922 | #define GET_TSC_CTL(adr) get_tsc_mode((adr)) | ||
923 | #define SET_TSC_CTL(val) set_tsc_mode((val)) | ||
924 | |||
925 | extern int get_tsc_mode(unsigned long adr); | ||
926 | extern int set_tsc_mode(unsigned int val); | ||
927 | |||
921 | #endif | 928 | #endif |
diff --git a/include/asm-x86/thread_info_64.h b/include/asm-x86/thread_info_64.h index 1e5c6f6152cd..b17f5f6c2c59 100644 --- a/include/asm-x86/thread_info_64.h +++ b/include/asm-x86/thread_info_64.h | |||
@@ -126,6 +126,7 @@ static inline struct thread_info *stack_thread_info(void) | |||
126 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ | 126 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ |
127 | #define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */ | 127 | #define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */ |
128 | #define TIF_BTS_TRACE_TS 27 /* record scheduling event timestamps */ | 128 | #define TIF_BTS_TRACE_TS 27 /* record scheduling event timestamps */ |
129 | #define TIF_NOTSC 28 /* TSC is not accessible in userland */ | ||
129 | 130 | ||
130 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | 131 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
131 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | 132 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) |
@@ -147,6 +148,7 @@ static inline struct thread_info *stack_thread_info(void) | |||
147 | #define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR) | 148 | #define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR) |
148 | #define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR) | 149 | #define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR) |
149 | #define _TIF_BTS_TRACE_TS (1 << TIF_BTS_TRACE_TS) | 150 | #define _TIF_BTS_TRACE_TS (1 << TIF_BTS_TRACE_TS) |
151 | #define _TIF_NOTSC (1 << TIF_NOTSC) | ||
150 | 152 | ||
151 | /* work to do on interrupt/exception return */ | 153 | /* work to do on interrupt/exception return */ |
152 | #define _TIF_WORK_MASK \ | 154 | #define _TIF_WORK_MASK \ |
@@ -160,7 +162,7 @@ static inline struct thread_info *stack_thread_info(void) | |||
160 | 162 | ||
161 | /* flags to check in __switch_to() */ | 163 | /* flags to check in __switch_to() */ |
162 | #define _TIF_WORK_CTXSW \ | 164 | #define _TIF_WORK_CTXSW \ |
163 | (_TIF_IO_BITMAP|_TIF_DEBUGCTLMSR|_TIF_DS_AREA_MSR|_TIF_BTS_TRACE_TS) | 165 | (_TIF_IO_BITMAP|_TIF_DEBUGCTLMSR|_TIF_DS_AREA_MSR|_TIF_BTS_TRACE_TS|_TIF_NOTSC) |
164 | #define _TIF_WORK_CTXSW_PREV _TIF_WORK_CTXSW | 166 | #define _TIF_WORK_CTXSW_PREV _TIF_WORK_CTXSW |
165 | #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG) | 167 | #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG) |
166 | 168 | ||
diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h index d2d8eb5b55f5..0434bd8349a7 100644 --- a/include/asm-x86/tsc.h +++ b/include/asm-x86/tsc.h | |||
@@ -18,6 +18,7 @@ extern unsigned int cpu_khz; | |||
18 | extern unsigned int tsc_khz; | 18 | extern unsigned int tsc_khz; |
19 | 19 | ||
20 | extern void disable_TSC(void); | 20 | extern void disable_TSC(void); |
21 | extern void enable_TSC(void); | ||
21 | 22 | ||
22 | static inline cycles_t get_cycles(void) | 23 | static inline cycles_t get_cycles(void) |
23 | { | 24 | { |