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