📄 vl.h
字号:
int64_t qemu_get_clock(QEMUClock *clock);QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque);void qemu_free_timer(QEMUTimer *ts);void qemu_del_timer(QEMUTimer *ts);void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);int qemu_timer_pending(QEMUTimer *ts);extern int64_t ticks_per_sec;extern int pit_min_timer_count;void cpu_enable_ticks(void);void cpu_disable_ticks(void);/* VM Load/Save */typedef FILE QEMUFile;void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);void qemu_put_byte(QEMUFile *f, int v);void qemu_put_be16(QEMUFile *f, unsigned int v);void qemu_put_be32(QEMUFile *f, unsigned int v);void qemu_put_be64(QEMUFile *f, uint64_t v);int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size);int qemu_get_byte(QEMUFile *f);unsigned int qemu_get_be16(QEMUFile *f);unsigned int qemu_get_be32(QEMUFile *f);uint64_t qemu_get_be64(QEMUFile *f);static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv){ qemu_put_be64(f, *pv);}static inline void qemu_put_be32s(QEMUFile *f, const uint32_t *pv){ qemu_put_be32(f, *pv);}static inline void qemu_put_be16s(QEMUFile *f, const uint16_t *pv){ qemu_put_be16(f, *pv);}static inline void qemu_put_8s(QEMUFile *f, const uint8_t *pv){ qemu_put_byte(f, *pv);}static inline void qemu_get_be64s(QEMUFile *f, uint64_t *pv){ *pv = qemu_get_be64(f);}static inline void qemu_get_be32s(QEMUFile *f, uint32_t *pv){ *pv = qemu_get_be32(f);}static inline void qemu_get_be16s(QEMUFile *f, uint16_t *pv){ *pv = qemu_get_be16(f);}static inline void qemu_get_8s(QEMUFile *f, uint8_t *pv){ *pv = qemu_get_byte(f);}#if TARGET_LONG_BITS == 64#define qemu_put_betl qemu_put_be64#define qemu_get_betl qemu_get_be64#define qemu_put_betls qemu_put_be64s#define qemu_get_betls qemu_get_be64s#else#define qemu_put_betl qemu_put_be32#define qemu_get_betl qemu_get_be32#define qemu_put_betls qemu_put_be32s#define qemu_get_betls qemu_get_be32s#endifint64_t qemu_ftell(QEMUFile *f);int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);typedef void SaveStateHandler(QEMUFile *f, void *opaque);typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);int qemu_loadvm(const char *filename);int qemu_savevm(const char *filename);int register_savevm(const char *idstr, int instance_id, int version_id, SaveStateHandler *save_state, LoadStateHandler *load_state, void *opaque);void qemu_get_timer(QEMUFile *f, QEMUTimer *ts);void qemu_put_timer(QEMUFile *f, QEMUTimer *ts);void cpu_save(QEMUFile *f, void *opaque);int cpu_load(QEMUFile *f, void *opaque, int version_id);/* block.c */typedef struct BlockDriverState BlockDriverState;typedef struct BlockDriver BlockDriver;extern BlockDriver bdrv_raw;extern BlockDriver bdrv_cow;extern BlockDriver bdrv_qcow;extern BlockDriver bdrv_vmdk;extern BlockDriver bdrv_cloop;extern BlockDriver bdrv_dmg;extern BlockDriver bdrv_bochs;extern BlockDriver bdrv_vpc;extern BlockDriver bdrv_vvfat;void bdrv_init(void);BlockDriver *bdrv_find_format(const char *format_name);int bdrv_create(BlockDriver *drv, const char *filename, int64_t size_in_sectors, const char *backing_file, int flags);BlockDriverState *bdrv_new(const char *device_name);void bdrv_delete(BlockDriverState *bs);int bdrv_open(BlockDriverState *bs, const char *filename, int snapshot);int bdrv_open2(BlockDriverState *bs, const char *filename, int snapshot, BlockDriver *drv);void bdrv_close(BlockDriverState *bs);int bdrv_read(BlockDriverState *bs, int64_t sector_num, uint8_t *buf, int nb_sectors);int bdrv_write(BlockDriverState *bs, int64_t sector_num, const uint8_t *buf, int nb_sectors);void bdrv_get_geometry(BlockDriverState *bs, int64_t *nb_sectors_ptr);int bdrv_commit(BlockDriverState *bs);void bdrv_set_boot_sector(BlockDriverState *bs, const uint8_t *data, int size);#define BDRV_TYPE_HD 0#define BDRV_TYPE_CDROM 1#define BDRV_TYPE_FLOPPY 2#define BIOS_ATA_TRANSLATION_AUTO 0#define BIOS_ATA_TRANSLATION_NONE 1#define BIOS_ATA_TRANSLATION_LBA 2void bdrv_set_geometry_hint(BlockDriverState *bs, int cyls, int heads, int secs);void bdrv_set_type_hint(BlockDriverState *bs, int type);void bdrv_set_translation_hint(BlockDriverState *bs, int translation);void bdrv_get_geometry_hint(BlockDriverState *bs, int *pcyls, int *pheads, int *psecs);int bdrv_get_type_hint(BlockDriverState *bs);int bdrv_get_translation_hint(BlockDriverState *bs);int bdrv_is_removable(BlockDriverState *bs);int bdrv_is_read_only(BlockDriverState *bs);int bdrv_is_inserted(BlockDriverState *bs);int bdrv_is_locked(BlockDriverState *bs);void bdrv_set_locked(BlockDriverState *bs, int locked);void bdrv_set_change_cb(BlockDriverState *bs, void (*change_cb)(void *opaque), void *opaque);void bdrv_get_format(BlockDriverState *bs, char *buf, int buf_size);void bdrv_info(void);BlockDriverState *bdrv_find(const char *name);void bdrv_iterate(void (*it)(void *opaque, const char *name), void *opaque);int bdrv_is_encrypted(BlockDriverState *bs);int bdrv_set_key(BlockDriverState *bs, const char *key);void bdrv_iterate_format(void (*it)(void *opaque, const char *name), void *opaque);const char *bdrv_get_device_name(BlockDriverState *bs);int qcow_get_cluster_size(BlockDriverState *bs);int qcow_compress_cluster(BlockDriverState *bs, int64_t sector_num, const uint8_t *buf);#ifndef QEMU_TOOLtypedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size, int boot_device, DisplayState *ds, const char **fd_filename, int snapshot, const char *kernel_filename, const char *kernel_cmdline, const char *initrd_filename);typedef struct QEMUMachine { const char *name; const char *desc; QEMUMachineInitFunc *init; struct QEMUMachine *next;} QEMUMachine;int qemu_register_machine(QEMUMachine *m);typedef void SetIRQFunc(void *opaque, int irq_num, int level);typedef void IRQRequestFunc(void *opaque, int level);/* ISA bus */extern target_phys_addr_t isa_mem_base;typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);int register_ioport_read(int start, int length, int size, IOPortReadFunc *func, void *opaque);int register_ioport_write(int start, int length, int size, IOPortWriteFunc *func, void *opaque);void isa_unassign_ioport(int start, int length);/* PCI bus */extern target_phys_addr_t pci_mem_base;typedef struct PCIBus PCIBus;typedef struct PCIDevice PCIDevice;typedef void PCIConfigWriteFunc(PCIDevice *pci_dev, uint32_t address, uint32_t data, int len);typedef uint32_t PCIConfigReadFunc(PCIDevice *pci_dev, uint32_t address, int len);typedef void PCIMapIORegionFunc(PCIDevice *pci_dev, int region_num, uint32_t addr, uint32_t size, int type);#define PCI_ADDRESS_SPACE_MEM 0x00#define PCI_ADDRESS_SPACE_IO 0x01#define PCI_ADDRESS_SPACE_MEM_PREFETCH 0x08typedef struct PCIIORegion { uint32_t addr; /* current PCI mapping address. -1 means not mapped */ uint32_t size; uint8_t type; PCIMapIORegionFunc *map_func;} PCIIORegion;#define PCI_ROM_SLOT 6#define PCI_NUM_REGIONS 7struct PCIDevice { /* PCI config space */ uint8_t config[256]; /* the following fields are read only */ PCIBus *bus; int devfn; char name[64]; PCIIORegion io_regions[PCI_NUM_REGIONS]; /* do not access the following fields */ PCIConfigReadFunc *config_read; PCIConfigWriteFunc *config_write; int irq_index;};PCIDevice *pci_register_device(PCIBus *bus, const char *name, int instance_size, int devfn, PCIConfigReadFunc *config_read, PCIConfigWriteFunc *config_write);void pci_register_io_region(PCIDevice *pci_dev, int region_num, uint32_t size, int type, PCIMapIORegionFunc *map_func);void pci_set_irq(PCIDevice *pci_dev, int irq_num, int level);uint32_t pci_default_read_config(PCIDevice *d, uint32_t address, int len);void pci_default_write_config(PCIDevice *d, uint32_t address, uint32_t val, int len);void generic_pci_save(QEMUFile* f, void *opaque);int generic_pci_load(QEMUFile* f, void *opaque, int version_id);extern struct PIIX3State *piix3_state;PCIBus *i440fx_init(void);void piix3_init(PCIBus *bus);void pci_bios_init(void);void pci_info(void);/* temporary: will be moved in platform specific file */void pci_set_pic(PCIBus *bus, SetIRQFunc *set_irq, void *irq_opaque);PCIBus *pci_prep_init(void);PCIBus *pci_grackle_init(uint32_t base);PCIBus *pci_pmac_init(void);PCIBus *pci_apb_init(target_ulong special_base, target_ulong mem_base);void pci_nic_init(PCIBus *bus, NICInfo *nd);/* openpic.c */typedef struct openpic_t openpic_t;void openpic_set_irq(void *opaque, int n_IRQ, int level);openpic_t *openpic_init (PCIBus *bus, int *pmem_index, int nb_cpus, CPUState **envp);/* heathrow_pic.c */typedef struct HeathrowPICS HeathrowPICS;void heathrow_pic_set_irq(void *opaque, int num, int level);HeathrowPICS *heathrow_pic_init(int *pmem_index);#ifdef HAS_AUDIOstruct soundhw { const char *name; const char *descr; int enabled; int isa; union { int (*init_isa) (AudioState *s); int (*init_pci) (PCIBus *bus, AudioState *s); } init;};extern struct soundhw soundhw[];#endif/* vga.c */#define VGA_RAM_SIZE (4096 * 1024)struct DisplayState { uint8_t *data; int linesize; int depth; int width; int height; void *opaque; void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h); void (*dpy_resize)(struct DisplayState *s, int w, int h); void (*dpy_refresh)(struct DisplayState *s); void (*dpy_copy)(struct DisplayState *s, int src_x, int src_y, int dst_x, int dst_y, int w, int h);};static inline void dpy_update(DisplayState *s, int x, int y, int w, int h){ s->dpy_update(s, x, y, w, h);}static inline void dpy_resize(DisplayState *s, int w, int h){ s->dpy_resize(s, w, h);}int vga_initialize(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, unsigned long vga_ram_offset, int vga_ram_size, unsigned long vga_bios_offset, int vga_bios_size);/* cirrus_vga.c */void pci_cirrus_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, unsigned long vga_ram_offset, int vga_ram_size);void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base, unsigned long vga_ram_offset, int vga_ram_size);/* sdl.c */void sdl_display_init(DisplayState *ds, int full_screen);/* cocoa.m */void cocoa_display_init(DisplayState *ds, int full_screen);/* vnc.c */void vnc_display_init(DisplayState *ds, int display);/* ide.c */#define MAX_DISKS 4extern BlockDriverState *bs_table[MAX_DISKS];void isa_ide_init(int iobase, int iobase2, int irq, BlockDriverState *hd0, BlockDriverState *hd1);void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table, int secondary_ide_enabled);void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -