/*1* Trampoline to trace irqs off. (otherwise CALLER_ADDR1 might crash)2* Copyright 2008 by Steven Rostedt, Red Hat, Inc3* (inspired by Andi Kleen's thunk_64.S)4* Subject to the GNU public license, v.2. No warranty of any kind.5*/67#include <linux/linkage.h>89#ifdef CONFIG_TRACE_IRQFLAGS10/* put return address in eax (arg1) */11.macro thunk_ra name,func12.globl \name13\name:14pushl %eax15pushl %ecx16pushl %edx17/* Place EIP in the arg1 */18movl 3*4(%esp), %eax19call \func20popl %edx21popl %ecx22popl %eax23ret24.endm2526thunk_ra trace_hardirqs_on_thunk,trace_hardirqs_on_caller27thunk_ra trace_hardirqs_off_thunk,trace_hardirqs_off_caller28#endif293031