1. 07 Jun, 2016 2 commits
  2. 06 Jun, 2016 1 commit
  3. 19 May, 2016 2 commits
  4. 22 Mar, 2016 2 commits
    • Veronia Bahaa's avatar
      util: move declarations out of qemu-common.h · f348b6d1
      Veronia Bahaa authored
      Move declarations out of qemu-common.h for functions declared in
      utils/ files: e.g. include/qemu/path.h for utils/path.c.
      Move inline functions out of qemu-common.h and into new files (e.g.
      Signed-off-by: 's avatarVeronia Bahaa <veroniabahaa@gmail.com>
      Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
    • Markus Armbruster's avatar
      include/qemu/osdep.h: Don't include qapi/error.h · da34e65c
      Markus Armbruster authored
      Commit 57cb38b3 included qapi/error.h into qemu/osdep.h to get the
      Error typedef.  Since then, we've moved to include qemu/osdep.h
      everywhere.  Its file comment explains: "To avoid getting into
      possible circular include dependencies, this file should not include
      any other QEMU headers, with the exceptions of config-host.h,
      compiler.h, os-posix.h and os-win32.h, all of which are doing a
      similar job to this file and are under similar constraints."
      qapi/error.h doesn't do a similar job, and it doesn't adhere to
      similar constraints: it includes qapi-types.h.  That's in excess of
      100KiB of crap most .c files don't actually need.
      Add the typedef to qemu/typedefs.h, and include that instead of
      qapi/error.h.  Include qapi/error.h in .c files that need it and don't
      get it now.  Include qapi-types.h in qom/object.h for uint16List.
      Update scripts/clean-includes accordingly.  Update it further to match
      reality: replace config.h by config-target.h, add sysemu/os-posix.h,
      sysemu/os-win32.h.  Update the list of includes in the qemu/osdep.h
      comment quoted above similarly.
      This reduces the number of objects depending on qapi/error.h from "all
      of them" to less than a third.  Unfortunately, the number depending on
      qapi-types.h shrinks only a little.  More work is needed for that one.
      Signed-off-by: 's avatarMarkus Armbruster <armbru@redhat.com>
      [Fix compilation without the spice devel packages. - Paolo]
      Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
  5. 15 Mar, 2016 1 commit
    • Pavel Dovgalyuk's avatar
      replay: character devices · 33577b47
      Pavel Dovgalyuk authored
      This patch implements record and replay of character devices.
      It records chardevs communication in replay mode. Recorded information
      include data read from backend and counter of bytes written
      from frontend to backend to preserve frontend internal state.
      If character device was configured through the command line in record mode,
      then in replay mode it should be also added to command line. Backend of
      the character device could be changed in replay mode.
      Replaying of devices that perform ioctl and get_msgfd operations is not
      gdbstub which also acts as a backend is not recorded to allow controlling
      the replaying through gdb. Monitor backends are also not recorded.
      Signed-off-by: 's avatarPavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
      Message-Id: <20160314074436.4980.83856.stgit@PASHA-ISP>
      [Add stubs. - Paolo]
      Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
  6. 04 Feb, 2016 1 commit
    • Peter Maydell's avatar
      all: Clean up includes · d38ea87a
      Peter Maydell authored
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      This commit was created with scripts/clean-includes.
      Signed-off-by: 's avatarPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1454089805-5470-16-git-send-email-peter.maydell@linaro.org
  7. 27 Jan, 2016 1 commit
  8. 15 Jan, 2016 1 commit
    • Daniel P. Berrange's avatar
      qemu-char: add logfile facility to all chardev backends · d0d7708b
      Daniel P. Berrange authored
      Typically a UNIX guest OS will log boot messages to a serial
      port in addition to any graphical console. An admin user
      may also wish to use the serial port for an interactive
      console. A virtualization management system may wish to
      collect system boot messages by logging the serial port,
      but also wish to allow admins interactive access.
      Currently providing such a feature forces the mgmt app
      to either provide 2 separate serial ports, one for
      logging boot messages and one for interactive console
      login, or to proxy all output via a separate service
      that can multiplex the two needs onto one serial port.
      While both are valid approaches, they each have their
      own downsides. The former causes confusion and extra
      setup work for VM admins creating disk images. The latter
      places an extra burden to re-implement much of the QEMU
      chardev backends logic in libvirt or even higher level
      mgmt apps and adds extra hops in the data transfer path.
      A simpler approach that is satisfactory for many use
      cases is to allow the QEMU chardev backends to have a
      "logfile" property associated with them.
       $QEMU -chardev socket,host=localhost,port=9000,\
             -device isa-serial,chardev=charserial0,id=serial0
      This patch introduces a 'ChardevCommon' struct which
      is setup as a base for all the ChardevBackend types.
      Ideally this would be registered directly as a base
      against ChardevBackend, rather than each type, but
      the QAPI generator doesn't allow that since the
      ChardevBackend is a non-discriminated union. The
      ChardevCommon struct provides the optional 'logfile'
      parameter, as well as 'logappend' which controls
      whether QEMU truncates or appends (default truncate).
      Signed-off-by: 's avatarDaniel P. Berrange <berrange@redhat.com>
      Message-Id: <1452516281-27519-1-git-send-email-berrange@redhat.com>
      [Call qemu_chr_parse_common if cd->parse is NULL. - Paolo]
      Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
  9. 06 Nov, 2015 1 commit
  10. 09 Sep, 2015 1 commit
  11. 07 Sep, 2015 1 commit
  12. 27 Jul, 2015 1 commit
  13. 09 Jul, 2015 3 commits
  14. 19 Jun, 2015 1 commit
  15. 28 May, 2015 4 commits
  16. 10 Mar, 2015 1 commit
  17. 11 Dec, 2014 1 commit
    • Liviu Ionescu's avatar
      Add the "-semihosting-config" option. · a38bb079
      Liviu Ionescu authored
      The usual semihosting behaviour is to process the system calls locally and
      return; unfortuantelly the initial implementation dinamically changed the
      target to GDB during debug sessions, which, for the usual arm-none-eabi-gdb,
      is not implemented. The result was that during debug sessions the semihosting
      calls were discarded.
      This patch adds a configuration variable and an option to set it on the
      command line:
          -semihosting-config [enable=on|off,]target=native|gdb|auto
      This option enables semihosting and defines where the semihosting calls will
      be addressed, to QEMU ('native') or to GDB ('gdb'). The default is auto, which
      means 'gdb' during debug sessions and 'native' otherwise.
      Signed-off-by: 's avatarLiviu Ionescu <ilg@livius.net>
      Message-id: 1416341957-9796-1-git-send-email-ilg@livius.net
      [PMM: moved declaration and definition of semihosting_target to
       gdbstub.h and gdbstub.c to fix build failure on linux-user]
      Signed-off-by: 's avatarPeter Maydell <peter.maydell@linaro.org>
  18. 11 Nov, 2014 1 commit
  19. 06 Oct, 2014 1 commit
  20. 11 Sep, 2014 1 commit
  21. 13 Mar, 2014 4 commits
  22. 04 Nov, 2013 1 commit
    • Paolo Bonzini's avatar
      vl: allow "cont" from panicked state · df390768
      Paolo Bonzini authored
      After reporting the GUEST_PANICKED monitor event, QEMU stops the VM.
      The reason for this is that events are edge-triggered, and can be lost if
      management dies at the wrong time.  Stopping a panicked VM lets management
      know of a panic even if it has crashed; management can learn about the
      panic when it restarts and queries running QEMU processes.  The downside
      is of course that the VM will be paused while management is not running,
      but that is acceptable if it only happens with explicit "-device pvpanic".
      Upon learning of a panic, management (if configured to do so) can pick a
      variety of behaviors: leave the VM paused, reset it, destroy it.  In
      addition to all of these behaviors, it is possible to dump the VM core
      from the host.
      However, right now, the panicked state is irreversible, and can only be
      exited by resetting the machine.  This means that any policy decision
      is entirely in the hands of the host.  In particular there is no way to
      use the "reboot on panic" option together with pvpanic.
      This patch makes the panicked state reversible (and removes various
      workarounds that were there because of the state being irreversible).
      With this change, management has a wider set of possible policies: it
      can just log the crash and leave policy to the guest, it can leave the
      VM paused.  In particular, the "log the crash and continue" is implemented
      simply by sending a "cont" as soon as management learns about the panic.
      Management could also implement the "irreversible paused state" itself.
      And again, all such actions can be coupled with dumping the VM core.
      Unfortunately we cannot change the behavior of 1.6.0.  Thus, even if
      it uses "-device pvpanic", management should check for "cont" failures.
      If "cont" fails, management can then log that the VM remained paused
      and urge the administrator to update QEMU.
      Reviewed-by: 's avatarLaszlo Ersek <lersek@redhat.com>
      Reviewed-by: 's avatarLuiz Capitulino <lcapitulino@redhat.com>
      Acked-by: 's avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: 's avatarMichael S. Tsirkin <mst@redhat.com>
  23. 02 Oct, 2013 1 commit
  24. 03 Sep, 2013 1 commit
  25. 16 Aug, 2013 1 commit
  26. 26 Jul, 2013 4 commits