2758
2758
/***********************************************************/
2759
/* register display */
2761
void register_displaystate(DisplayState *ds)
2771
DisplayState *get_displaystate(void)
2773
return display_state;
2759
2776
/* dumb display */
2761
2778
static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
4502
4519
const char *initrd_filename;
4503
4520
const char *kernel_filename, *kernel_cmdline;
4504
4521
const char *boot_devices = "";
4505
DisplayState *ds = &display_state;
4506
4523
DisplayChangeListener *dcl;
4507
4524
int cyls, heads, secs, translation;
4508
4525
const char *net_clients[MAX_NET_CLIENTS];
5414
5431
register_savevm("timer", 0, 2, timer_save, timer_load, NULL);
5415
5432
register_savevm_live("ram", 0, 3, ram_save_live, NULL, ram_load, NULL);
5435
/* must be after terminal init, SDL library changes signal handlers */
5439
/* Maintain compatibility with multiple stdio monitors */
5440
if (!strcmp(monitor_device,"stdio")) {
5441
for (i = 0; i < MAX_SERIAL_PORTS; i++) {
5442
const char *devname = serial_devices[i];
5443
if (devname && !strcmp(devname,"mon:stdio")) {
5444
monitor_device = NULL;
5446
} else if (devname && !strcmp(devname,"stdio")) {
5447
monitor_device = NULL;
5448
serial_devices[i] = "mon:stdio";
5454
if (kvm_enabled()) {
5457
ret = kvm_init(smp_cpus);
5459
fprintf(stderr, "failed to initialize KVM\n");
5464
machine->init(ram_size, vga_ram_size, boot_devices,
5465
kernel_filename, kernel_cmdline, initrd_filename, cpu_model);
5467
/* Set KVM's vcpu state to qemu's initial CPUState. */
5468
if (kvm_enabled()) {
5471
ret = kvm_sync_vcpus();
5473
fprintf(stderr, "failed to initialize vcpus\n");
5478
/* init USB devices */
5480
for(i = 0; i < usb_devices_index; i++) {
5481
if (usb_device_add(usb_devices[i]) < 0) {
5482
fprintf(stderr, "Warning: could not add USB device %s\n",
5488
/* just use the first displaystate for the moment */
5417
5490
/* terminal init */
5418
memset(&display_state, 0, sizeof(display_state));
5419
ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
5420
5491
if (nographic) {
5422
5493
fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
5450
5521
dpy_resize(ds);
5452
/* must be after terminal init, SDL library changes signal handlers */
5456
/* Maintain compatibility with multiple stdio monitors */
5457
if (!strcmp(monitor_device,"stdio")) {
5458
for (i = 0; i < MAX_SERIAL_PORTS; i++) {
5459
const char *devname = serial_devices[i];
5460
if (devname && !strcmp(devname,"mon:stdio")) {
5461
monitor_device = NULL;
5463
} else if (devname && !strcmp(devname,"stdio")) {
5464
monitor_device = NULL;
5465
serial_devices[i] = "mon:stdio";
5523
dcl = ds->listeners;
5524
while (dcl != NULL) {
5525
if (dcl->dpy_refresh != NULL) {
5526
ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
5527
qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
5470
5532
if (monitor_device) {
5471
5533
monitor_hd = qemu_chr_open("monitor", monitor_device);
5472
5534
if (!monitor_hd) {
5527
if (kvm_enabled()) {
5530
ret = kvm_init(smp_cpus);
5532
fprintf(stderr, "failed to initialize KVM\n");
5537
machine->init(ram_size, vga_ram_size, boot_devices, ds,
5538
kernel_filename, kernel_cmdline, initrd_filename, cpu_model);
5540
/* Set KVM's vcpu state to qemu's initial CPUState. */
5541
if (kvm_enabled()) {
5544
ret = kvm_sync_vcpus();
5546
fprintf(stderr, "failed to initialize vcpus\n");
5551
/* init USB devices */
5553
for(i = 0; i < usb_devices_index; i++) {
5554
if (usb_device_add(usb_devices[i]) < 0) {
5555
fprintf(stderr, "Warning: could not add USB device %s\n",
5561
dcl = ds->listeners;
5562
while (dcl != NULL) {
5563
if (dcl->dpy_refresh != NULL) {
5564
display_state.gui_timer = qemu_new_timer(rt_clock, gui_update, &display_state);
5565
qemu_mod_timer(display_state.gui_timer, qemu_get_clock(rt_clock));
5569
5589
#ifdef CONFIG_GDBSTUB
5570
5590
if (use_gdbstub) {
5571
5591
/* XXX: use standard host:port notation and modify options