Revision d537cf6c vl.h

b/vl.h
709 709
int qemu_register_machine(QEMUMachine *m);
710 710

  
711 711
typedef void SetIRQFunc(void *opaque, int irq_num, int level);
712
typedef void IRQRequestFunc(void *opaque, int level);
713 712

  
714 713
#if defined(TARGET_PPC)
715 714
void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
......
719 718
void mips_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
720 719
#endif
721 720

  
721
#include "hw/irq.h"
722

  
722 723
/* ISA bus */
723 724

  
724 725
extern target_phys_addr_t isa_mem_base;
......
791 792
    /* ??? This is a PC-specific hack, and should be removed.  */
792 793
    int irq_index;
793 794

  
795
    /* IRQ objects for the INTA-INTD pins.  */
796
    qemu_irq *irq;
797

  
794 798
    /* Current IRQ levels.  Used internally by the generic PCI code.  */
795 799
    int irq_state[4];
796 800
};
......
804 808
                            uint32_t size, int type, 
805 809
                            PCIMapIORegionFunc *map_func);
806 810

  
807
void pci_set_irq(PCIDevice *pci_dev, int irq_num, int level);
808

  
809 811
uint32_t pci_default_read_config(PCIDevice *d, 
810 812
                                 uint32_t address, int len);
811 813
void pci_default_write_config(PCIDevice *d, 
......
813 815
void pci_device_save(PCIDevice *s, QEMUFile *f);
814 816
int pci_device_load(PCIDevice *s, QEMUFile *f);
815 817

  
816
typedef void (*pci_set_irq_fn)(void *pic, int irq_num, int level);
818
typedef void (*pci_set_irq_fn)(qemu_irq *pic, int irq_num, int level);
817 819
typedef int (*pci_map_irq_fn)(PCIDevice *pci_dev, int irq_num);
818 820
PCIBus *pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
819
                         void *pic, int devfn_min, int nirq);
821
                         qemu_irq *pic, int devfn_min, int nirq);
820 822

  
821 823
void pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn);
822 824
void pci_data_write(void *opaque, uint32_t addr, uint32_t val, int len);
......
829 831
                        pci_map_irq_fn map_irq, const char *name);
830 832

  
831 833
/* prep_pci.c */
832
PCIBus *pci_prep_init(void);
834
PCIBus *pci_prep_init(qemu_irq *pic);
833 835

  
834 836
/* grackle_pci.c */
835
PCIBus *pci_grackle_init(uint32_t base, void *pic);
837
PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic);
836 838

  
837 839
/* unin_pci.c */
838
PCIBus *pci_pmac_init(void *pic);
840
PCIBus *pci_pmac_init(qemu_irq *pic);
839 841

  
840 842
/* apb_pci.c */
841 843
PCIBus *pci_apb_init(target_ulong special_base, target_ulong mem_base,
842
                     void *pic);
844
                     qemu_irq *pic);
843 845

  
844
PCIBus *pci_vpb_init(void *pic, int irq, int realview);
846
PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview);
845 847

  
846 848
/* piix_pci.c */
847
PCIBus *i440fx_init(PCIDevice **pi440fx_state);
849
PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic);
848 850
void i440fx_set_smm(PCIDevice *d, int val);
849 851
int piix3_init(PCIBus *bus, int devfn);
850 852
void i440fx_init_memory_mappings(PCIDevice *d);
......
852 854
int piix4_init(PCIBus *bus, int devfn);
853 855

  
854 856
/* openpic.c */
855
typedef struct openpic_t openpic_t;
856 857
enum {
857 858
    OPENPIC_EVT_INT = 0, /* IRQ                       */
858 859
    OPENPIC_EVT_CINT,    /* critical IRQ              */
......
860 861
    OPENPIC_EVT_DEBUG,   /* Inconditional debug event */
861 862
    OPENPIC_EVT_RESET,   /* Core reset event          */
862 863
};
863
void openpic_set_irq(void *opaque, int n_IRQ, int level);
864
openpic_t *openpic_init (PCIBus *bus, SetIRQFunc *set_irq,
865
                         int *pmem_index, int nb_cpus,
866
                         struct CPUState **envp);
864
qemu_irq *openpic_init (PCIBus *bus, SetIRQFunc *set_irq,
865
                        int *pmem_index, int nb_cpus,
866
                        struct CPUState **envp);
