123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * 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
|