diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/qemu-palcode/sys-clipper.h | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/qemu-palcode/sys-clipper.h')
-rw-r--r-- | roms/qemu-palcode/sys-clipper.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/roms/qemu-palcode/sys-clipper.h b/roms/qemu-palcode/sys-clipper.h new file mode 100644 index 000000000..7c1fa0811 --- /dev/null +++ b/roms/qemu-palcode/sys-clipper.h @@ -0,0 +1,47 @@ +/* Declarations for the CLIPPER system emulation. + + Copyright (C) 2011 Richard Henderson + + This file is part of QEMU PALcode. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the text + of the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not see + <http://www.gnu.org/licenses/>. */ + +#ifndef SYS_CLIPPER_H +#define SYS_CLIPPER_H 1 + +#include "core-typhoon.h" + +#define SYS_TYPE ST_DEC_TSUNAMI +#define SYS_VARIATION (5 << 10) +#define SYS_REVISION 0 + +#ifndef __ASSEMBLER__ + +static inline uint8_t MAP_PCI_INTERRUPT(int slot, int pin, int class_id) +{ + uint8_t irq = 0xff; /* no interrupt mapping */ + + /* PCI-ISA bridge is hard-wired to IRQ 55 on real hardware, and comes in + at a different SCB vector; force the line register to 0xff. + Otherwise, see qemu hw/alpha/dp264.c:clipper_pci_map_irq() */ + if (class_id != 0x0601 && pin >= 1 && pin <= 4) + irq = (slot + 1) * 4 + (pin - 1); + + return irq; +} + +#endif /* ! __ASSEMBLER__ */ + +#endif |