867 867

  
868 868
/* heathrow_pic.c */
869
typedef struct HeathrowPICS HeathrowPICS;
870
void heathrow_pic_set_irq(void *opaque, int num, int level);
871
HeathrowPICS *heathrow_pic_init(int *pmem_index);
869
qemu_irq *heathrow_pic_init(int *pmem_index);
872 870

  
873 871
/* gt64xxx.c */
874
PCIBus *pci_gt64120_init(void *pic);
872
PCIBus *pci_gt64120_init(qemu_irq *pic);
875 873

  
876 874
#ifdef HAS_AUDIO
877 875
struct soundhw {
......
880 878
    int enabled;
881 879
    int isa;
882 880
    union {
883
        int (*init_isa) (AudioState *s);
881
        int (*init_isa) (AudioState *s, qemu_irq *pic);
884 882
        int (*init_pci) (PCIBus *bus, AudioState *s);
885 883
    } init;
886 884
};
......
958 956
extern BlockDriverState *bs_table[MAX_DISKS + 1];
959 957
extern BlockDriverState *sd_bdrv;
960 958

  
961
void isa_ide_init(int iobase, int iobase2, int irq,
959
void isa_ide_init(int iobase, int iobase2, qemu_irq irq,
962 960
                  BlockDriverState *hd0, BlockDriverState *hd1);
963 961
void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table,
964 962
                         int secondary_ide_enabled);
965
void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn);
966
int pmac_ide_init (BlockDriverState **hd_table,
967
                   SetIRQFunc *set_irq, void *irq_opaque, int irq);
963
void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
964
                        qemu_irq *pic);
965
int pmac_ide_init (BlockDriverState **hd_table, qemu_irq irq);
968 966

  
969 967
/* cdrom.c */
970 968
int cdrom_read_toc(int nb_sectors, uint8_t *buf, int msf, int start_track);
......
978 976
int es1370_init (PCIBus *bus, AudioState *s);
979 977

  
980 978
/* sb16.c */
981
int SB16_init (AudioState *s);
979
int SB16_init (AudioState *s, qemu_irq *pic);
982 980

  
983 981
/* adlib.c */
984
int Adlib_init (AudioState *s);
982
int Adlib_init (AudioState *s, qemu_irq *pic);
985 983

  
986 984
/* gus.c */
987
int GUS_init (AudioState *s);
985
int GUS_init (AudioState *s, qemu_irq *pic);
988 986

  
989 987
/* dma.c */
990 988
typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int size);
......
1005 1003

  
1006 1004
typedef struct fdctrl_t fdctrl_t;
1007 1005

  
1008
fdctrl_t *fdctrl_init (int irq_lvl, int dma_chann, int mem_mapped, 
1006
fdctrl_t *fdctrl_init (qemu_irq irq, int dma_chann, int mem_mapped, 
1009 1007
                       uint32_t io_base,
1010 1008
                       BlockDriverState **fds);
1011 1009
int fdctrl_get_drive_type(fdctrl_t *fdctrl, int drive_num);
......
1018 1016

  
1019 1017
/* ne2000.c */
1020 1018

  
1021
void isa_ne2000_init(int base, int irq, NICInfo *nd);
1019
void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd);
1022 1020
void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn);
1023 1021

  
1024 1022
/* rtl8139.c */
......
1029 1027

  
1030 1028
void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn);
1031 1029
void pcnet_h_reset(void *opaque);
1032
void *lance_init(NICInfo *nd, uint32_t leaddr, void *dma_opaque);
1030
void *lance_init(NICInfo *nd, uint32_t leaddr, void *dma_opaque, qemu_irq irq);
1033 1031

  
1034 1032
/* vmmouse.c */
1035 1033
void *vmmouse_init(void *m);
1036 1034

  
1037 1035
/* pckbd.c */
1038 1036

  
1039
void kbd_init(void);
1037
void i8042_init(qemu_irq kdb_irq, qemu_irq mouse_irq, uint32_t io_base);
1040 1038

  
1041 1039
/* mc146818rtc.c */
1042 1040

  
1043 1041
typedef struct RTCState RTCState;
1044 1042

  
1045
RTCState *rtc_init(int base, int irq);
1043
RTCState *rtc_init(int base, qemu_irq irq);
1046 1044
void rtc_set_memory(RTCState *s, int addr, int val);
1047 1045
void rtc_set_date(RTCState *s, const struct tm *tm);
1048 1046

  
1049 1047
/* serial.c */
1050 1048

  
1051 1049
typedef struct SerialState SerialState;
1052
SerialState *serial_init(SetIRQFunc *set_irq, void *opaque,
1053
                         int base, int irq, CharDriverState *chr);
