|  | #undef TRACE_SYSTEM | 
|  | #define TRACE_SYSTEM mce | 
|  |  | 
|  | #if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ) | 
|  | #define _TRACE_MCE_H | 
|  |  | 
|  | #include <linux/ktime.h> | 
|  | #include <linux/tracepoint.h> | 
|  | #include <asm/mce.h> | 
|  |  | 
|  | TRACE_EVENT(mce_record, | 
|  |  | 
|  | TP_PROTO(struct mce *m), | 
|  |  | 
|  | TP_ARGS(m), | 
|  |  | 
|  | TP_STRUCT__entry( | 
|  | __field(	u64,		mcgcap		) | 
|  | __field(	u64,		mcgstatus	) | 
|  | __field(	u8,		bank		) | 
|  | __field(	u64,		status		) | 
|  | __field(	u64,		addr		) | 
|  | __field(	u64,		misc		) | 
|  | __field(	u64,		ip		) | 
|  | __field(	u8,		cs		) | 
|  | __field(	u64,		tsc		) | 
|  | __field(	u64,		walltime	) | 
|  | __field(	u32,		cpu		) | 
|  | __field(	u32,		cpuid		) | 
|  | __field(	u32,		apicid		) | 
|  | __field(	u32,		socketid	) | 
|  | __field(	u8,		cpuvendor	) | 
|  | ), | 
|  |  | 
|  | TP_fast_assign( | 
|  | __entry->mcgcap		= m->mcgcap; | 
|  | __entry->mcgstatus	= m->mcgstatus; | 
|  | __entry->bank		= m->bank; | 
|  | __entry->status		= m->status; | 
|  | __entry->addr		= m->addr; | 
|  | __entry->misc		= m->misc; | 
|  | __entry->ip		= m->ip; | 
|  | __entry->cs		= m->cs; | 
|  | __entry->tsc		= m->tsc; | 
|  | __entry->walltime	= m->time; | 
|  | __entry->cpu		= m->extcpu; | 
|  | __entry->cpuid		= m->cpuid; | 
|  | __entry->apicid		= m->apicid; | 
|  | __entry->socketid	= m->socketid; | 
|  | __entry->cpuvendor	= m->cpuvendor; | 
|  | ), | 
|  |  | 
|  | TP_printk("CPU: %d, MCGc/s: %llx/%llx, MC%d: %016Lx, ADDR/MISC: %016Lx/%016Lx, RIP: %02x:<%016Lx>, TSC: %llx, PROCESSOR: %u:%x, TIME: %llu, SOCKET: %u, APIC: %x", | 
|  | __entry->cpu, | 
|  | __entry->mcgcap, __entry->mcgstatus, | 
|  | __entry->bank, __entry->status, | 
|  | __entry->addr, __entry->misc, | 
|  | __entry->cs, __entry->ip, | 
|  | __entry->tsc, | 
|  | __entry->cpuvendor, __entry->cpuid, | 
|  | __entry->walltime, | 
|  | __entry->socketid, | 
|  | __entry->apicid) | 
|  | ); | 
|  |  | 
|  | #endif /* _TRACE_MCE_H */ | 
|  |  | 
|  | /* This part must be outside protection */ | 
|  | #include <trace/define_trace.h> |