m68k_irqc.h (831B)
1/* 2 * SPDX-License-Identifer: GPL-2.0-or-later 3 * 4 * QEMU Motorola 680x0 IRQ Controller 5 * 6 * (c) 2020 Laurent Vivier <laurent@vivier.eu> 7 * 8 */ 9 10#ifndef M68K_IRQC_H 11#define M68K_IRQC_H 12 13#include "hw/sysbus.h" 14 15#define TYPE_M68K_IRQC "m68k-irq-controller" 16#define M68K_IRQC(obj) OBJECT_CHECK(M68KIRQCState, (obj), \ 17 TYPE_M68K_IRQC) 18 19#define M68K_IRQC_AUTOVECTOR_BASE 25 20 21enum { 22 M68K_IRQC_LEVEL_1 = 0, 23 M68K_IRQC_LEVEL_2, 24 M68K_IRQC_LEVEL_3, 25 M68K_IRQC_LEVEL_4, 26 M68K_IRQC_LEVEL_5, 27 M68K_IRQC_LEVEL_6, 28 M68K_IRQC_LEVEL_7, 29}; 30#define M68K_IRQC_LEVEL_NUM (M68K_IRQC_LEVEL_7 - M68K_IRQC_LEVEL_1 + 1) 31 32typedef struct M68KIRQCState { 33 SysBusDevice parent_obj; 34 35 uint8_t ipr; 36 37 /* statistics */ 38 uint64_t stats_irq_count[M68K_IRQC_LEVEL_NUM]; 39} M68KIRQCState; 40 41#endif