summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpuint.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpuint.h')
-rw-r--r--src/emu/cpuint.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/emu/cpuint.h b/src/emu/cpuint.h
new file mode 100644
index 00000000000..ca45d3006c4
--- /dev/null
+++ b/src/emu/cpuint.h
@@ -0,0 +1,56 @@
+/***************************************************************************
+
+ cpuint.h
+
+ Core multi-CPU interrupt engine.
+
+ Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __CPUINT_H__
+#define __CPUINT_H__
+
+#include "memory.h"
+
+#define INTERRUPT_GEN(func) void func(void)
+
+
+
+/*************************************
+ *
+ * Startup/shutdown
+ *
+ *************************************/
+
+void cpuint_init(running_machine *machine);
+
+void cpuint_reset(void);
+
+extern int (*cpu_irq_callbacks[])(int);
+
+
+
+/*************************************
+ *
+ * CPU lines
+ *
+ *************************************/
+
+/* Set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU */
+void cpunum_set_input_line(int cpunum, int line, int state);
+
+/* Set the vector to be returned during a CPU's interrupt acknowledge cycle */
+void cpunum_set_input_line_vector(int cpunum, int irqline, int vector);
+
+/* Set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU and its associated vector */
+void cpunum_set_input_line_and_vector(int cpunum, int line, int state, int vector);
+
+/* Install a driver callback for IRQ acknowledge */
+void cpunum_set_irq_callback(int cpunum, int (*callback)(int irqline));
+
+
+#endif /* __CPUINT_H__ */