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