aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/cpu.h
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-03-30 09:38:04 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-03-30 09:38:04 +0000
commit471035729088e3aa7f69140ac0ad0b248ff7ec07 (patch)
treefe468ba8c22505dcdc9c5f41d8a83f2cda77f8ad /target-ppc/cpu.h
parentde270b3c7c0c9b15e6c2f3d5e7f5c96673711dad (diff)
New model for PowerPC CPU hardware interrupt events:
move all PowerPC specific code into target-ppc/helper.c to avoid polluting the common code in cpu-exec.c. This makes implementation of new features (ie embedded PowerPC timers, critical interrupts, ...) easier. This also avoid hardcoding the IRQ callback in the OpenPIC controller, making it more easily reusable and allowing cascading. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2542 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/cpu.h')
-rw-r--r--target-ppc/cpu.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index b21d6b19fb..ef02f10968 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -740,6 +740,7 @@ struct CPUPPCState {
int exception_index;
int error_code;
int interrupt_request;
+ uint32_t pending_interrupts;
/* Those resources are used only during code translation */
/* Next instruction pointer */
@@ -1267,6 +1268,21 @@ enum {
EXCP_TRAP = 0x40,
};
+/* Hardware interruption sources:
+ * all those exception can be raised simulteaneously
+ */
+enum {
+ PPC_INTERRUPT_RESET = 0, /* Reset / critical input */
+ PPC_INTERRUPT_MCK = 1, /* Machine check exception */
+ PPC_INTERRUPT_EXT = 2, /* External interrupt */
+ PPC_INTERRUPT_DECR = 3, /* Decrementer exception */
+ PPC_INTERRUPT_HDECR = 4, /* Hypervisor decrementer exception */
+ PPC_INTERRUPT_PIT = 5, /* Programmable inteval timer interrupt */
+ PPC_INTERRUPT_FIT = 6, /* Fixed interval timer interrupt */
+ PPC_INTERRUPT_WDT = 7, /* Watchdog timer interrupt */
+ PPC_INTERRUPT_DEBUG = 8, /* External debug exception */
+};
+
/*****************************************************************************/
#endif /* !defined (__CPU_PPC_H__) */