1*9ed24f4bSMarc Zyngier /* SPDX-License-Identifier: GPL-2.0 */ 2*9ed24f4bSMarc Zyngier #if !defined(_TRACE_VGIC_H) || defined(TRACE_HEADER_MULTI_READ) 3*9ed24f4bSMarc Zyngier #define _TRACE_VGIC_H 4*9ed24f4bSMarc Zyngier 5*9ed24f4bSMarc Zyngier #include <linux/tracepoint.h> 6*9ed24f4bSMarc Zyngier 7*9ed24f4bSMarc Zyngier #undef TRACE_SYSTEM 8*9ed24f4bSMarc Zyngier #define TRACE_SYSTEM kvm 9*9ed24f4bSMarc Zyngier 10*9ed24f4bSMarc Zyngier TRACE_EVENT(vgic_update_irq_pending, 11*9ed24f4bSMarc Zyngier TP_PROTO(unsigned long vcpu_id, __u32 irq, bool level), 12*9ed24f4bSMarc Zyngier TP_ARGS(vcpu_id, irq, level), 13*9ed24f4bSMarc Zyngier 14*9ed24f4bSMarc Zyngier TP_STRUCT__entry( 15*9ed24f4bSMarc Zyngier __field( unsigned long, vcpu_id ) 16*9ed24f4bSMarc Zyngier __field( __u32, irq ) 17*9ed24f4bSMarc Zyngier __field( bool, level ) 18*9ed24f4bSMarc Zyngier ), 19*9ed24f4bSMarc Zyngier 20*9ed24f4bSMarc Zyngier TP_fast_assign( 21*9ed24f4bSMarc Zyngier __entry->vcpu_id = vcpu_id; 22*9ed24f4bSMarc Zyngier __entry->irq = irq; 23*9ed24f4bSMarc Zyngier __entry->level = level; 24*9ed24f4bSMarc Zyngier ), 25*9ed24f4bSMarc Zyngier 26*9ed24f4bSMarc Zyngier TP_printk("VCPU: %ld, IRQ %d, level: %d", 27*9ed24f4bSMarc Zyngier __entry->vcpu_id, __entry->irq, __entry->level) 28*9ed24f4bSMarc Zyngier ); 29*9ed24f4bSMarc Zyngier 30*9ed24f4bSMarc Zyngier #endif /* _TRACE_VGIC_H */ 31*9ed24f4bSMarc Zyngier 32*9ed24f4bSMarc Zyngier #undef TRACE_INCLUDE_PATH 33*9ed24f4bSMarc Zyngier #define TRACE_INCLUDE_PATH ../../arch/arm64/kvm/vgic 34*9ed24f4bSMarc Zyngier #undef TRACE_INCLUDE_FILE 35*9ed24f4bSMarc Zyngier #define TRACE_INCLUDE_FILE trace 36*9ed24f4bSMarc Zyngier 37*9ed24f4bSMarc Zyngier /* This part must be outside protection */ 38*9ed24f4bSMarc Zyngier #include <trace/define_trace.h> 39