File:  [Qemu by Fabrice Bellard] / qemu / sysemu.h
Revision 1.1.1.7 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:56:44 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1000, qemu0151, HEAD
qemu 0.15.1

    1: #ifndef SYSEMU_H
    2: #define SYSEMU_H
    3: /* Misc. things related to the system emulator.  */
    4: 
    5: #include "qemu-common.h"
    6: #include "qemu-option.h"
    7: #include "qemu-queue.h"
    8: #include "qemu-timer.h"
    9: #include "notify.h"
   10: 
   11: /* vl.c */
   12: extern const char *bios_name;
   13: 
   14: extern int vm_running;
   15: extern const char *qemu_name;
   16: extern uint8_t qemu_uuid[];
   17: int qemu_uuid_parse(const char *str, uint8_t *uuid);
   18: #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx"
   19: 
   20: typedef struct vm_change_state_entry VMChangeStateEntry;
   21: typedef void VMChangeStateHandler(void *opaque, int running, int reason);
   22: 
   23: VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
   24:                                                      void *opaque);
   25: void qemu_del_vm_change_state_handler(VMChangeStateEntry *e);
   26: 
   27: #define VMSTOP_USER      0
   28: #define VMSTOP_DEBUG     1
   29: #define VMSTOP_SHUTDOWN  2
   30: #define VMSTOP_DISKFULL  3
   31: #define VMSTOP_WATCHDOG  4
   32: #define VMSTOP_PANIC     5
   33: #define VMSTOP_SAVEVM    6
   34: #define VMSTOP_LOADVM    7
   35: #define VMSTOP_MIGRATE   8
   36: 
   37: #define VMRESET_SILENT   false
   38: #define VMRESET_REPORT   true
   39: 
   40: void vm_start(void);
   41: void vm_stop(int reason);
   42: 
   43: void qemu_system_reset_request(void);
   44: void qemu_system_shutdown_request(void);
   45: void qemu_system_powerdown_request(void);
   46: void qemu_system_debug_request(void);
   47: void qemu_system_vmstop_request(int reason);
   48: int qemu_shutdown_requested_get(void);
   49: int qemu_reset_requested_get(void);
   50: int qemu_shutdown_requested(void);
   51: int qemu_reset_requested(void);
   52: int qemu_powerdown_requested(void);
   53: void qemu_system_killed(int signal, pid_t pid);
   54: void qemu_kill_report(void);
   55: extern qemu_irq qemu_system_powerdown;
   56: void qemu_system_reset(bool report);
   57: 
   58: void qemu_add_exit_notifier(Notifier *notify);
   59: void qemu_remove_exit_notifier(Notifier *notify);
   60: 
   61: void qemu_add_machine_init_done_notifier(Notifier *notify);
   62: 
   63: void do_savevm(Monitor *mon, const QDict *qdict);
   64: int load_vmstate(const char *name);
   65: void do_delvm(Monitor *mon, const QDict *qdict);
   66: void do_info_snapshots(Monitor *mon);
   67: 
   68: void qemu_announce_self(void);
   69: 
   70: void main_loop_wait(int nonblocking);
   71: 
   72: bool qemu_savevm_state_blocked(Monitor *mon);
   73: int qemu_savevm_state_begin(Monitor *mon, QEMUFile *f, int blk_enable,
   74:                             int shared);
   75: int qemu_savevm_state_iterate(Monitor *mon, QEMUFile *f);
   76: int qemu_savevm_state_complete(Monitor *mon, QEMUFile *f);
   77: void qemu_savevm_state_cancel(Monitor *mon, QEMUFile *f);
   78: int qemu_loadvm_state(QEMUFile *f);
   79: 
   80: /* SLIRP */
   81: void do_info_slirp(Monitor *mon);
   82: 
   83: typedef enum DisplayType
   84: {
   85:     DT_DEFAULT,
   86:     DT_CURSES,
   87:     DT_SDL,
   88:     DT_NOGRAPHIC,
   89:     DT_NONE,
   90: } DisplayType;
   91: 
   92: extern int autostart;
   93: extern int bios_size;
   94: 
   95: typedef enum {
   96:     VGA_NONE, VGA_STD, VGA_CIRRUS, VGA_VMWARE, VGA_XENFB, VGA_QXL,
   97: } VGAInterfaceType;
   98: 
   99: extern int vga_interface_type;
  100: #define cirrus_vga_enabled (vga_interface_type == VGA_CIRRUS)
  101: #define std_vga_enabled (vga_interface_type == VGA_STD)
  102: #define xenfb_enabled (vga_interface_type == VGA_XENFB)
  103: #define vmsvga_enabled (vga_interface_type == VGA_VMWARE)
  104: #define qxl_enabled (vga_interface_type == VGA_QXL)
  105: 
  106: extern int graphic_width;
  107: extern int graphic_height;
  108: extern int graphic_depth;
  109: extern uint8_t irq0override;
  110: extern DisplayType display_type;
  111: extern const char *keyboard_layout;
  112: extern int win2k_install_hack;
  113: extern int rtc_td_hack;
  114: extern int alt_grab;
  115: extern int ctrl_grab;
  116: extern int usb_enabled;
  117: extern int smp_cpus;
  118: extern int max_cpus;
  119: extern int cursor_hide;
  120: extern int graphic_rotate;
  121: extern int no_quit;
  122: extern int no_shutdown;
  123: extern int semihosting_enabled;
  124: extern int old_param;
  125: extern int boot_menu;
  126: extern QEMUClock *rtc_clock;
  127: 
  128: #define MAX_NODES 64
  129: extern int nb_numa_nodes;
  130: extern uint64_t node_mem[MAX_NODES];
  131: extern uint64_t node_cpumask[MAX_NODES];
  132: 
  133: #define MAX_OPTION_ROMS 16
  134: typedef struct QEMUOptionRom {
  135:     const char *name;
  136:     int32_t bootindex;
  137: } QEMUOptionRom;
  138: extern QEMUOptionRom option_rom[MAX_OPTION_ROMS];
  139: extern int nb_option_roms;
  140: 
  141: #define MAX_PROM_ENVS 128
  142: extern const char *prom_envs[MAX_PROM_ENVS];
  143: extern unsigned int nb_prom_envs;
  144: 
  145: /* pci-hotplug */
  146: void pci_device_hot_add(Monitor *mon, const QDict *qdict);
  147: void drive_hot_add(Monitor *mon, const QDict *qdict);
  148: void do_pci_device_hot_remove(Monitor *mon, const QDict *qdict);
  149: 
  150: /* pcie aer error injection */
  151: void pcie_aer_inject_error_print(Monitor *mon, const QObject *data);
  152: int do_pcie_aer_inejct_error(Monitor *mon,
  153:                              const QDict *qdict, QObject **ret_data);
  154: 
  155: /* serial ports */
  156: 
  157: #define MAX_SERIAL_PORTS 4
  158: 
  159: extern CharDriverState *serial_hds[MAX_SERIAL_PORTS];
  160: 
  161: /* parallel ports */
  162: 
  163: #define MAX_PARALLEL_PORTS 3
  164: 
  165: extern CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
  166: 
  167: void do_usb_add(Monitor *mon, const QDict *qdict);
  168: void do_usb_del(Monitor *mon, const QDict *qdict);
  169: void usb_info(Monitor *mon);
  170: 
  171: void rtc_change_mon_event(struct tm *tm);
  172: 
  173: void register_devices(void);
  174: 
  175: void add_boot_device_path(int32_t bootindex, DeviceState *dev,
  176:                           const char *suffix);
  177: char *get_boot_devices_list(uint32_t *size);
  178: #endif

unix.superglobalmegacorp.com