1054
SerialState *serial_mm_init (SetIRQFunc *set_irq, void *opaque,
1055
                             target_ulong base, int it_shift,
1056
                             int irq, CharDriverState *chr,
1050
SerialState *serial_init(int base, qemu_irq irq, CharDriverState *chr);
1051
SerialState *serial_mm_init (target_ulong base, int it_shift,
1052
                             qemu_irq irq, CharDriverState *chr,
1057 1053
                             int ioregister);
1058 1054
uint32_t serial_mm_readb (void *opaque, target_phys_addr_t addr);
1059 1055
void serial_mm_writeb (void *opaque, target_phys_addr_t addr, uint32_t value);
......
1065 1061
/* parallel.c */
1066 1062

  
1067 1063
typedef struct ParallelState ParallelState;
1068
ParallelState *parallel_init(int base, int irq, CharDriverState *chr);
1064
ParallelState *parallel_init(int base, qemu_irq irq, CharDriverState *chr);
1069 1065

  
1070 1066
/* i8259.c */
1071 1067

  
......
1073 1069
extern PicState2 *isa_pic;
1074 1070
void pic_set_irq(int irq, int level);
1075 1071
void pic_set_irq_new(void *opaque, int irq, int level);
1076
PicState2 *pic_init(IRQRequestFunc *irq_request, void *irq_request_opaque);
1072
qemu_irq *i8259_init(qemu_irq parent_irq);
1077 1073
void pic_set_alt_irq_func(PicState2 *s, SetIRQFunc *alt_irq_func,
1078 1074
                          void *alt_irq_opaque);
1079 1075
int pic_read_irq(PicState2 *s);
......
1096 1092

  
1097 1093
typedef struct PITState PITState;
1098 1094

  
1099
PITState *pit_init(int base, int irq);
1095
PITState *pit_init(int base, qemu_irq irq);
1100 1096
void pit_set_gate(PITState *pit, int channel, int val);
1101 1097
int pit_get_gate(PITState *pit, int channel);
1102 1098
int pit_get_initial_count(PITState *pit, int channel);
......
1105 1101

  
1106 1102
/* pcspk.c */
1107 1103
void pcspk_init(PITState *);
1108
int pcspk_audio_init(AudioState *);
1104
int pcspk_audio_init(AudioState *, qemu_irq *pic);
1109 1105

  
1110 1106
#include "hw/smbus.h"
1111 1107

  
......
1138 1134
extern QEMUMachine mips_malta_machine;
1139 1135

  
1140 1136
/* mips_int */
1141
extern void cpu_mips_irq_request(void *opaque, int irq, int level);
1137
extern void cpu_mips_irq_init_cpu(CPUState *env);
1142 1138

  
1143 1139
/* mips_timer.c */
1144 1140
extern void cpu_mips_clock_init(CPUState *);
......
1149 1145

  
1150 1146
#ifdef TARGET_PPC
1151 1147
/* PowerPC hardware exceptions management helpers */
1152
void ppc_set_irq (void *opaque, int n_IRQ, int level);
1148
void cpu_ppc_irq_init_cpu(CPUState *env);
1153 1149
void ppc_openpic_irq (void *opaque, int n_IRQ, int level);
1154 1150
int ppc_hw_interrupt (CPUState *env);
1155 1151
ppc_tb_t *cpu_ppc_tb_init (CPUState *env, uint32_t freq);
......
1188 1184
/* slavio_intctl.c */
1189 1185
void pic_set_irq_cpu(void *opaque, int irq, int level, unsigned int cpu);
1190 1186
void *slavio_intctl_init(uint32_t addr, uint32_t addrg,
1191
                         const uint32_t *intbit_to_level);
1187
                         const uint32_t *intbit_to_level,
1188
                         qemu_irq **irq);
1192 1189
void slavio_intctl_set_cpu(void *opaque, unsigned int cpu, CPUState *env);
1193 1190
void slavio_pic_info(void *opaque);
1194 1191
void slavio_irq_info(void *opaque);
1195
void slavio_pic_set_irq(void *opaque, int irq, int level);
1196
void slavio_pic_set_irq_cpu(void *opaque, int irq, int level, unsigned int cpu);
1197 1192

  
1198 1193
/* loader.c */
1199 1194
int get_image_size(const char *filename);
......
1208 1203
                       void *intctl);
