1 #ifndef INTC_H 2 #define INTC_H 3 4 #include "qom/object.h" 5 6 #define TYPE_INTERRUPT_STATS_PROVIDER "intctrl" 7 8 #define INTERRUPT_STATS_PROVIDER_CLASS(klass) \ 9 OBJECT_CLASS_CHECK(InterruptStatsProviderClass, (klass), \ 10 TYPE_INTERRUPT_STATS_PROVIDER) 11 #define INTERRUPT_STATS_PROVIDER_GET_CLASS(obj) \ 12 OBJECT_GET_CLASS(InterruptStatsProviderClass, (obj), \ 13 TYPE_INTERRUPT_STATS_PROVIDER) 14 #define INTERRUPT_STATS_PROVIDER(obj) \ 15 INTERFACE_CHECK(InterruptStatsProvider, (obj), \ 16 TYPE_INTERRUPT_STATS_PROVIDER) 17 18 typedef struct InterruptStatsProvider InterruptStatsProvider; 19 20 typedef struct InterruptStatsProviderClass { 21 InterfaceClass parent; 22 23 /* The returned pointer and statistics must remain valid until 24 * the BQL is next dropped. 25 */ 26 bool (*get_statistics)(InterruptStatsProvider *obj, uint64_t **irq_counts, 27 unsigned int *nb_irqs); 28 void (*print_info)(InterruptStatsProvider *obj, Monitor *mon); 29 } InterruptStatsProviderClass; 30 31 #endif 32