12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /*
- * Flags for use with cpu_interrupt()
- *
- * Copyright (c) 2003 Fabrice Bellard
- * SPDX-License-Identifier: LGPL-2.1-or-later
- */
- #ifndef CPU_INTERRUPT_H
- #define CPU_INTERRUPT_H
- /*
- * The numbers assigned here are non-sequential in order to preserve binary
- * compatibility with the vmstate dump. Bit 0 (0x0001) was previously used
- * for CPU_INTERRUPT_EXIT, and is cleared when loading the vmstate dump.
- */
- /*
- * External hardware interrupt pending.
- * This is typically used for interrupts from devices.
- */
- #define CPU_INTERRUPT_HARD 0x0002
- /*
- * Exit the current TB. This is typically used when some system-level device
- * makes some change to the memory mapping. E.g. the a20 line change.
- */
- #define CPU_INTERRUPT_EXITTB 0x0004
- /* Halt the CPU. */
- #define CPU_INTERRUPT_HALT 0x0020
- /* Debug event pending. */
- #define CPU_INTERRUPT_DEBUG 0x0080
- /* Reset signal. */
- #define CPU_INTERRUPT_RESET 0x0400
- /*
- * Several target-specific external hardware interrupts. Each target/cpu.h
- * should define proper names based on these defines.
- */
- #define CPU_INTERRUPT_TGT_EXT_0 0x0008
- #define CPU_INTERRUPT_TGT_EXT_1 0x0010
- #define CPU_INTERRUPT_TGT_EXT_2 0x0040
- #define CPU_INTERRUPT_TGT_EXT_3 0x0200
- #define CPU_INTERRUPT_TGT_EXT_4 0x1000
- /*
- * Several target-specific internal interrupts. These differ from the
- * preceding target-specific interrupts in that they are intended to
- * originate from within the cpu itself, typically in response to some
- * instruction being executed. These, therefore, are not masked while
- * single-stepping within the debugger.
- */
- #define CPU_INTERRUPT_TGT_INT_0 0x0100
- #define CPU_INTERRUPT_TGT_INT_1 0x0800
- #define CPU_INTERRUPT_TGT_INT_2 0x2000
- /* First unused bit: 0x4000. */
- /* The set of all bits that should be masked when single-stepping. */
- #define CPU_INTERRUPT_SSTEP_MASK \
- (CPU_INTERRUPT_HARD \
- | CPU_INTERRUPT_TGT_EXT_0 \
- | CPU_INTERRUPT_TGT_EXT_1 \
- | CPU_INTERRUPT_TGT_EXT_2 \
- | CPU_INTERRUPT_TGT_EXT_3 \
- | CPU_INTERRUPT_TGT_EXT_4)
- #endif /* CPU_INTERRUPT_H */
|