Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
Zhonghui Fu | 431d452 | 2015-03-18 15:54:27 +0100 | [diff] [blame] | 2 | #ifndef _ASM_X86_PM_TRACE_H |
| 3 | #define _ASM_X86_PM_TRACE_H |
Thomas Gleixner | 3578fac | 2008-01-30 13:30:38 +0100 | [diff] [blame] | 4 | |
| 5 | #include <asm/asm.h> |
| 6 | |
Joe Perches | c6fd5d4 | 2008-03-23 01:03:19 -0700 | [diff] [blame] | 7 | #define TRACE_RESUME(user) \ |
| 8 | do { \ |
Thomas Gleixner | 3578fac | 2008-01-30 13:30:38 +0100 | [diff] [blame] | 9 | if (pm_trace_enabled) { \ |
Jan Beulich | 63687a5 | 2008-05-12 15:44:41 +0200 | [diff] [blame] | 10 | const void *tracedata; \ |
H. Peter Anvin | 8df9676 | 2008-08-18 18:13:33 -0700 | [diff] [blame] | 11 | asm volatile(_ASM_MOV " $1f,%0\n" \ |
Joe Perches | c6fd5d4 | 2008-03-23 01:03:19 -0700 | [diff] [blame] | 12 | ".section .tracedata,\"a\"\n" \ |
| 13 | "1:\t.word %c1\n\t" \ |
| 14 | _ASM_PTR " %c2\n" \ |
| 15 | ".previous" \ |
| 16 | :"=r" (tracedata) \ |
| 17 | : "i" (__LINE__), "i" (__FILE__)); \ |
Zhonghui Fu | 431d452 | 2015-03-18 15:54:27 +0100 | [diff] [blame] | 18 | generate_pm_trace(tracedata, user); \ |
Thomas Gleixner | 3578fac | 2008-01-30 13:30:38 +0100 | [diff] [blame] | 19 | } \ |
| 20 | } while (0) |
| 21 | |
Zhonghui Fu | 431d452 | 2015-03-18 15:54:27 +0100 | [diff] [blame] | 22 | #define TRACE_SUSPEND(user) TRACE_RESUME(user) |
| 23 | |
| 24 | #endif /* _ASM_X86_PM_TRACE_H */ |