1209 1204

  
1210 1205
/* slavio_serial.c */
1211
SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1,
1212
                                CharDriverState *chr2, void *intctl);
1213
void slavio_serial_ms_kbd_init(int base, int irq, void *intctl);
1206
SerialState *slavio_serial_init(int base, qemu_irq irq, CharDriverState *chr1,
1207
                                CharDriverState *chr2);
1208
void slavio_serial_ms_kbd_init(int base, qemu_irq);
1214 1209

  
1215 1210
/* slavio_misc.c */
1216
void *slavio_misc_init(uint32_t base, int irq, void *intctl);
1211
void *slavio_misc_init(uint32_t base, qemu_irq irq);
1217 1212
void slavio_set_power_fail(void *opaque, int power_failing);
1218 1213

  
1219 1214
/* esp.c */
......
1222 1217
void esp_reset(void *opaque);
1223 1218

  
1224 1219
/* sparc32_dma.c */
1225
void *sparc32_dma_init(uint32_t daddr, int espirq, int leirq, void *iommu,
1226
                       void *intctl);
1220
void *sparc32_dma_init(uint32_t daddr, qemu_irq espirq, qemu_irq leirq,
1221
                       void *iommu);
1227 1222
void ledma_set_irq(void *opaque, int isr);
1228 1223
void ledma_memory_read(void *opaque, target_phys_addr_t addr, 
1229 1224
                       uint8_t *buf, int len, int do_bswap);
......
1307 1302
/* cuda.c */
1308 1303

  
1309 1304
extern ADBBusState adb_bus;
1310
int cuda_init(SetIRQFunc *set_irq, void *irq_opaque, int irq);
1305
int cuda_init(qemu_irq irq);
1311 1306

  
1312 1307
#include "hw/usb.h"
1313 1308

  
......
1372 1367
void ps2_mouse_fake_event(void *opaque);
1373 1368

  
1374 1369
/* smc91c111.c */
1375
void smc91c111_init(NICInfo *, uint32_t, void *, int);
1370
void smc91c111_init(NICInfo *, uint32_t, qemu_irq);
1376 1371

  
1377 1372
/* pl110.c */
1378
void *pl110_init(DisplayState *ds, uint32_t base, void *pic, int irq, int);
1373
void *pl110_init(DisplayState *ds, uint32_t base, qemu_irq irq, int);
1379 1374

  
1380 1375
/* pl011.c */
1381
void pl011_init(uint32_t base, void *pic, int irq, CharDriverState *chr);
1376
void pl011_init(uint32_t base, qemu_irq irq, CharDriverState *chr);
1382 1377

  
1383 1378
/* pl050.c */
1384
void pl050_init(uint32_t base, void *pic, int irq, int is_mouse);
1379
void pl050_init(uint32_t base, qemu_irq irq, int is_mouse);
1385 1380

  
1386 1381
/* pl080.c */
1387
void *pl080_init(uint32_t base, void *pic, int irq, int nchannels);
1382
void *pl080_init(uint32_t base, qemu_irq irq, int nchannels);
1388 1383

  
1389 1384
/* pl181.c */
1390 1385
void pl181_init(uint32_t base, BlockDriverState *bd,
1391
                void *pic, int irq0, int irq1);
1386
                qemu_irq irq0, qemu_irq irq1);
1392 1387

  
1393 1388
/* pl190.c */
1394
void *pl190_init(uint32_t base, void *parent, int irq, int fiq);
1389
qemu_irq *pl190_init(uint32_t base, qemu_irq irq, qemu_irq fiq);
1395 1390

  
1396 1391
/* arm-timer.c */
1397
void sp804_init(uint32_t base, void *pic, int irq);
1398
void icp_pit_init(uint32_t base, void *pic, int irq);
1392
void sp804_init(uint32_t base, qemu_irq irq);
1393
void icp_pit_init(uint32_t base, qemu_irq *pic, int irq);
1399 1394

  
1400 1395
/* arm_sysctl.c */
1401 1396
void arm_sysctl_init(uint32_t base, uint32_t sys_id);
1402 1397

  
1403 1398
/* arm_gic.c */
1404
void *arm_gic_init(uint32_t base, void *parent, int parent_irq);
1399
qemu_irq *arm_gic_init(uint32_t base, qemu_irq parent_irq);
1405 1400

  
1406 1401
/* arm_boot.c */
1407 1402

  

Also available in: Unified diff