1 #if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define TRACE_SYSTEM kvm
10 #define TRACE_INCLUDE_PATH .
11 #undef TRACE_INCLUDE_FILE
12 #define TRACE_INCLUDE_FILE trace
18 #define VCPU_PROTO_COMMON struct kvm_vcpu *vcpu
19 #define VCPU_ARGS_COMMON vcpu
20 #define VCPU_FIELD_COMMON __field(int, id) \
21 __field(unsigned long, pswmask) \
22 __field(unsigned long, pswaddr)
23 #define VCPU_ASSIGN_COMMON do { \
24 __entry->id = vcpu->vcpu_id; \
25 __entry->pswmask = vcpu->arch.sie_block->gpsw.mask; \
26 __entry->pswaddr = vcpu->arch.sie_block->gpsw.addr; \
28 #define VCPU_TP_PRINTK(p_str, p_args...) \
29 TP_printk("%02d[%016lx-%016lx]: " p_str, __entry->id, \
30 __entry->pswmask, __entry->pswaddr, p_args)
67 #define sie_intercept_code \
68 {0x04, "Instruction"}, \
69 {0x08, "Program interruption"}, \
70 {0x0C, "Instruction and program interuption"}, \
71 {0x10, "External request"}, \
72 {0x14, "External interruption"}, \
73 {0x18, "I/O request"}, \
74 {0x1C, "Wait state"}, \
76 {0x28, "Stop request"}
169 #define sigp_order_codes \
170 {SIGP_SENSE, "sense"}, \
171 {SIGP_EXTERNAL_CALL, "external call"}, \
172 {SIGP_EMERGENCY_SIGNAL, "emergency signal"}, \
173 {SIGP_STOP, "stop"}, \
174 {SIGP_STOP_AND_STORE_STATUS, "stop and store status"}, \
175 {SIGP_SET_ARCHITECTURE, "set architecture"}, \
176 {SIGP_SET_PREFIX, "set prefix"}, \
177 {SIGP_SENSE_RUNNING, "sense running"}, \
178 {SIGP_RESTART, "restart"}
194 __entry->order_code = order_code;
196 __entry->parameter = parameter;
199 VCPU_TP_PRINTK(
"handle sigp order %02x (%s), cpu address %04x, " \
200 "parameter %08x",
__entry->order_code,
206 #define diagnose_codes \
207 {0x10, "release pages"}, \
208 {0x44, "time slice end"}, \
209 {0x308, "ipl functions"}, \
210 {0x500, "kvm hypercall"}, \
211 {0x501, "kvm breakpoint"}
273 __entry->set ?
"setting" :
"storing",
301 __field(
unsigned int, facility_list)
306 __entry->facility_list = facility_list;