1 #ifndef __ASM_TRACE_USER_H 2 #define __ASM_TRACE_USER_H 8 #define __TRACE_INTR_H_REV "\ 9 $RCSfile: trace_intr.h,v $(i386)\ 11 $Date: 2009/10/09 20:03:00 $" 19 #define TRACE_VECTOR 0x82 23 #include <linux/version.h> 24 #include <linux/linkage.h> 27 trace_interrupt_init(
void );
29 extern struct desc_struct idt_table[256];
31 #define GET_ESP ({register unsigned int _r_;\ 32 __asm__ __volatile__( "mov %%esp,%%eax":"=a"(_r_) );_r_;}) 36 # define STR( x ) __STR(x) 39 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) 40 # define SYMBOL_NAME_STR(X) #X 43 #define BUILD_TRACE_INTERRUPT( handler ) \ 44 asmlinkage void trace_interrupt( void );\ 45 __asm__( "\n"__ALIGN_STR"\n"\ 46 SYMBOL_NAME_STR(trace_interrupt) ":\n\t"\ 58 "movl $" STR(__KERNEL_DS) ",%edx\n\t" \ 64 "call "SYMBOL_NAME_STR(handler)"\n\t"\ static void trace_function(struct timeval *time, int tid,...)