diff options
author | 2013-01-31 12:47:07 +0000 | |
---|---|---|
committer | 2013-01-31 12:47:07 +0000 | |
commit | bfb62eeb19e35530246307a08d3c315f9fdd3df4 (patch) | |
tree | 9c2912a3c57ad251958bf901012626e3d3a947c0 /src/mess/machine | |
parent | f63dc9ba6597a6b0b4fc0ab906637a85f43a50cf (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.c | 9 | ||||
-rw-r--r-- | src/mess/machine/at.c | 7 | ||||
-rw-r--r-- | src/mess/machine/b2m.c | 7 | ||||
-rw-r--r-- | src/mess/machine/genpc.c | 7 | ||||
-rw-r--r-- | src/mess/machine/i82371ab.c | 8 | ||||
-rw-r--r-- | src/mess/machine/i82371sb.c | 8 | ||||
-rw-r--r-- | src/mess/machine/mbc55x.c | 7 | ||||
-rw-r--r-- | src/mess/machine/pc.c | 11 | ||||
-rw-r--r-- | src/mess/machine/pk8020.c | 6 | ||||
-rw-r--r-- | src/mess/machine/southbridge.c | 12 | ||||
-rw-r--r-- | src/mess/machine/southbridge.h | 2 |
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; |