1. 09 4月, 2013 1 次提交
    • P
      hw: move headers to include/ · 0d09e41a
      Paolo Bonzini 提交于
      Many of these should be cleaned up with proper qdev-/QOM-ification.
      Right now there are many catch-all headers in include/hw/ARCH depending
      on cpu.h, and this makes it necessary to compile these files per-target.
      However, fixing this does not belong in these patches.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0d09e41a
  2. 05 4月, 2013 2 次提交
    • L
      hmp: human-monitor-command: stop using the Memory chardev driver · 48c043d0
      Luiz Capitulino 提交于
      The Memory chardev driver was added because, as the Monitor's output
      buffer was static, we needed a way to accumulate the output of an
      HMP commmand when ran by human-monitor-command.
      
      However, the Monitor's output buffer is now dynamic, so it's possible
      for the human-monitor-command to use it instead of the Memory chardev
      driver.
      
      This commit does that change, but there are two important
      observations about it:
      
       1. We need a way to signal to the Monitor that it shouldn't call
          chardev functions when flushing its output. This is done
          by adding a new flag to the Monitor object called skip_flush
      	(which is set to true by qmp_human_monitor_command())
      
       2. The current code has buffered semantics: QMP clients will
          only see a command's output if it flushes its output with
      	a new-line character. This commit changes this to unbuffered,
      	which means that QMP clients will see a command's output
      	whenever the command prints anything.
      
      	I don't think this will matter in practice though, as I believe
      	all HMP commands print the new-line character anyway.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Acked-by: NGerd Hoffmann <kraxel@redhat.com>
      48c043d0
    • L
      Monitor: Make output buffer dynamic · e1f2641b
      Luiz Capitulino 提交于
      Commit f628926b changed monitor_flush()
      to retry on qemu_chr_fe_write() errors. However, the Monitor's output
      buffer can keep growing while the retry is not issued and this can
      cause the buffer to overflow.
      
      To reproduce this issue, just start qemu and type on the Monitor:
      
      (qemu) ?
      
      This will cause an assertion to trig.
      
      To fix this problem this commit makes the Monitor buffer dynamic,
      which means that it can grow as much as needed.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Acked-by: NGerd Hoffmann <kraxel@redhat.com>
      e1f2641b
  3. 28 3月, 2013 1 次提交
  4. 26 3月, 2013 1 次提交
  5. 22 3月, 2013 2 次提交
  6. 19 3月, 2013 1 次提交
  7. 17 3月, 2013 1 次提交
  8. 13 3月, 2013 1 次提交
    • S
      Support for TPM command line options · d1a0cf73
      Stefan Berger 提交于
      This patch adds support for TPM command line options.
      The command line options supported here are
      
      ./qemu-... -tpmdev passthrough,path=<path to TPM device>,id=<id>
                 -device tpm-tis,tpmdev=<id>,id=<other id>
      
      and
      
      ./qemu-... -tpmdev help
      
      where the latter works similar to -soundhw help and shows a list of
      available TPM backends (for example 'passthrough').
      
      Using the type parameter, the backend is chosen, i.e., 'passthrough' for the
      passthrough driver. The interpretation of the other parameters along
      with determining whether enough parameters were provided is pushed into
      the backend driver, which needs to implement the interface function
      'create' and return a TPMDriverOpts structure if the VM can be started or
      'NULL' if not enough or bad parameters were provided.
      
      Monitor support for 'info tpm' has been added. It for example prints the
      following:
      
      (qemu) info tpm
      TPM devices:
       tpm0: model=tpm-tis
        \ tpm0: type=passthrough,path=/dev/tpm0,cancel-path=/sys/devices/pnp0/00:09/cancel
      Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
      Reviewed-by: NCorey Bryant <coreyb@linux.vnet.ibm.com>
      Reviewed-by: NJoel Schopp <jschopp@linux.vnet.ibm.com>
      Message-id: 1361987275-26289-2-git-send-email-stefanb@linux.vnet.ibm.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      d1a0cf73
  9. 12 3月, 2013 1 次提交
  10. 01 3月, 2013 1 次提交
  11. 24 2月, 2013 1 次提交
    • P
      Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() · 6ab7e546
      Peter Maydell 提交于
      The setjmp() function doesn't specify whether signal masks are saved and
      restored; on Linux they are not, but on BSD (including MacOSX) they are.
      We want to have consistent behaviour across platforms, so we should
      always use "don't save/restore signal mask" (this is also generally
      going to be faster). This also works around a bug in MacOSX where the
      signal-restoration on longjmp() affects the signal mask for a completely
      different thread, not just the mask for the thread which did the longjmp.
      The most visible effect of this was that ctrl-C was ignored on MacOSX
      because the CPU thread did a longjmp which resulted in its signal mask
      being applied to every thread, so that all threads had SIGINT and SIGTERM
      blocked.
      
      The POSIX-sanctioned portable way to do a jump without affecting signal
      masks is to siglongjmp() to a sigjmp_buf which was created by calling
      sigsetjmp() with a zero savemask parameter, so change all uses of
      setjmp()/longjmp() accordingly. [Technically POSIX allows sigsetjmp(buf, 0)
      to save the signal mask; however the following siglongjmp() must not
      restore the signal mask, so the pair can be effectively considered as
      "sigjmp/longjmp which don't touch the mask".]
      
      For Windows we provide a trivial sigsetjmp/siglongjmp in terms of
      setjmp/longjmp -- this is OK because no user will ever pass a non-zero
      savemask.
      
      The setjmp() uses in tests/tcg/test-i386.c and tests/tcg/linux-test.c
      are left untouched because these are self-contained singlethreaded
      test programs intended to be run under QEMU's Linux emulation, so they
      have neither the portability nor the multithreading issues to deal with.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Tested-by: NStefan Weil <sw@weilnetz.de>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      6ab7e546
  12. 16 2月, 2013 4 次提交
  13. 17 1月, 2013 5 次提交
  14. 15 1月, 2013 2 次提交
  15. 13 1月, 2013 1 次提交
  16. 11 1月, 2013 1 次提交
  17. 19 12月, 2012 10 次提交
  18. 17 12月, 2012 1 次提交
  19. 31 10月, 2012 1 次提交
  20. 24 10月, 2012 2 次提交