diff options
-rw-r--r-- | Changelog | 2 | ||||
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | coroutine-sigaltstack.c | 2 | ||||
-rw-r--r-- | disas.c | 2 | ||||
-rw-r--r-- | hw/mips_fulong2e.c | 1 | ||||
-rw-r--r-- | hw/pc_piix.c | 4 | ||||
-rw-r--r-- | hw/qdev-monitor.c | 6 | ||||
-rw-r--r-- | hw/qdev.c | 5 | ||||
-rw-r--r-- | hw/qxl.c | 8 | ||||
-rw-r--r-- | hw/usb/hcd-ehci.c | 4 | ||||
-rw-r--r-- | hw/usb/host-linux.c | 9 | ||||
-rw-r--r-- | include/qemu/object.h | 6 | ||||
-rw-r--r-- | qapi-schema-guest.json | 2 | ||||
-rw-r--r-- | qapi/qmp-input-visitor.c | 11 | ||||
-rw-r--r-- | qemu-doc.texi | 81 | ||||
-rw-r--r-- | qemu-ga.c | 2 | ||||
-rw-r--r-- | qemu-options.hx | 155 | ||||
-rw-r--r-- | qemu-timer.c | 7 | ||||
-rw-r--r-- | qga/commands-posix.c | 4 | ||||
-rw-r--r-- | qom/object.c | 2 | ||||
-rw-r--r-- | target-i386/cpu-qom.h | 4 | ||||
-rw-r--r-- | target-i386/cpu.c | 9 | ||||
-rw-r--r-- | target-i386/helper.c | 2 | ||||
-rw-r--r-- | target-mips/cpu.h | 1 | ||||
-rw-r--r-- | tests/tcg/test-mmap.c | 2 |
25 files changed, 187 insertions, 146 deletions
@@ -447,7 +447,7 @@ version 0.5.0: - multi-target build - fixed: no error code in hardware interrupts - fixed: pop ss, mov ss, x and sti disable hardware irqs for the next insn - - correct single stepping thru string operations + - correct single stepping through string operations - preliminary SPARC target support (Thomas M. Ogrisegg) - tun-fd option (Rusty Russell) - automatic IDE geometry detection @@ -1006,7 +1006,7 @@ echo " --datadir=PATH install firmware in PATH$confsuffix" echo " --docdir=PATH install documentation in PATH$confsuffix" echo " --bindir=PATH install binaries in PATH" echo " --sysconfdir=PATH install config in PATH$confsuffix" -echo " --with-confsuffix=SUFFIX suffix for Qemu data inside datadir and sysconfdir [$confsuffix]" +echo " --with-confsuffix=SUFFIX suffix for QEMU data inside datadir and sysconfdir [$confsuffix]" echo " --enable-debug-tcg enable TCG debugging" echo " --disable-debug-tcg disable TCG debugging (default)" echo " --enable-debug enable common debug build options" diff --git a/coroutine-sigaltstack.c b/coroutine-sigaltstack.c index b2e316cea2..861e87805a 100644 --- a/coroutine-sigaltstack.c +++ b/coroutine-sigaltstack.c @@ -257,7 +257,7 @@ static Coroutine *coroutine_new(void) /* * Now enter the trampoline again, but this time not as a signal * handler. Instead we jump into it directly. The functionally - * redundant ping-pong pointer arithmentic is neccessary to avoid + * redundant ping-pong pointer arithmetic is necessary to avoid * type-conversion warnings related to the `volatile' qualifier and * the fact that `jmp_buf' usually is an array type. */ @@ -51,7 +51,7 @@ perror_memory (int status, bfd_vma memaddr, struct disassemble_info *info) "Address 0x%" PRIx64 " is out of bounds.\n", memaddr); } -/* This could be in a separate file, to save miniscule amounts of space +/* This could be in a separate file, to save minuscule amounts of space in statically linked executables. */ /* Just print the address is hex. This is included for completeness even diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c index 37dc711e08..1a8df10429 100644 --- a/hw/mips_fulong2e.c +++ b/hw/mips_fulong2e.c @@ -284,7 +284,6 @@ static void mips_fulong2e_init(ram_addr_t ram_size, const char *boot_device, exit(1); } - register_savevm(NULL, "cpu", 0, 3, cpu_save, cpu_load, env); qemu_register_reset(main_cpu_reset, env); /* fulong 2e has 256M ram. */ diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 6a75718fbb..a7aad4b022 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -522,6 +522,10 @@ static QEMUMachine pc_machine_v0_12 = { .driver = "virtio-blk-pci",\ .property = "vectors",\ .value = stringify(0),\ + },{\ + .driver = "PCI",\ + .property = "rombar",\ + .value = stringify(0),\ } static QEMUMachine pc_machine_v0_11 = { diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index dc4e4e1b84..eed781d2f0 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -158,7 +158,7 @@ int qdev_device_help(QemuOpts *opts) * for removal. This conditional should be removed along with * it. */ - if (!prop->info->parse) { + if (!prop->info->set) { continue; /* no way to set it, don't show */ } error_printf("%s.%s=%s\n", driver, prop->name, @@ -166,7 +166,7 @@ int qdev_device_help(QemuOpts *opts) } if (info->bus_info) { for (prop = info->bus_info->props; prop && prop->name; prop++) { - if (!prop->info->parse) { + if (!prop->info->set) { continue; /* no way to set it, don't show */ } error_printf("%s.%s=%s\n", driver, prop->name, @@ -493,7 +493,7 @@ static void qdev_print_props(Monitor *mon, DeviceState *dev, Property *props, if (object_property_get_type(OBJECT(dev), legacy_name, NULL)) { value = object_property_get_str(OBJECT(dev), legacy_name, &err); } else { - value = object_property_get_str(OBJECT(dev), props->name, &err); + value = object_property_print(OBJECT(dev), props->name, &err); } g_free(legacy_name); @@ -576,9 +576,12 @@ void qdev_property_add_legacy(DeviceState *dev, Property *prop, { gchar *name, *type; - if (!prop->info->print && !prop->info->parse) { + /* Register pointer properties as legacy properties */ + if (!prop->info->print && !prop->info->parse && + (prop->info->set || prop->info->get)) { return; } + name = g_strdup_printf("legacy-%s", prop->name); type = g_strdup_printf("legacy<%s>", prop->info->legacy_name ?: prop->info->name); @@ -1746,13 +1746,16 @@ static int qxl_init_common(PCIQXLDevice *qxl) switch (qxl->revision) { case 1: /* spice 0.4 -- qxl-1 */ pci_device_rev = QXL_REVISION_STABLE_V04; + io_size = 8; break; case 2: /* spice 0.6 -- qxl-2 */ pci_device_rev = QXL_REVISION_STABLE_V06; + io_size = 16; break; case 3: /* qxl-3 */ default: pci_device_rev = QXL_DEFAULT_REVISION; + io_size = msb_mask(QXL_IO_RANGE_SIZE * 2 - 1); break; } @@ -1770,11 +1773,6 @@ static int qxl_init_common(PCIQXLDevice *qxl) memory_region_init_alias(&qxl->vram32_bar, "qxl.vram32", &qxl->vram_bar, 0, qxl->vram32_size); - io_size = msb_mask(QXL_IO_RANGE_SIZE * 2 - 1); - if (qxl->revision == 1) { - io_size = 8; - } - memory_region_init_io(&qxl->io_bar, &qxl_io_ops, qxl, "qxl-ioports", io_size); if (qxl->id == 0) { diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 4ff4d40a8c..e759c996ce 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -1091,8 +1091,8 @@ static void ehci_mem_writel(void *ptr, target_phys_addr_t addr, uint32_t val) break; case USBSTS: - val &= USBSTS_RO_MASK; // bits 6 thru 31 are RO - ehci_clear_usbsts(s, val); // bits 0 thru 5 are R/WC + val &= USBSTS_RO_MASK; // bits 6 through 31 are RO + ehci_clear_usbsts(s, val); // bits 0 through 5 are R/WC val = s->usbsts; ehci_set_interrupt(s, 0); break; diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c index 048f8ffa8b..a95b0eda55 100644 --- a/hw/usb/host-linux.c +++ b/hw/usb/host-linux.c @@ -1058,6 +1058,15 @@ static int usb_host_handle_control(USBDevice *dev, USBPacket *p, ret = usb_host_set_interface(s, index, value); trace_usb_host_req_emulated(s->bus_num, s->addr, p, ret); return ret; + + case EndpointOutRequest | USB_REQ_CLEAR_FEATURE: + if (value == 0) { /* clear halt */ + int pid = (index & USB_DIR_IN) ? USB_TOKEN_IN : USB_TOKEN_OUT; + ioctl(s->fd, USBDEVFS_CLEAR_HALT, &index); + clear_halt(s, pid, index & 0x0f); + trace_usb_host_req_emulated(s->bus_num, s->addr, p, 0); + return 0; + } } /* The rest are asynchronous */ diff --git a/include/qemu/object.h b/include/qemu/object.h index ca1649c918..d93b77293f 100644 --- a/include/qemu/object.h +++ b/include/qemu/object.h @@ -555,6 +555,12 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *klass, */ const char *object_class_get_name(ObjectClass *klass); +/** + * object_class_by_name: + * @typename: The QOM typename to obtain the class for. + * + * Returns: The class for @typename or %NULL if not found. + */ ObjectClass *object_class_by_name(const char *typename); void object_class_foreach(void (*fn)(ObjectClass *klass, void *opaque), diff --git a/qapi-schema-guest.json b/qapi-schema-guest.json index d7a073ee70..692b570675 100644 --- a/qapi-schema-guest.json +++ b/qapi-schema-guest.json @@ -18,7 +18,7 @@ # lexer/tokenizer/parser state should be flushed/reset in # preparation for reliably receiving the subsequent response. As # an optimization, clients may opt to ignore all data until a -# sentinel value is receiving to avoid unecessary processing of +# sentinel value is receiving to avoid unnecessary processing of # stale data. # # Similarly, clients should also precede this *request* diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c index 4cdc47dab5..107d8d361b 100644 --- a/qapi/qmp-input-visitor.c +++ b/qapi/qmp-input-visitor.c @@ -246,13 +246,18 @@ static void qmp_input_type_number(Visitor *v, double *obj, const char *name, QmpInputVisitor *qiv = to_qiv(v); QObject *qobj = qmp_input_get_object(qiv, name); - if (!qobj || qobject_type(qobj) != QTYPE_QFLOAT) { + if (!qobj || (qobject_type(qobj) != QTYPE_QFLOAT && + qobject_type(qobj) != QTYPE_QINT)) { error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", - "double"); + "number"); return; } - *obj = qfloat_get_double(qobject_to_qfloat(qobj)); + if (qobject_type(qobj) == QTYPE_QINT) { + *obj = qint_get_int(qobject_to_qint(qobj)); + } else { + *obj = qfloat_get_double(qobject_to_qfloat(qobj)); + } } static void qmp_input_start_optional(Visitor *v, bool *present, diff --git a/qemu-doc.texi b/qemu-doc.texi index e5d7ac41ab..0af0ff45c2 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -227,15 +227,15 @@ QEMU uses GUS emulation (GUSEMU32 @url{http://www.deinmeister.de/gusemu/}) by Tibor "TS" Schütz. Note that, by default, GUS shares IRQ(7) with parallel ports and so -qemu must be told to not have parallel ports to have working GUS +QEMU must be told to not have parallel ports to have working GUS. @example -qemu dos.img -soundhw gus -parallel none +qemu-system-i386 dos.img -soundhw gus -parallel none @end example Alternatively: @example -qemu dos.img -device gus,irq=5 +qemu-system-i386 dos.img -device gus,irq=5 @end example Or some other unclaimed IRQ. @@ -251,7 +251,7 @@ CS4231A is the chip used in Windows Sound System and GUSMAX products Download and uncompress the linux image (@file{linux.img}) and type: @example -qemu linux.img +qemu-system-i386 linux.img @end example Linux should boot and give you a prompt. @@ -261,7 +261,7 @@ Linux should boot and give you a prompt. @example @c man begin SYNOPSIS -usage: qemu [options] [@var{disk_image}] +usage: qemu-system-i386 [options] [@var{disk_image}] @c man end @end example @@ -575,7 +575,7 @@ QEMU can automatically create a virtual FAT disk image from a directory tree. In order to use it, just type: @example -qemu linux.img -hdb fat:/my_directory +qemu-system-i386 linux.img -hdb fat:/my_directory @end example Then you access access to all the files in the @file{/my_directory} @@ -585,14 +585,14 @@ them via SAMBA or NFS. The default access is @emph{read-only}. Floppies can be emulated with the @code{:floppy:} option: @example -qemu linux.img -fda fat:floppy:/my_directory +qemu-system-i386 linux.img -fda fat:floppy:/my_directory @end example A read/write support is available for testing (beta stage) with the @code{:rw:} option: @example -qemu linux.img -fda fat:floppy:rw:/my_directory +qemu-system-i386 linux.img -fda fat:floppy:rw:/my_directory @end example What you should @emph{never} do: @@ -610,14 +610,14 @@ QEMU can access directly to block device exported using the Network Block Device protocol. @example -qemu linux.img -hdb nbd:my_nbd_server.mydomain.org:1024 +qemu-system-i386 linux.img -hdb nbd:my_nbd_server.mydomain.org:1024 @end example If the NBD server is located on the same host, you can use an unix socket instead of an inet socket: @example -qemu linux.img -hdb nbd:unix:/tmp/my_socket +qemu-system-i386 linux.img -hdb nbd:unix:/tmp/my_socket @end example In this case, the block device must be exported using qemu-nbd: @@ -633,15 +633,15 @@ qemu-nbd --socket=/tmp/my_socket --share=2 my_disk.qcow2 and then you can use it with two guests: @example -qemu linux1.img -hdb nbd:unix:/tmp/my_socket -qemu linux2.img -hdb nbd:unix:/tmp/my_socket +qemu-system-i386 linux1.img -hdb nbd:unix:/tmp/my_socket +qemu-system-i386 linux2.img -hdb nbd:unix:/tmp/my_socket @end example If the nbd-server uses named exports (since NBD 2.9.18), you must use the "exportname" option: @example -qemu -cdrom nbd:localhost:exportname=debian-500-ppc-netinst -qemu -cdrom nbd:localhost:exportname=openSUSE-11.1-ppc-netinst +qemu-system-i386 -cdrom nbd:localhost:exportname=debian-500-ppc-netinst +qemu-system-i386 -cdrom nbd:localhost:exportname=openSUSE-11.1-ppc-netinst @end example @node disk_images_sheepdog @@ -666,7 +666,7 @@ qemu-img convert @var{filename} sheepdog:@var{image} You can boot from the Sheepdog disk image with the command: @example -qemu sheepdog:@var{image} +qemu-system-i386 sheepdog:@var{image} @end example You can also create a snapshot of the Sheepdog image like qcow2. @@ -678,7 +678,7 @@ where @var{tag} is a tag name of the newly created snapshot. To boot from the Sheepdog snapshot, specify the tag name of the snapshot. @example -qemu sheepdog:@var{image}:@var{tag} +qemu-system-i386 sheepdog:@var{image}:@var{tag} @end example You can create a cloned image from the existing snapshot. @@ -692,7 +692,7 @@ If the Sheepdog daemon doesn't run on the local host, you need to specify one of the Sheepdog servers to connect to. @example qemu-img create sheepdog:@var{hostname}:@var{port}:@var{image} @var{size} -qemu sheepdog:@var{hostname}:@var{port}:@var{image} +qemu-system-i386 sheepdog:@var{hostname}:@var{port}:@var{image} @end example @node disk_images_iscsi @@ -899,7 +899,7 @@ zero-copy communication to the application level of the guests. The basic syntax is: @example -qemu -device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>] +qemu-system-i386 -device ivshmem,size=<size in format accepted by -m>[,shm=<shm name>] @end example If desired, interrupts can be sent between guest VMs accessing the same shared @@ -909,9 +909,9 @@ is qemu.git/contrib/ivshmem-server. An example syntax when using the shared memory server is: @example -qemu -device ivshmem,size=<size in format accepted by -m>[,chardev=<id>] - [,msi=on][,ioeventfd=on][,vectors=n][,role=peer|master] -qemu -chardev socket,path=<path>,id=<id> +qemu-system-i386 -device ivshmem,size=<size in format accepted by -m>[,chardev=<id>] + [,msi=on][,ioeventfd=on][,vectors=n][,role=peer|master] +qemu-system-i386 -chardev socket,path=<path>,id=<id> @end example When using the server, the guest will be assigned a VM ID (>=0) that allows guests @@ -941,7 +941,7 @@ kernel testing. The syntax is: @example -qemu -kernel arch/i386/boot/bzImage -hda root-2.4.20.img -append "root=/dev/hda" +qemu-system-i386 -kernel arch/i386/boot/bzImage -hda root-2.4.20.img -append "root=/dev/hda" @end example Use @option{-kernel} to provide the Linux kernel image and @@ -956,8 +956,8 @@ If you do not need graphical output, you can disable it and redirect the virtual serial port and the QEMU monitor to the console with the @option{-nographic} option. The typical command line is: @example -qemu -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ - -append "root=/dev/hda console=ttyS0" -nographic +qemu-system-i386 -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ + -append "root=/dev/hda console=ttyS0" -nographic @end example Use @key{Ctrl-a c} to switch between the serial console and the @@ -986,7 +986,7 @@ or the @code{usb_add} monitor command. Available devices are: Virtual Mouse. This will override the PS/2 mouse emulation when activated. @item tablet Pointer device that uses absolute coordinates (like a touchscreen). -This means qemu is able to report the mouse position without having +This means QEMU is able to report the mouse position without having to grab the mouse. Also overrides the PS/2 mouse emulation when activated. @item disk:@var{file} Mass storage device based on @var{file} (@pxref{disk_images}) @@ -1020,7 +1020,7 @@ Network adapter that supports CDC ethernet and RNDIS protocols. @var{options} specifies NIC options as with @code{-net nic,}@var{options} (see description). For instance, user-mode networking can be used with @example -qemu [...OPTIONS...] -net user,vlan=0 -usbdevice net:vlan=0 +qemu-system-i386 [...OPTIONS...] -net user,vlan=0 -usbdevice net:vlan=0 @end example Currently this cannot be used in machines that support PCI NICs. @item bt[:@var{hci-type}] @@ -1030,7 +1030,7 @@ no type is given, the HCI logic corresponds to @code{-bt hci,vlan=0}. This USB device implements the USB Transport Layer of HCI. Example usage: @example -qemu [...OPTIONS...] -usbdevice bt:hci,vlan=3 -bt device:keyboard,vlan=3 +qemu-system-i386 [...OPTIONS...] -usbdevice bt:hci,vlan=3 -bt device:keyboard,vlan=3 @end example @end table @@ -1108,7 +1108,7 @@ For this setup it is recommended to restrict it to listen on a UNIX domain socket only. For example @example -qemu [...OPTIONS...] -vnc unix:/home/joebloggs/.qemu-myvm-vnc +qemu-system-i386 [...OPTIONS...] -vnc unix:/home/joebloggs/.qemu-myvm-vnc @end example This ensures that only users on local box with read/write access to that @@ -1129,7 +1129,7 @@ option, and then once QEMU is running the password is set with the monitor. Unti the monitor is used to set the password all clients will be rejected. @example -qemu [...OPTIONS...] -vnc :1,password -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,password -monitor stdio (qemu) change vnc password Password: ******** (qemu) @@ -1146,7 +1146,7 @@ support provides a secure session, but no authentication. This allows any client to connect, and provides an encrypted session. @example -qemu [...OPTIONS...] -vnc :1,tls,x509=/etc/pki/qemu -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,tls,x509=/etc/pki/qemu -monitor stdio @end example In the above example @code{/etc/pki/qemu} should contain at least three files, @@ -1164,7 +1164,7 @@ then validate against the CA certificate. This is a good choice if deploying in an environment with a private internal certificate authority. @example -qemu [...OPTIONS...] -vnc :1,tls,x509verify=/etc/pki/qemu -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,tls,x509verify=/etc/pki/qemu -monitor stdio @end example @@ -1175,7 +1175,7 @@ Finally, the previous method can be combined with VNC password authentication to provide two layers of authentication for clients. @example -qemu [...OPTIONS...] -vnc :1,password,tls,x509verify=/etc/pki/qemu -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,password,tls,x509verify=/etc/pki/qemu -monitor stdio (qemu) change vnc password Password: ******** (qemu) @@ -1198,7 +1198,7 @@ used for authentication, but assuming use of one supporting SSF, then QEMU can be launched with: @example -qemu [...OPTIONS...] -vnc :1,sasl -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,sasl -monitor stdio @end example @node vnc_sec_certificate_sasl @@ -1212,7 +1212,7 @@ credentials. This can be enabled, by combining the 'sasl' option with the aforementioned TLS + x509 options: @example -qemu [...OPTIONS...] -vnc :1,tls,x509,sasl -monitor stdio +qemu-system-i386 [...OPTIONS...] -vnc :1,tls,x509,sasl -monitor stdio @end example @@ -1377,11 +1377,11 @@ use TLS and x509 certificates to protect security credentials from snooping. QEMU has a primitive support to work with gdb, so that you can do 'Ctrl-C' while the virtual machine is running and inspect its state. -In order to use gdb, launch qemu with the '-s' option. It will wait for a +In order to use gdb, launch QEMU with the '-s' option. It will wait for a gdb connection: @example -> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ - -append "root=/dev/hda" +qemu-system-i386 -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ + -append "root=/dev/hda" Connected to host network interface: tun0 Waiting gdb connection on port 1234 @end example @@ -2313,8 +2313,8 @@ qemu-i386 -L / /bin/ls @code{-L /} tells that the x86 dynamic linker must be searched with a @file{/} prefix. -@item Since QEMU is also a linux process, you can launch qemu with -qemu (NOTE: you can only do that if you compiled QEMU from the sources): +@item Since QEMU is also a linux process, you can launch QEMU with +QEMU (NOTE: you can only do that if you compiled QEMU from the sources): @example qemu-i386 -L / qemu-i386 -L / /bin/ls @@ -2669,7 +2669,8 @@ installation directory. @end itemize -Wine can be used to launch the resulting qemu.exe compiled for Win32. +Wine can be used to launch the resulting qemu-system-i386.exe +and all other qemu-system-@var{target}.exe compiled for Win32. @node Mac OS X @section Mac OS X @@ -304,7 +304,7 @@ static void ga_disable_non_whitelisted(void) g_free(list_head); } -/* [re-]enable all commands, except those explictly blacklisted by user */ +/* [re-]enable all commands, except those explicitly blacklisted by user */ static void ga_enable_non_blacklisted(GList *blacklist) { char **list_head, **list; diff --git a/qemu-options.hx b/qemu-options.hx index 7d0b054dd5..8b662648ae 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -221,7 +221,7 @@ qcow2. If performance is more important than correctness, @option{cache=writeback} should be used with qcow2. In case you don't care about data integrity over host failures, use -cache=unsafe. This option tells qemu that it never needs to write any data +cache=unsafe. This option tells QEMU that it never needs to write any data to the disk but can instead keeps things in cache. If anything goes wrong, like your host losing power, the disk storage getting disconnected accidentally, etc. you're image will most probably be rendered unusable. When using @@ -233,47 +233,47 @@ is off. Instead of @option{-cdrom} you can use: @example -qemu -drive file=file,index=2,media=cdrom +qemu-system-i386 -drive file=file,index=2,media=cdrom @end example Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can use: @example -qemu -drive file=file,index=0,media=disk -qemu -drive file=file,index=1,media=disk -qemu -drive file=file,index=2,media=disk -qemu -drive file=file,index=3,media=disk +qemu-system-i386 -drive file=file,index=0,media=disk +qemu-system-i386 -drive file=file,index=1,media=disk +qemu-system-i386 -drive file=file,index=2,media=disk +qemu-system-i386 -drive file=file,index=3,media=disk @end example You can connect a CDROM to the slave of ide0: @example -qemu -drive file=file,if=ide,index=1,media=cdrom +qemu-system-i386 -drive file=file,if=ide,index=1,media=cdrom @end example If you don't specify the "file=" argument, you define an empty drive: @example -qemu -drive if=ide,index=1,media=cdrom +qemu-system-i386 -drive if=ide,index=1,media=cdrom @end example You can connect a SCSI disk with unit ID 6 on the bus #0: @example -qemu -drive file=file,if=scsi,bus=0,unit=6 +qemu-system-i386 -drive file=file,if=scsi,bus=0,unit=6 @end example Instead of @option{-fda}, @option{-fdb}, you can use: @example -qemu -drive file=file,index=0,if=floppy -qemu -drive file=file,index=1,if=floppy +qemu-system-i386 -drive file=file,index=0,if=floppy +qemu-system-i386 -drive file=file,index=1,if=floppy @end example By default, @var{interface} is "ide" and @var{index} is automatically incremented: @example -qemu -drive file=a -drive file=b" +qemu-system-i386 -drive file=a -drive file=b" @end example is interpreted like: @example -qemu -hda a -hdb b +qemu-system-i386 -hda a -hdb b @end example ETEXI @@ -297,7 +297,7 @@ STEXI Set default value of @var{driver}'s property @var{prop} to @var{value}, e.g.: @example -qemu -global ide-drive.physical_block_size=4096 -drive file=file,if=ide,index=0,media=disk +qemu-system-i386 -global ide-drive.physical_block_size=4096 -drive file=file,if=ide,index=0,media=disk @end example In particular, you can use this to set driver properties for devices which are @@ -359,11 +359,11 @@ the recommended is 320x240, 640x480, 800x640. @example # try to boot from network first, then from hard disk -qemu -boot order=nc +qemu-system-i386 -boot order=nc # boot from CD-ROM first, switch back to default order after reboot -qemu -boot once=d +qemu-system-i386 -boot once=d # boot with a splash picture for 5 seconds. -qemu -boot menu=on,splash=/root/boot.bmp,splash-time=5000 +qemu-system-i386 -boot menu=on,splash=/root/boot.bmp,splash-time=5000 @end example Note: The legacy format '-boot @var{drives}' is still supported but its @@ -454,12 +454,12 @@ Enable audio and selected sound hardware. Use ? to print all available sound hardware. @example -qemu -soundhw sb16,adlib disk.img -qemu -soundhw es1370 disk.img -qemu -soundhw ac97 disk.img -qemu -soundhw hda disk.img -qemu -soundhw all disk.img -qemu -soundhw ? +qemu-system-i386 -soundhw sb16,adlib disk.img +qemu-system-i386 -soundhw es1370 disk.img +qemu-system-i386 -soundhw ac97 disk.img +qemu-system-i386 -soundhw hda disk.img +qemu-system-i386 -soundhw all disk.img +qemu-system-i386 -soundhw ? @end example Note that Linux's i810_audio OSS kernel (for AC97) module might @@ -515,7 +515,7 @@ Virtual Mouse. This will override the PS/2 mouse emulation when activated. @item tablet Pointer device that uses absolute coordinates (like a touchscreen). This -means qemu is able to report the mouse position without having to grab the +means QEMU is able to report the mouse position without having to grab the mouse. Also overrides the PS/2 mouse emulation when activated. @item disk:[format=@var{format}]:@var{file} @@ -587,7 +587,7 @@ this path will be available to the 9p client on the guest. Specifies the security model to be used for this export path. Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none". In "passthrough" security model, files are stored using the same -credentials as they are created on the guest. This requires qemu +credentials as they are created on the guest. This requires QEMU to run as root. In "mapped-xattr" security model, some of the file attributes like uid, gid, mode bits and link target are stored as file attributes. For "mapped-file" these attributes are stored in the @@ -654,7 +654,7 @@ this path will be available to the 9p client on the guest. Specifies the security model to be used for this export path. Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none". In "passthrough" security model, files are stored using the same -credentials as they are created on the guest. This requires qemu +credentials as they are created on the guest. This requires QEMU to run as root. In "mapped-xattr" security model, some of the file attributes like uid, gid, mode bits and link target are stored as file attributes. For "mapped-file" these attributes are stored in the @@ -1117,7 +1117,7 @@ disables exclusive client access. Useful for shared desktop sessions, where you don't want someone forgetting specify -shared disconnect everybody else. 'ignore' completely ignores the shared flag and allows everybody connect unconditionally. Doesn't conform to the rfb -spec but is traditional qemu behavior. +spec but is traditional QEMU behavior. @end table ETEXI @@ -1368,7 +1368,7 @@ a guest from a local directory. Example (using pxelinux): @example -qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0 +qemu-system-i386 -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0 @end example @item smb=@var{dir}[,smbserver=@var{addr}] @@ -1403,7 +1403,7 @@ screen 0, use the following: @example # on the host -qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...] +qemu-system-i386 -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...] # this host xterm should open in the guest X11 server xterm -display :1 @end example @@ -1413,7 +1413,7 @@ the guest, use the following: @example # on the host -qemu -net user,hostfwd=tcp::5555-:23 [...] +qemu-system-i386 -net user,hostfwd=tcp::5555-:23 [...] telnet localhost 5555 @end example @@ -1452,20 +1452,22 @@ Examples: @example #launch a QEMU instance with the default network script -qemu linux.img -net nic -net tap +qemu-system-i386 linux.img -net nic -net tap @end example @example #launch a QEMU instance with two NICs, each one connected #to a TAP device -qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \ - -net nic,vlan=1 -net tap,vlan=1,ifname=tap1 +qemu-system-i386 linux.img \ + -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \ + -net nic,vlan=1 -net tap,vlan=1,ifname=tap1 @end example @example #launch a QEMU instance with the default network helper to #connect a TAP device to bridge br0 -qemu linux.img -net nic -net tap,"helper=/usr/local/libexec/qemu-bridge-helper" +qemu-system-i386 linux.img \ + -net nic -net tap,"helper=/usr/local/libexec/qemu-bridge-helper" @end example @item -net bridge[,vlan=@var{n}][,name=@var{name}][,br=@var{bridge}][,helper=@var{helper}] @@ -1481,13 +1483,13 @@ Examples: @example #launch a QEMU instance with the default network helper to #connect a TAP device to bridge br0 -qemu linux.img -net bridge -net nic,model=virtio +qemu-system-i386 linux.img -net bridge -net nic,model=virtio @end example @example #launch a QEMU instance with the default network helper to #connect a TAP device to bridge qemubr0 -qemu linux.img -net bridge,br=qemubr0 -net nic,model=virtio +qemu-system-i386 linux.img -net bridge,br=qemubr0 -net nic,model=virtio @end example @item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}] [,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}] @@ -1502,12 +1504,14 @@ specifies an already opened TCP socket. Example: @example # launch a first QEMU instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ - -net socket,listen=:1234 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,listen=:1234 # connect the VLAN 0 of this instance to the VLAN 0 # of the first instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \ - -net socket,connect=127.0.0.1:1234 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:57 \ + -net socket,connect=127.0.0.1:1234 @end example @item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]] @@ -1530,30 +1534,35 @@ Use @option{fd=h} to specify an already opened UDP multicast socket. Example: @example # launch one QEMU instance -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ - -net socket,mcast=230.0.0.1:1234 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,mcast=230.0.0.1:1234 # launch another QEMU instance on same "bus" -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \ - -net socket,mcast=230.0.0.1:1234 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:57 \ + -net socket,mcast=230.0.0.1:1234 # launch yet another QEMU instance on same "bus" -qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \ - -net socket,mcast=230.0.0.1:1234 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:58 \ + -net socket,mcast=230.0.0.1:1234 @end example Example (User Mode Linux compat.): @example # launch QEMU instance (note mcast address selected # is UML's default) -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ - -net socket,mcast=239.192.168.1:1102 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,mcast=239.192.168.1:1102 # launch UML /path/to/linux ubd0=/path/to/root_fs eth0=mcast @end example Example (send packets from host's 1.2.3.4): @example -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \ - -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4 +qemu-system-i386 linux.img \ + -net nic,macaddr=52:54:00:12:34:56 \ + -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4 @end example @item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}] [,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}] @@ -1568,7 +1577,7 @@ Example: # launch vde switch vde_switch -F -sock /tmp/myswitch # launch QEMU instance -qemu linux.img -net nic -net vde,sock=/tmp/myswitch +qemu-system-i386 linux.img -net nic -net vde,sock=/tmp/myswitch @end example @item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}] @@ -1791,7 +1800,7 @@ not take any options. @option{pty} is not available on Windows hosts. @item -chardev stdio ,id=@var{id} [,signal=on|off] -Connect to standard input and standard output of the qemu process. +Connect to standard input and standard output of the QEMU process. @option{signal} controls if signals are enabled on the terminal, that includes exiting QEMU with the key sequence @key{Control-c}. This option is enabled by @@ -1853,21 +1862,21 @@ Syntax for specifying iSCSI LUNs is Example (without authentication): @example -qemu -iscsi initiator-name=iqn.2001-04.com.example:my-initiator \ --cdrom iscsi://192.0.2.1/iqn.2001-04.com.example/2 \ --drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1 +qemu-system-i386 -iscsi initiator-name=iqn.2001-04.com.example:my-initiator \ + -cdrom iscsi://192.0.2.1/iqn.2001-04.com.example/2 \ + -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1 @end example Example (CHAP username/password via URL): @example -qemu -drive file=iscsi://user%password@@192.0.2.1/iqn.2001-04.com.example/1 +qemu-system-i386 -drive file=iscsi://user%password@@192.0.2.1/iqn.2001-04.com.example/1 @end example Example (CHAP username/password via environment variables): @example LIBISCSI_CHAP_USERNAME="user" \ LIBISCSI_CHAP_PASSWORD="password" \ -qemu -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1 +qemu-system-i386 -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1 @end example iSCSI support is an optional feature of QEMU and only available when @@ -1893,12 +1902,12 @@ Syntax for specifying a NBD device using Unix Domain Sockets Example for TCP @example -qemu --drive file=nbd:192.0.2.1:30000 +qemu-system-i386 --drive file=nbd:192.0.2.1:30000 @end example Example for Unix Domain Sockets @example -qemu --drive file=nbd:unix:/tmp/nbd-socket +qemu-system-i386 --drive file=nbd:unix:/tmp/nbd-socket @end example @item Sheepdog @@ -1923,7 +1932,7 @@ Syntax for specifying a sheepdog device Example @example -qemu --drive file=sheepdog:192.0.2.1:30000:MyVirtualMachine +qemu-system-i386 --drive file=sheepdog:192.0.2.1:30000:MyVirtualMachine @end example See also @url{http://http://www.osrg.net/sheepdog/}. @@ -1986,7 +1995,7 @@ and communicate. Requires the Linux @code{vhci} driver installed. Can be used as following: @example -qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5 +qemu-system-i386 [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5 @end example @item -bt device:@var{dev}[,vlan=@var{n}] @@ -2119,19 +2128,19 @@ they default to @code{0.0.0.0}. When not using a specified @var{src_port} a random port is automatically chosen. If you just want a simple readonly console you can use @code{netcat} or -@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as: -@code{nc -u -l -p 4555}. Any time qemu writes something to that port it +@code{nc}, by starting QEMU with: @code{-serial udp::4555} and nc as: +@code{nc -u -l -p 4555}. Any time QEMU writes something to that port it will appear in the netconsole session. If you plan to send characters back via netconsole or you want to stop -and start qemu a lot of times, you should have qemu use the same +and start QEMU a lot of times, you should have QEMU use the same source port each time by using something like @code{-serial -udp::4555@@:4556} to qemu. Another approach is to use a patched +udp::4555@@:4556} to QEMU. Another approach is to use a patched version of netcat which can listen to a TCP port and send and receive characters via udp. If you have a patched version of netcat which activates telnet remote echo and single char transfer, then you can use the following options to step up a netcat redirector to allow -telnet on port 5555 to access the qemu port. +telnet on port 5555 to access the QEMU port. @table @code @item QEMU Options: -serial udp::4555@@:4556 @@ -2286,10 +2295,10 @@ STEXI @findex -gdb Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical connections will likely be TCP-based, but also UDP, pseudo TTY, or even -stdio are reasonable use case. The latter is allowing to start qemu from +stdio are reasonable use case. The latter is allowing to start QEMU from within gdb and establish the connection via a pipe: @example -(gdb) target remote | exec qemu -gdb stdio ... +(gdb) target remote | exec qemu-system-i386 -gdb stdio ... @end example ETEXI @@ -2316,15 +2325,15 @@ DEF("D", HAS_ARG, QEMU_OPTION_D, \ "-D logfile output log to logfile (instead of the default /tmp/qemu.log)\n", QEMU_ARCH_ALL) STEXI -@item -D +@item -D @var{logfile} @findex -D -Output log in logfile instead of /tmp/qemu.log +Output log in @var{logfile} instead of /tmp/qemu.log ETEXI DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \ "-hdachs c,h,s[,t]\n" \ " force hard disk 0 physical geometry and the optional BIOS\n" \ - " translation (t=none or lba) (usually qemu can guess them)\n", + " translation (t=none or lba) (usually QEMU can guess them)\n", QEMU_ARCH_ALL) STEXI @item -hdachs @var{c},@var{h},@var{s},[,@var{t}] @@ -2370,7 +2379,7 @@ DEF("xen-create", 0, QEMU_OPTION_xen_create, QEMU_ARCH_ALL) DEF("xen-attach", 0, QEMU_OPTION_xen_attach, "-xen-attach attach to existing xen domain\n" - " xend will use this when starting qemu\n", + " xend will use this when starting QEMU\n", QEMU_ARCH_ALL) STEXI @item -xen-domid @var{id} @@ -2383,7 +2392,7 @@ Warning: should not be used when xend is in use (XEN only). @item -xen-attach @findex -xen-attach Attach to existing xen domain. -xend will use this when starting qemu (XEN only). +xend will use this when starting QEMU (XEN only). ETEXI DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \ diff --git a/qemu-timer.c b/qemu-timer.c index 4a6fc98ca0..de9897788d 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -635,8 +635,7 @@ static int mm_start_timer(struct qemu_alarm_timer *t) TIME_ONESHOT | TIME_CALLBACK_FUNCTION); if (!mm_timer) { - fprintf(stderr, "Failed to initialize win32 alarm timer: %ld\n", - GetLastError()); + fprintf(stderr, "Failed to initialize win32 alarm timer\n"); timeEndPeriod(mm_tc.wPeriodMin); return -1; } @@ -667,9 +666,7 @@ static void mm_rearm_timer(struct qemu_alarm_timer *t, int64_t delta) TIME_ONESHOT | TIME_CALLBACK_FUNCTION); if (!mm_timer) { - fprintf(stderr, "Failed to re-arm win32 alarm timer %ld\n", - GetLastError()); - + fprintf(stderr, "Failed to re-arm win32 alarm timer\n"); timeEndPeriod(mm_tc.wPeriodMin); exit(1); } diff --git a/qga/commands-posix.c b/qga/commands-posix.c index d58730ad80..e448431c66 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -487,7 +487,7 @@ int64_t qmp_guest_fsfreeze_thaw(Error **err) * was returned the filesystem was *not* unfrozen by that particular * call. * - * since multiple preceeding FIFREEZEs require multiple calls to FITHAW + * since multiple preceding FIFREEZEs require multiple calls to FITHAW * to unfreeze, continuing issuing FITHAW until an error is returned, * in which case either the filesystem is in an unfreezable state, or, * more likely, it was thawed previously (and remains so afterward). @@ -789,7 +789,7 @@ GuestNetworkInterfaceList *qmp_guest_network_get_interfaces(Error **errp) strncpy(ifr.ifr_name, info->value->name, IF_NAMESIZE); if (ioctl(sock, SIOCGIFHWADDR, &ifr) == -1) { snprintf(err_msg, sizeof(err_msg), - "failed to get MAC addres of %s: %s", + "failed to get MAC address of %s: %s", ifa->ifa_name, strerror(errno)); error_set(errp, QERR_QGA_COMMAND_FAILED, err_msg); diff --git a/qom/object.c b/qom/object.c index e721fc28fb..6f839ad8c9 100644 --- a/qom/object.c +++ b/qom/object.c @@ -830,7 +830,7 @@ char *object_property_print(Object *obj, const char *name, char *string; mo = string_output_visitor_new(); - object_property_get(obj, string_output_get_visitor(mo), name, NULL); + object_property_get(obj, string_output_get_visitor(mo), name, errp); string = string_output_get_string(mo); string_output_visitor_cleanup(mo); return string; diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h index 40635c4b1c..5901140480 100644 --- a/target-i386/cpu-qom.h +++ b/target-i386/cpu-qom.h @@ -22,6 +22,7 @@ #include "qemu/cpu.h" #include "cpu.h" +#include "error.h" #ifdef TARGET_X86_64 #define TYPE_X86_CPU "x86_64-cpu" @@ -71,5 +72,8 @@ static inline X86CPU *x86_env_get_cpu(CPUX86State *env) #define ENV_GET_CPU(e) CPU(x86_env_get_cpu(e)) +/* TODO Drop once ObjectClass::realize is available */ +void x86_cpu_realize(Object *obj, Error **errp); + #endif diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 65d9af6ac7..89b4ac7ec5 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1722,6 +1722,14 @@ static void mce_init(X86CPU *cpu) } } +void x86_cpu_realize(Object *obj, Error **errp) +{ + X86CPU *cpu = X86_CPU(obj); + + mce_init(cpu); + qemu_init_vcpu(&cpu->env); +} + static void x86_cpu_initfn(Object *obj) { X86CPU *cpu = X86_CPU(obj); @@ -1755,7 +1763,6 @@ static void x86_cpu_initfn(Object *obj) x86_cpuid_set_tsc_freq, NULL, NULL, NULL); env->cpuid_apic_id = env->cpu_index; - mce_init(cpu); } static void x86_cpu_common_class_init(ObjectClass *oc, void *data) diff --git a/target-i386/helper.c b/target-i386/helper.c index 0b22582ed6..3421be2276 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -1181,7 +1181,7 @@ CPUX86State *cpu_x86_init(const char *cpu_model) return NULL; } - qemu_init_vcpu(env); + x86_cpu_realize(OBJECT(cpu), NULL); return env; } diff --git a/target-mips/cpu.h b/target-mips/cpu.h index c0f882659c..44c1152a3a 100644 --- a/target-mips/cpu.h +++ b/target-mips/cpu.h @@ -627,7 +627,6 @@ enum { int cpu_mips_exec(CPUMIPSState *s); CPUMIPSState *cpu_mips_init(const char *cpu_model); -//~ uint32_t cpu_mips_get_clock (void); int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc); /* mips_timer.c */ diff --git a/tests/tcg/test-mmap.c b/tests/tcg/test-mmap.c index c67174a260..c418b67660 100644 --- a/tests/tcg/test-mmap.c +++ b/tests/tcg/test-mmap.c @@ -3,7 +3,7 @@ * * When running qemu-linux-user with the -p flag, you may need to tell * this test program about the pagesize because getpagesize() will not reflect - * the -p choice. Simply pass one argument beeing the pagesize. + * the -p choice. Simply pass one argument being the pagesize. * * Copyright (c) 2007 AXIS Communications AB * Written by Edgar E. Iglesias. |