|  | /* | 
|  | * SPDX-License-Identifier: GPL-2.0-or-later | 
|  | * | 
|  | * QEMU Motorola 680x0 IRQ Controller | 
|  | * | 
|  | * (c) 2020 Laurent Vivier <laurent@vivier.eu> | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef M68K_IRQC_H | 
|  | #define M68K_IRQC_H | 
|  |  | 
|  | #include "hw/sysbus.h" | 
|  |  | 
|  | #define TYPE_M68K_IRQC "m68k-irq-controller" | 
|  | #define M68K_IRQC(obj) OBJECT_CHECK(M68KIRQCState, (obj), \ | 
|  | TYPE_M68K_IRQC) | 
|  |  | 
|  | #define M68K_IRQC_AUTOVECTOR_BASE 25 | 
|  |  | 
|  | enum { | 
|  | M68K_IRQC_LEVEL_1 = 0, | 
|  | M68K_IRQC_LEVEL_2, | 
|  | M68K_IRQC_LEVEL_3, | 
|  | M68K_IRQC_LEVEL_4, | 
|  | M68K_IRQC_LEVEL_5, | 
|  | M68K_IRQC_LEVEL_6, | 
|  | M68K_IRQC_LEVEL_7, | 
|  | }; | 
|  | #define M68K_IRQC_LEVEL_NUM (M68K_IRQC_LEVEL_7 - M68K_IRQC_LEVEL_1 + 1) | 
|  |  | 
|  | typedef struct M68KIRQCState { | 
|  | SysBusDevice parent_obj; | 
|  |  | 
|  | uint8_t ipr; | 
|  | ArchCPU *cpu; | 
|  |  | 
|  | /* statistics */ | 
|  | uint64_t stats_irq_count[M68K_IRQC_LEVEL_NUM]; | 
|  | } M68KIRQCState; | 
|  |  | 
|  | #endif |