summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-01-31 12:47:07 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-01-31 12:47:07 +0000
commitbfb62eeb19e35530246307a08d3c315f9fdd3df4 (patch)
tree9c2912a3c57ad251958bf901012626e3d3a947c0 /src/mess/machine
parentf63dc9ba6597a6b0b4fc0ab906637a85f43a50cf (diff)
IRQ_CALLBACK modernization part 2, this should give some speed to pc drivers (no whatsnew)
Diffstat (limited to 'src/mess/machine')
-rw-r--r--src/mess/machine/apollo.c9
-rw-r--r--src/mess/machine/at.c7
-rw-r--r--src/mess/machine/b2m.c7
-rw-r--r--src/mess/machine/genpc.c7
-rw-r--r--src/mess/machine/i82371ab.c8
-rw-r--r--src/mess/machine/i82371sb.c8
-rw-r--r--src/mess/machine/mbc55x.c7
-rw-r--r--src/mess/machine/pc.c11
-rw-r--r--src/mess/machine/pk8020.c6
-rw-r--r--src/mess/machine/southbridge.c12
-rw-r--r--src/mess/machine/southbridge.h2
11 files changed, 31 insertions, 53 deletions
diff --git a/src/mess/machine/apollo.c b/src/mess/machine/apollo.c
index 4efc3b982fc..157e0ad1236 100644
--- a/src/mess/machine/apollo.c
+++ b/src/mess/machine/apollo.c
@@ -675,15 +675,16 @@ static void apollo_pic_set_irq_line(device_t *device, int irq, int state) {
}
}
-IRQ_CALLBACK(apollo_pic_acknowledge) {
- UINT32 vector = pic8259_acknowledge(get_pic8259_master(device));
+IRQ_CALLBACK_MEMBER(apollo_state::apollo_pic_acknowledge)
+{
+ UINT32 vector = pic8259_acknowledge(get_pic8259_master(&device));
if ((vector & 0x0f) == APOLLO_IRQ_PIC_SLAVE) {
- vector = pic8259_acknowledge(get_pic8259_slave(device));
+ vector = pic8259_acknowledge(get_pic8259_slave(&device));
}
// don't log ptm interrupts
if (vector != APOLLO_IRQ_VECTOR+APOLLO_IRQ_PTM) {
- DLOG1(("apollo_pic_acknowledge: irq=%d vector=%x", vector & 0x0f, vector));
+ MLOG1(("apollo_pic_acknowledge: irq=%d vector=%x", vector & 0x0f, vector));
}
if (apollo_is_dn3000()) {
diff --git a/src/mess/machine/at.c b/src/mess/machine/at.c
index b84d3282779..b6a15c06da1 100644
--- a/src/mess/machine/at.c
+++ b/src/mess/machine/at.c
@@ -350,15 +350,14 @@ DRIVER_INIT_MEMBER(at_state,atvga)
init_at_common(machine());
}
-static IRQ_CALLBACK(at_irq_callback)
+IRQ_CALLBACK_MEMBER(at_state::at_irq_callback)
{
- at_state *st = device->machine().driver_data<at_state>();
- return pic8259_acknowledge(st->m_pic8259_master);
+ return pic8259_acknowledge(m_pic8259_master);
}
MACHINE_START_MEMBER(at_state,at)
{
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(at_state::at_irq_callback),this));
}
MACHINE_RESET_MEMBER(at_state,at)
diff --git a/src/mess/machine/b2m.c b/src/mess/machine/b2m.c
index be13452bd8f..f139c180042 100644
--- a/src/mess/machine/b2m.c
+++ b/src/mess/machine/b2m.c
@@ -347,10 +347,9 @@ void b2m_state::machine_start()
machine().save().register_postload(save_prepost_delegate(FUNC(b2m_postload), this));
}
-static IRQ_CALLBACK(b2m_irq_callback)
+IRQ_CALLBACK_MEMBER(b2m_state::b2m_irq_callback)
{
- b2m_state *state = device->machine().driver_data<b2m_state>();
- return pic8259_acknowledge(state->m_pic);
+ return pic8259_acknowledge(m_pic);
}
const struct pic8259_interface b2m_pic8259_config =
@@ -372,6 +371,6 @@ void b2m_state::machine_reset()
m_b2m_side = 0;
m_b2m_drive = 0;
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(b2m_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(b2m_state::b2m_irq_callback),this));
b2m_set_bank(machine(), 7);
}
diff --git a/src/mess/machine/genpc.c b/src/mess/machine/genpc.c
index b8e1365910a..619be1255f1 100644
--- a/src/mess/machine/genpc.c
+++ b/src/mess/machine/genpc.c
@@ -652,10 +652,9 @@ void ibm5160_mb_device::device_start()
membank( "bank10" )->set_base( machine().device<ram_device>(RAM_TAG)->pointer() );
}
-IRQ_CALLBACK(ibm5160_mb_device::pc_irq_callback)
+IRQ_CALLBACK_MEMBER(ibm5160_mb_device::pc_irq_callback)
{
- device_t *pic = device->machine().device("mb:pic8259");
- return pic8259_acknowledge( pic );
+ return pic8259_acknowledge(m_pic8259);
}
@@ -665,7 +664,7 @@ IRQ_CALLBACK(ibm5160_mb_device::pc_irq_callback)
void ibm5160_mb_device::device_reset()
{
- m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(ibm5160_mb_device::pc_irq_callback),this));
m_u73_q2 = 0;
m_out1 = 2; // initial state of pit output is undefined
diff --git a/src/mess/machine/i82371ab.c b/src/mess/machine/i82371ab.c
index 30bc73d49a4..53b12a2f43f 100644
--- a/src/mess/machine/i82371ab.c
+++ b/src/mess/machine/i82371ab.c
@@ -208,12 +208,6 @@ void i82371ab_device::pci_write(pci_bus_device *pcibus, int function, int offset
}
}
-static IRQ_CALLBACK(at_irq_callback)
-{
- device_t *pic = device->machine().device(":pcibus:1:i82371ab:pic8259_master");
- return pic8259_acknowledge(pic);
-}
-
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -223,8 +217,6 @@ void i82371ab_device::device_start()
southbridge_device::device_start();
/* setup save states */
save_item(NAME(m_regs));
-
- machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
}
//-------------------------------------------------
diff --git a/src/mess/machine/i82371sb.c b/src/mess/machine/i82371sb.c
index 430be55674b..d3def3f4b41 100644
--- a/src/mess/machine/i82371sb.c
+++ b/src/mess/machine/i82371sb.c
@@ -138,12 +138,6 @@ void i82371sb_device::pci_write(pci_bus_device *pcibus, int function, int offset
//logerror("i82371sb_pci_write: write to undefined function %d\n", function);
}
-static IRQ_CALLBACK(at_irq_callback)
-{
- device_t *pic = device->machine().device(":pcibus:1:i82371sb:pic8259_master");
- return pic8259_acknowledge(pic);
-}
-
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -153,8 +147,6 @@ void i82371sb_device::device_start()
southbridge_device::device_start();
/* setup save states */
save_item(NAME(m_regs));
-
- machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
}
//-------------------------------------------------
diff --git a/src/mess/machine/mbc55x.c b/src/mess/machine/mbc55x.c
index e473c4a4fe1..05376e01cc0 100644
--- a/src/mess/machine/mbc55x.c
+++ b/src/mess/machine/mbc55x.c
@@ -126,10 +126,9 @@ WRITE8_MEMBER(mbc55x_state::mbcpic8259_w)
pic8259_w(m_pic, space, offset>>1, data);
}
-static IRQ_CALLBACK(mbc55x_irq_callback)
+IRQ_CALLBACK_MEMBER(mbc55x_state::mbc55x_irq_callback)
{
- mbc55x_state *state = device->machine().driver_data<mbc55x_state>();
- return pic8259_acknowledge( state->m_pic );
+ return pic8259_acknowledge(m_pic);
}
/* PIT8253 Configuration */
@@ -388,7 +387,7 @@ void mbc55x_state::machine_reset()
{
set_ram_size(machine());
keyboard_reset(machine());
- machine().device(MAINCPU_TAG)->execute().set_irq_acknowledge_callback(mbc55x_irq_callback);
+ machine().device(MAINCPU_TAG)->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mbc55x_state::mbc55x_irq_callback),this));
}
void mbc55x_state::machine_start()
diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c
index 598dce7f241..e8b792698dc 100644
--- a/src/mess/machine/pc.c
+++ b/src/mess/machine/pc.c
@@ -1463,10 +1463,9 @@ DRIVER_INIT_MEMBER(pc_state,pc1640)
mess_init_pc_common(machine(), PCCOMMON_KEYBOARD_PC, pc_set_keyb_int, pc_set_irq_line);
}
-static IRQ_CALLBACK(pc_irq_callback)
+IRQ_CALLBACK_MEMBER(pc_state::pc_irq_callback)
{
- pc_state *st = device->machine().driver_data<pc_state>();
- return pic8259_acknowledge( st->m_pic8259 );
+ return pic8259_acknowledge(m_pic8259);
}
@@ -1475,7 +1474,7 @@ MACHINE_START_MEMBER(pc_state,pc)
m_pic8259 = machine().device("pic8259");
m_pit8253 = machine().device("pit8253");
m_maincpu = machine().device<cpu_device>("maincpu" );
- m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc_state::pc_irq_callback),this));
pc_fdc_interface *fdc = machine().device<pc_fdc_interface>("fdc");
fdc->setup_intrq_cb(pc_fdc_interface::line_cb(FUNC(pc_state::fdc_interrupt), this));
@@ -1511,7 +1510,7 @@ MACHINE_RESET_MEMBER(pc_state,pc)
MACHINE_START_MEMBER(pc_state,mc1502)
{
m_maincpu = machine().device<cpu_device>("maincpu" );
- m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc_state::pc_irq_callback),this));
m_pic8259 = machine().device("pic8259");
m_pit8253 = machine().device("pit8253");
@@ -1539,7 +1538,7 @@ MACHINE_START_MEMBER(pc_state,pcjr)
m_pcjr_watchdog = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc_state::pcjr_fdc_watchdog),this));
pcjr_keyb.keyb_signal_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc_state::pcjr_keyb_signal_callback),this));
m_maincpu = machine().device<cpu_device>("maincpu");
- m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc_state::pc_irq_callback),this));
machine().device<upd765a_device>("upd765")->set_ready_line_connected(false);
diff --git a/src/mess/machine/pk8020.c b/src/mess/machine/pk8020.c
index 61437309efc..c5e784fe2ca 100644
--- a/src/mess/machine/pk8020.c
+++ b/src/mess/machine/pk8020.c
@@ -984,15 +984,15 @@ const struct pic8259_interface pk8020_pic8259_config =
DEVCB_NULL
};
-static IRQ_CALLBACK( pk8020_irq_callback )
+IRQ_CALLBACK_MEMBER(pk8020_state::pk8020_irq_callback)
{
- return pic8259_acknowledge(device->machine().device("pic8259"));
+ return pic8259_acknowledge(machine().device("pic8259"));
}
void pk8020_state::machine_reset()
{
pk8020_set_bank(machine(),0);
- machine().device("maincpu")->execute().set_irq_acknowledge_callback(pk8020_irq_callback);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pk8020_state::pk8020_irq_callback),this));
m_sound_gate = 0;
m_sound_level = 0;
diff --git a/src/mess/machine/southbridge.c b/src/mess/machine/southbridge.c
index b5a31ab7def..8a429a781f5 100644
--- a/src/mess/machine/southbridge.c
+++ b/src/mess/machine/southbridge.c
@@ -180,14 +180,12 @@ southbridge_device::southbridge_device(const machine_config &mconfig, device_typ
* Init functions
*
**********************************************************/
-/*
-IRQ_CALLBACK(southbridge_device::at_irq_callback)
+
+IRQ_CALLBACK_MEMBER(southbridge_device::at_irq_callback)
{
- device_t *pic = device->machine().device(":pcibus:1:i82371ab:pic8259_master");
- //return pic8259_acknowledge(m_pic8259_master);
- return pic8259_acknowledge(pic);
+ return pic8259_acknowledge(m_pic8259_master);
}
-*/
+
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -209,7 +207,7 @@ void southbridge_device::device_start()
m_at_offset1 = 0xff;
- //machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
+ machine().device(":maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(southbridge_device::at_irq_callback),this));
}
//-------------------------------------------------
diff --git a/src/mess/machine/southbridge.h b/src/mess/machine/southbridge.h
index 4bf03a3ce70..df537a75d67 100644
--- a/src/mess/machine/southbridge.h
+++ b/src/mess/machine/southbridge.h
@@ -72,7 +72,7 @@ protected:
virtual void device_reset();
public:
- //static IRQ_CALLBACK(at_irq_callback);
+ IRQ_CALLBACK_MEMBER(at_irq_callback);
required_device<cpu_device> m_maincpu;
required_device<pic8259_device> m_pic8259_master;
required_device<pic8259_device> m_pic8259_slave;