#include "qemu-option.h"
#include "qemu-queue.h"
#include "qemu-timer.h"
-#include "qdict.h"
#ifdef _WIN32
#include <windows.h>
void qemu_system_reset(void);
void do_savevm(Monitor *mon, const QDict *qdict);
-int load_vmstate(Monitor *mon, const char *name);
+int load_vmstate(const char *name);
void do_delvm(Monitor *mon, const QDict *qdict);
void do_info_snapshots(Monitor *mon);
+void cpu_synchronize_all_states(void);
+void cpu_synchronize_all_post_reset(void);
+void cpu_synchronize_all_post_init(void);
+
void qemu_announce_self(void);
-void main_loop_wait(int timeout);
+void main_loop_wait(int nonblocking);
-int qemu_savevm_state_begin(QEMUFile *f);
-int qemu_savevm_state_iterate(QEMUFile *f);
-int qemu_savevm_state_complete(QEMUFile *f);
-int qemu_savevm_state(QEMUFile *f);
+int qemu_savevm_state_begin(Monitor *mon, QEMUFile *f, int blk_enable,
+ int shared);
+int qemu_savevm_state_iterate(Monitor *mon, QEMUFile *f);
+int qemu_savevm_state_complete(Monitor *mon, QEMUFile *f);
+void qemu_savevm_state_cancel(Monitor *mon, QEMUFile *f);
int qemu_loadvm_state(QEMUFile *f);
-void qemu_errors_to_file(FILE *fp);
-void qemu_errors_to_mon(Monitor *mon);
-void qemu_errors_to_previous(void);
-void qemu_error(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
-
#ifdef _WIN32
/* Polling handling */
void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque);
#endif
-/* TAP win32 */
-int tap_win32_init(VLANState *vlan, const char *model,
- const char *name, const char *ifname);
-
/* SLIRP */
void do_info_slirp(Monitor *mon);
extern int win2k_install_hack;
extern int rtc_td_hack;
extern int alt_grab;
+extern int ctrl_grab;
extern int usb_enabled;
extern int smp_cpus;
extern int max_cpus;
extern int cursor_hide;
extern int graphic_rotate;
extern int no_quit;
+extern int no_shutdown;
extern int semihosting_enabled;
extern int old_param;
extern int boot_menu;
extern const char *option_rom[MAX_OPTION_ROMS];
extern int nb_option_roms;
-#ifdef NEED_CPU_H
-#if defined(TARGET_SPARC) || defined(TARGET_PPC)
#define MAX_PROM_ENVS 128
extern const char *prom_envs[MAX_PROM_ENVS];
extern unsigned int nb_prom_envs;
-#endif
-#endif
typedef enum {
IF_NONE,
int bus;
int unit;
QemuOpts *opts;
- BlockInterfaceErrorAction onerror;
+ BlockInterfaceErrorAction on_read_error;
+ BlockInterfaceErrorAction on_write_error;
char serial[BLOCK_SERIAL_STRLEN + 1];
QTAILQ_ENTRY(DriveInfo) next;
} DriveInfo;
extern DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit);
extern DriveInfo *drive_get_by_id(const char *id);
extern int drive_get_max_bus(BlockInterfaceType type);
-extern void drive_uninit(BlockDriverState *bdrv);
+extern void drive_uninit(DriveInfo *dinfo);
extern const char *drive_get_serial(BlockDriverState *bdrv);
-extern BlockInterfaceErrorAction drive_get_onerror(BlockDriverState *bdrv);
+
+extern BlockInterfaceErrorAction drive_get_on_error(
+ BlockDriverState *bdrv, int is_read);
BlockDriverState *qdev_init_bdrv(DeviceState *dev, BlockInterfaceType type);
/* device-hotplug */
-typedef int (dev_match_fn)(void *dev_private, void *arg);
-
DriveInfo *add_init_drive(const char *opts);
-void destroy_nic(dev_match_fn *match_fn, void *arg);
-void destroy_bdrvs(dev_match_fn *match_fn, void *arg);
/* pci-hotplug */
void pci_device_hot_add(Monitor *mon, const QDict *qdict);
void drive_hot_add(Monitor *mon, const QDict *qdict);
-void pci_device_hot_remove(Monitor *mon, const char *pci_addr);
+int pci_device_hot_remove(Monitor *mon, const char *pci_addr);
void do_pci_device_hot_remove(Monitor *mon, const QDict *qdict);
-void pci_device_hot_remove_success(PCIDevice *dev);
/* serial ports */
extern CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
-/* virtio consoles */
-
-#define MAX_VIRTIO_CONSOLES 1
-
-extern CharDriverState *virtcon_hds[MAX_VIRTIO_CONSOLES];
-
#define TFR(expr) do { if ((expr) != -1) break; } while (errno == EINTR)
#ifdef HAS_AUDIO
void do_usb_del(Monitor *mon, const QDict *qdict);
void usb_info(Monitor *mon);
+void rtc_change_mon_event(struct tm *tm);
+
void register_devices(void);
#endif