Revision 4556bd8b hw/pc.c

b/hw/pc.c
914 914
    }
915 915
}
916 916

  
917
static void cpu_request_exit(void *opaque, int irq, int level)
918
{
919
    CPUState *env = cpu_single_env;
920

  
921
    if (env && level) {
922
        cpu_exit(env);
923
    }
924
}
925

  
917 926
void pc_basic_device_init(qemu_irq *isa_irq,
918 927
                          FDCtrl **floppy_controller,
919 928
                          ISADevice **rtc_state)
......
923 932
    PITState *pit;
924 933
    qemu_irq *a20_line;
925 934
    ISADevice *i8042;
935
    qemu_irq *cpu_exit_irq;
926 936

  
927 937
    register_ioport_write(0x80, 1, 1, ioport80_write, NULL);
928 938

  
......
955 965
    i8042_setup_a20_line(i8042, a20_line);
956 966
    vmmouse_init(i8042);
957 967

  
958
    DMA_init(0);
968
    cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1);
969
    DMA_init(0, cpu_exit_irq);
959 970

  
960 971
    for(i = 0; i < MAX_FD; i++) {
961 972
        fd[i] = drive_get(IF_FLOPPY, 0, i);

Also available in: Unified diff