#ifndefSYSEMU_H#defineSYSEMU_H/* Misc. things related to the system emulator. *//* vl.c */externconstchar*bios_name;externconstchar*bios_dir;externintvm_running;externconstchar*qemu_name;typedefstructvm_change_state_entryVMChangeStateEntry;typedefvoidVMChangeStateHandler(void*opaque,intrunning);typedefvoidVMStopHandler(void*opaque,intreason);VMChangeStateEntry*qemu_add_vm_change_state_handler(VMChangeStateHandler*cb,void*opaque);voidqemu_del_vm_change_state_handler(VMChangeStateEntry*e);intqemu_add_vm_stop_handler(VMStopHandler*cb,void*opaque);voidqemu_del_vm_stop_handler(VMStopHandler*cb,void*opaque);voidvm_start(void);voidvm_stop(intreason);int64_tcpu_get_ticks(void);voidcpu_enable_ticks(void);voidcpu_disable_ticks(void);voidqemu_system_reset_request(void);voidqemu_system_shutdown_request(void);voidqemu_system_powerdown_request(void);
voiddo_savevm(constchar*name);voiddo_loadvm(constchar*name);voiddo_delvm(constchar*name);voiddo_info_snapshots(void);voidmain_loop_wait(inttimeout);/* Polling handling *//* return TRUE if no sleep should be done afterwards */typedefintPollingFunc(void*opaque);intqemu_add_polling_cb(PollingFunc*func,void*opaque);voidqemu_del_polling_cb(PollingFunc*func,void*opaque);#ifdef_WIN32/* Wait objects handling */typedefvoidWaitObjectFunc(void*opaque);intqemu_add_wait_object(HANDLEhandle,WaitObjectFunc*func,void*opaque);voidqemu_del_wait_object(HANDLEhandle,WaitObjectFunc*func,void*opaque);#endif/* TAP win32 */inttap_win32_init(VLANState*vlan,constchar*ifname);/* SLIRP */voiddo_info_slirp(void);externintbios_size;externintcirrus_vga_enabled;externintvmsvga_enabled;externintgraphic_width;externintgraphic_height;externintgraphic_depth;externconstchar*keyboard_layout;externintwin2k_install_hack;externintalt_grab;externintusb_enabled;externintsmp_cpus;externintcursor_hide;externintgraphic_rotate;externintno_quit;externintsemihosting_enabled;externintautostart;externintold_param;externconstchar*bootp_filename;#ifdefUSE_KQEMUexternintkqemu_allowed;#endif#defineMAX_OPTION_ROMS16externconstchar*option_rom[MAX_OPTION_ROMS];externintnb_option_roms;#ifdefTARGET_SPARC#defineMAX_PROM_ENVS128externconstchar*prom_envs[MAX_PROM_ENVS];externunsignedintnb_prom_envs;#endif#ifdefined(TARGET_PPC)#defineBIOS_SIZE(1024*1024)#elifdefined(TARGET_SPARC64)#defineBIOS_SIZE((512+32)*1024)#elifdefined(TARGET_MIPS)#defineBIOS_SIZE(4*1024*1024)#endif