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