xref: /openbmc/qemu/include/hw/intc/goldfish_pic.h (revision 65b4c8c7)
187855593SLaurent Vivier /*
2*65b4c8c7SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
387855593SLaurent Vivier  *
487855593SLaurent Vivier  * Goldfish PIC
587855593SLaurent Vivier  *
687855593SLaurent Vivier  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
787855593SLaurent Vivier  *
887855593SLaurent Vivier  */
987855593SLaurent Vivier 
1087855593SLaurent Vivier #ifndef HW_INTC_GOLDFISH_PIC_H
1187855593SLaurent Vivier #define HW_INTC_GOLDFISH_PIC_H
1287855593SLaurent Vivier 
1387855593SLaurent Vivier #define TYPE_GOLDFISH_PIC "goldfish_pic"
1487855593SLaurent Vivier OBJECT_DECLARE_SIMPLE_TYPE(GoldfishPICState, GOLDFISH_PIC)
1587855593SLaurent Vivier 
1687855593SLaurent Vivier #define GOLDFISH_PIC_IRQ_NB 32
1787855593SLaurent Vivier 
1887855593SLaurent Vivier struct GoldfishPICState {
1987855593SLaurent Vivier     SysBusDevice parent_obj;
2087855593SLaurent Vivier 
2187855593SLaurent Vivier     MemoryRegion iomem;
2287855593SLaurent Vivier     qemu_irq irq;
2387855593SLaurent Vivier 
2487855593SLaurent Vivier     uint32_t pending;
2587855593SLaurent Vivier     uint32_t enabled;
2687855593SLaurent Vivier 
2787855593SLaurent Vivier     /* statistics */
2887855593SLaurent Vivier     uint64_t stats_irq_count[32];
2987855593SLaurent Vivier     /* for tracing */
3087855593SLaurent Vivier     uint8_t idx;
3187855593SLaurent Vivier };
3287855593SLaurent Vivier 
3387855593SLaurent Vivier #endif
34