diff options
Diffstat (limited to 'src/emu/cpuint.h')
-rw-r--r-- | src/emu/cpuint.h | 56 |
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__ */ |