vl.h revision 9b898ee3642a830a4d4af4d0a485a49d157b5551
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * QEMU System Emulator header
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * Copyright (c) 2003 Fabrice Bellard
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * Permission is hereby granted, free of charge, to any person obtaining a copy
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * of this software and associated documentation files (the "Software"), to deal
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * in the Software without restriction, including without limitation the rights
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * copies of the Software, and to permit persons to whom the Software is
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * furnished to do so, subject to the following conditions:
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * The above copyright notice and this permission notice shall be included in
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * all copies or substantial portions of the Software.
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync * THE SOFTWARE.
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync/* we put basic includes here to avoid repeating them in device drivers */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#endif /* !VBOX */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncstatic inline char *realpath(const char *path, char *resolved_path)
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#endif /* !VBOX */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync/* we use QEMU_TOOL in the command line tools which do not depend on
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync the target CPU type */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#endif /* !VBOX */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#endif /* !defined(QEMU_TOOL) */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#endif /* VBOX */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#define xglue(x, y) x ## y
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#define tostring(s) #s
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#define MIN(a, b) (((a) < (b)) ? (a) : (b))
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#define MAX(a, b) (((a) > (b)) ? (a) : (b))
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncvoid pstrcpy(char *buf, int buf_size, const char *str);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncchar *pstrcat(char *buf, int buf_size, const char *s);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncint strstart(const char *str, const char *val, const char **ptr);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncint stristart(const char *str, const char *val, const char **ptr);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncuint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncextern const char *bios_dir;
84d86b6582f583d8f79920843e87d0589816fcd3vboxsynctypedef struct vm_change_state_entry VMChangeStateEntry;
84d86b6582f583d8f79920843e87d0589816fcd3vboxsynctypedef void VMChangeStateHandler(void *opaque, int running);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsynctypedef void VMStopHandler(void *opaque, int reason);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncVMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncvoid qemu_del_vm_change_state_handler(VMChangeStateEntry *e);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncint qemu_add_vm_stop_handler(VMStopHandler *cb, void *opaque);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncvoid qemu_del_vm_stop_handler(VMStopHandler *cb, void *opaque);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncvoid qemu_register_reset(QEMUResetHandler *func, void *opaque);
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync// Please implement a power failure function to signal the OS
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#define qemu_system_powerdown() do{}while(0)
84d86b6582f583d8f79920843e87d0589816fcd3vboxsyncextern const char *keyboard_layout;
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync/* XXX: make it dynamic */
84d86b6582f583d8f79920843e87d0589816fcd3vboxsync#if defined (TARGET_PPC) || defined (TARGET_SPARC64)
typedef struct QEMUPutMouseEntry {
void *qemu_put_mouse_event_opaque;
char *qemu_put_mouse_event_name;
const char *name);
int kbd_mouse_is_absolute(void);
void do_info_mice(void);
void *opaque);
void *opaque);
#ifdef _WIN32
int speed;
int parity;
int data_bits;
int stop_bits;
typedef struct CharDriverState {
void *handler_opaque;
void *opaque;
void *opaque);
typedef void (*vga_hw_update_ptr)(void *);
typedef void (*vga_hw_invalidate_ptr)(void *);
typedef void (*vga_hw_screen_dump_ptr)(void *, const char *);
void *opaque);
void vga_hw_update(void);
void vga_hw_invalidate(void);
int is_graphic_console(void);
struct VLANClientState {
void *opaque;
typedef struct VLANState {
int id;
} VLANState;
void *opaque);
void do_info_network(void);
typedef struct NICInfo {
const char *model;
} NICInfo;
extern int nb_nics;
extern int pit_min_timer_count;
void cpu_enable_ticks(void);
void cpu_disable_ticks(void);
int instance_id,
int version_id,
void *opaque);
void do_info_snapshots(void);
int qemu_bh_poll(void);
/* block.c */
typedef struct BlockDriverInfo {
int cluster_size;
typedef struct QEMUSnapshotInfo {
void bdrv_init(void);
void qemu_aio_init(void);
void qemu_aio_poll(void);
void qemu_aio_flush(void);
void qemu_aio_wait_start(void);
void qemu_aio_wait(void);
void qemu_aio_wait_end(void);
#define BDRV_TYPE_HD 0
#define BIOS_ATA_TRANSLATION_AUTO 0
void bdrv_info(void);
void *opaque);
const char *snapshot_id);
const char *base_path,
const char *filename);
#ifndef QEMU_TOOL
int boot_device,
const char *initrd_filename);
typedef struct QEMUMachine {
const char *name;
const char *desc;
} QEMUMachine;
typedef struct PCIIORegion {
} PCIIORegion;
struct PCIDevice {
int devfn;
int irq_index;
void pci_info(void);
/* prep_pci.c */
/* grackle_pci.c */
/* unin_pci.c */
/* apb_pci.c */
void *pic);
/* piix_pci.c */
/* openpic.c */
/* heathrow_pic.c */
/* gt64xxx.c */
#ifdef HAS_AUDIO
struct soundhw {
const char *name;
const char *descr;
int enabled;
int isa;
} init;
/* vga.c */
struct DisplayState {
int linesize;
int depth;
int width;
int height;
void *opaque;
s->dpy_update(s, x, y, w, h);
s->dpy_resize(s, w, h);
/* cirrus_vga.c */
/* sdl.c */
/* vnc.c */
/* x_keymap.c */
/* ide.c */
int secondary_ide_enabled);
/* cdrom.c */
/* es1370.c */
/* sb16.c */
/* adlib.c */
/* gus.c */
/* dma.c */
void DMA_run (void);
void *opaque);
/* fdc.c */
/* ne2000.c */
/* rtl8139.c */
/* pcnet.c */
/* pckbd.c */
void kbd_init(void);
/* mc146818rtc.c */
/* serial.c */
/* parallel.c */
/* i8259.c */
void *alt_irq_opaque);
void pic_info(void);
void irq_info(void);
/* i8254.c */
/* pcspk.c */
/* acpi.c */
extern int acpi_enabled;
void acpi_bios_init(void);
/* smbus_eeprom.c */
/* pc.c */
extern int fd_bootchk;
int ioport_get_a20(void);
/* ppc.c */
/* mips_r4k.c */
/* mips_malta.c */
/* mips_timer.c */
extern void cpu_mips_irqctrl_init (void);
/* shix.c */
#ifdef TARGET_PPC
/* sun4m.c */
/* iommu.c */
/* tcx.c */
/* slavio_intctl.c */
void *slavio_intctl_init();
/* loader.c */
/* slavio_timer.c */
/* slavio_serial.c */
/* slavio_misc.c */
/* esp.c */
/* sparc32_dma.c */
void *intctl);
void *lance_opaque);
/* cs4231.c */
/* sun4u.c */
const unsigned char *arch,
const char *cmdline,
/* adb.c */
struct ADBDevice {
int devaddr;
int handler;
void *opaque;
typedef struct ADBBusState {
int nb_devices;
int poll_index;
} ADBBusState;
void *opaque);
/* cuda.c */
void usb_info(void);
/* scsi-disk.c */
enum scsi_reason {
int tcq,
void *opaque);
/* lsi53c895a.c */
/* integratorcp.c */
/* versatilepb.c */
/* realview.c */
/* ps2.c */
void ps2_queue(void *, int b);
/* smc91c111.c */
/* pl110.c */
/* pl011.c */
/* pl050.c */
/* pl080.c */
/* pl190.c */
/* arm-timer.c */
/* arm_sysctl.c */
/* arm_gic.c */
/* arm_boot.c */
int board_id);
/* sh7750.c */
struct SH7750State;
/* tc58128.c */
#include "gdbstub.h"
/* monitor.c */
void term_flush(void);
void term_print_help(void);
/* readline.c */
extern int completion_index;
void kqemu_record_dump(void);