Hans de Goede
a59bcd31c9
qemu-char: add_handlers: Don't re-send the be_open event on unregister
...
Resending the be_open event only is useful when a frontend is registering, not
when it is unregistering.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-9-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
85d91e3295
qemu-char: Move incrementing of avail_connections to qdev-properties-system
...
The decrement of avail_connections is done in qdev-properties-system move
the increment there too for proper balancing of the calls.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-8-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
574b711a92
qemu-char: Consolidate guest_close/guest_open into a set_fe_open callback
...
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-7-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
8e25daa87a
qemu-char: Cleanup: consolidate fe_open/fe_close into fe_set_open
...
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-6-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
190832289f
qemu-char: Automatically do fe_open / fe_close on qemu_chr_add_handlers
...
Most frontends can't really determine if the guest actually has the frontend
side open. So lets automatically generate fe_open / fe_close as soon as a
frontend becomes ready (as signalled by calling qemu_chr_add_handlers) /
becomes non ready (as signalled by setting all handlers to NULL).
And allow frontends which can actually determine if the guest is listening to
opt-out of this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-5-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
c0c4bd2cfa
qemu-char: Add fe_open tracking
...
Add tracking of the fe_open state to struct CharDriverState.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-4-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
fee204fd46
qemu-char: Rename qemu_chr_generic_open to qemu_chr_be_generic_open
...
To better reflect that it is for handling a backend being opened.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-3-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:49 -05:00
Hans de Goede
16665b943b
qemu-char: Rename opened to be_open
...
Rename the opened variable to be_open to reflect that it contains the
opened state of the backend.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Message-id: 1364292483-16564-2-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-27 10:26:48 -05:00
Anthony Liguori
cd18720a29
char: introduce a blocking version of qemu_chr_fe_write
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-26 10:08:07 -05:00
Kevin Wolf
2c8a59422c
char: Fix return type of qemu_chr_fe_add_watch()
...
qemu_chr_fe_add_watch() can return negative errors, therefore it must
not have an unsigned return type. For consistency with other
qemu_chr_fe_* functions, this uses a standard C int instead of glib
types.
In situations where qemu_chr_fe_add_watch() is falsely assumed to have
succeeded, the serial ports would go into a state where it never becomes
ready for transmitting more data; this is fixed by this patch.
Signed-off-by: Kevin Wolf <kwolf@redhat.com >
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-19 07:56:07 -05:00
Igor Mitsyanko
e5545854dd
qemu-char.c: fix waiting for telnet connection message
...
Current colon position in "waiting for telnet connection" message template
produces messages like:
QEMU waiting for connection on: telnet::127.0.0.16666,server
After moving a colon to the right, we will get a correct messages like:
QEMU waiting for connection on: telnet:127.0.0.1:6666,server
Signed-off-by: Igor Mitsyanko <i.mitsyanko@gmail.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:47 +01:00
Gerd Hoffmann
3ecc059dcd
chardev: add udp support to qapi
...
This patch adds 'udp' support to qapi.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
1da48c658a
chardev: add memory (ringbuf) support to qapi
...
This patch adds 'memory' support to qapi and also switches over
the memory chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
702ec69cc1
chardev: add vc support to qapi
...
This patch adds 'vc' support to qapi and also switches over the
vc chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
cd153e2aa2
chardev: add spice support to qapi
...
This patch adds 'spicevmc' and 'spiceport' support to qapi and also
switches over the spice chardev initialization to the new qapi code
path.
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
548cbb36f4
chardev: add pipe support to qapi
...
This patch adds 'pipe' support to qapi and also switches over the
pipe chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
d9ac374f0d
chardev: add console support to qapi
...
This patch adds 'console' support to qapi and also switches over the
console chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
e68c595866
chardev: switch pty init to qapi
...
This patch switches over the pty chardev initialization
to the new qapi code path.
Bonus: Taking QemuOpts out of the loop allows some nice
cleanups along the way.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
dc37509769
chardev: switch parallel init to qapi
...
This patch switches over the parallel chardev initialization
to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
0f1cb51da7
chardev: switch serial/tty init to qapi
...
This patch switches over the serial chardev initialization
to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
7c358031ea
chardev: add stdio support to qapi
...
This patch adds 'stdio' support to qapi and also switches over the
stdio chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
846e2e4938
chardev: switch file init to qapi
...
This patch switches over the 'file' chardev initialization
to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
2d57286da6
chardev: add braille support to qapi
...
This patch adds 'braille' support to qapi and also switches over
the braille chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
f5a51cab2a
chardev: add msmouse support to qapi
...
This patch adds 'msmouse' support to qapi and also switches over
the msmouse chardev initialization to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:46 +01:00
Gerd Hoffmann
80dca9e643
chardev: switch null init to qapi
...
This patch switches over the 'null' chardev initialization
to the new qapi code path.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:45 +01:00
Gerd Hoffmann
edb2fb3cc8
chardev: add mux chardev support to qapi
...
This adds mux chardev support to the qapi and also makes the qapi-based
chardev creation path handle the "mux=on" option correctly.
2013-03-13 10:27:45 +01:00
Gerd Hoffmann
2c5f488293
chardev: add support for qapi-based chardev initialization
...
This patch add support for a new way to initialize chardev devices.
Instead of calling a initialization function with a QemuOpts we will
now create a (qapi) ChardevBackend, optionally call a function to
fill ChardevBackend from QemuOpts, then go create the chardev using
the new qapi code path which is also used by chardev-add.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2013-03-13 10:27:45 +01:00
Stefan Berger
4549a8b7ee
Add a TPM Passthrough backend driver implementation
...
This patch is based of off version 9 of Stefan Berger's patch series
"QEMU Trusted Platform Module (TPM) integration"
and adds a new backend driver for it.
This patch adds a passthrough backend driver for passing commands sent to the
emulated TPM device directly to a TPM device opened on the host machine.
Thus it is possible to use a hardware TPM device in a system running on QEMU,
providing the ability to access a TPM in a special state (e.g. after a Trusted
Boot).
This functionality is being used in the acTvSM Trusted Virtualization Platform
which is available on [1].
Usage example:
qemu-system-x86_64 -tpmdev passthrough,id=tpm0,path=/dev/tpm0 \
-device tpm-tis,tpmdev=tpm0 \
-cdrom test.iso -boot d
Some notes about the host TPM:
The TPM needs to be enabled and activated. If that's not the case one
has to go through the BIOS/UEFI and enable and activate that TPM for TPM
commands to work as expected.
It may be necessary to boot the kernel using tpm_tis.force=1 in the boot
command line or 'modprobe tpm_tis force=1' in case of using it as a module.
Regards,
Andreas Niederl, Stefan Berger
[1] http://trustedjava.sourceforge.net/
Signed-off-by: Andreas Niederl <andreas.niederl@iaik.tugraz.at >
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com >
Reviewed-by: Corey Bryant <coreyb@linux.vnet.ibm.com >
Reviewed-by: Joel Schopp <jschopp@linux.vnet.ibm.com >
Message-id: 1361987275-26289-6-git-send-email-stefanb@linux.vnet.ibm.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-12 13:40:55 -05:00
Blue Swirl
44ab9ed4f8
qemu-char: fix win32 build
...
96c6384776
did not adjust
Win32 #ifdeffery properly, breaking build in later commits. Fix.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com >
Tested-by: Igor Mitsyanko <i.mitsyanko@gmail.com >
Message-id: 0ba5565b1ed44380c57d4a5fab86e9549f581ebf.1362822910.git.blauwirbel@gmail.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-10 19:26:22 -05:00
Anthony Liguori
01f45d986f
qemu-char: move text console init to console.c
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 17cefde0a8d7807294bab95e93c3328a20d3f2ed.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:16 -06:00
Anthony Liguori
5ab8211b9e
qemu-char: move msmouse registeration to msmouse.c
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: b47d1153b0d7669743c9a6bb98ce30f4cf7f876b.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:16 -06:00
Anthony Liguori
08744c9811
qemu-char: move baum registration to baum.c
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 1b24baa1ec3a174d5cad31e079d829904b53077b.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:16 -06:00
Anthony Liguori
26c6061452
qemu-char: move spice registration to spice-qemu-char.c
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 49a8d12eeb117e5530b2fab02af7681b54f9245c.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
d654f34ec8
qemu-char: make char drivers dynamically registerable
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 0ff4f5f2b8b7afdb85a0c241403ad73f472f0b81.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
9f939df955
qemu-char: remove use of QEMUTimer in favor of glib idle function
...
qemu-char is now independent of the QEMU main loop.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 3cda0bbcfb94912df8a767983a52bb71a4a3231d.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
8aa33cafc4
qemu-char: use a glib timeout instead of qemu-timer
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 05a883ce5a98275b976bf0124610599859c2b7da.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Amit Shah
d3cc5bc416
char: add gio watch fn for tcp backends
...
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: b50e668c4f4146a654c5d4412440eb9e589f2c02.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
e6a87ed837
qemu-char: add pty watch
...
This lets ptys support adding front end watchs.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 23380f37b22d407ba0b9e080f6ea0d66b279f2d2.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
23673ca740
qemu-char: add watch support
...
This allows a front-end to request for a callback when the backend
is writable again.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 96f93c0f741064604bbb6389ce962191120af8b7.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:15 -06:00
Anthony Liguori
2ea5a7af7b
qemu-char: tcp: make use GIOChannel
...
I didn't bother switching to g_io_channel_read/write because we need to use
sendmsg on Unix. No problem though since we're using an unbuffered channel.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 002f726576dfb51bca4854aa257b74d77c1cd4e8.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:14 -06:00
Anthony Liguori
76a9644b71
qemu-char: convert UDP to GIOChannel
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 775a2bd666a3d1fa008656bf97191b7573c6ffb5.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:13 -06:00
Anthony Liguori
093d3a2005
qemu-char: convert pty to GIOChannel
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 339eebf3c59a450b0354056e9ac4b41f67230831.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:13 -06:00
Anthony Liguori
a29753f8aa
qemu-char: convert fd_chr to use a GIOChannel
...
This uses the newly introduced IOWatchPoll source.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 0cb5d14510ee835a0ebc23676d10a2cce9280da5.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:13 -06:00
Anthony Liguori
96c6384776
char: add IOWatchPoll support
...
This is a special GSource that supports CharDriverState style
poll callbacks.
For reviewability and bisectability, this code is #if 0'd out in this
patch to avoid unused warnings since all of the functions are static.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: 9b59ac17b9d0bb3972a73fed04d415f07b391936.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:12 -06:00
Anthony Liguori
ed7a154063
qemu-char: remove dead/confusing logic with nb_stdio_clients
...
This code is very old dating back to 2007. What is puzzling is that
STDIO_MAX_CLIENTS was always #define to 1 meaning that all of the code to deal
with more than one client was unreachable.
Just remove the whole mess of it.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Signed-off-by: Amit Shah <amit.shah@redhat.com >
Message-id: d276bccdbf4e7463020c5f539f61ae3bfbc88d1d.1362505276.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-03-08 13:57:12 -06:00
MORITA Kazutaka
bf1c852aa9
move socket_set_nodelay to osdep.c
...
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp >
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com >
2013-03-04 09:54:17 +01:00
Anthony Liguori
d82831dbc5
console: allow VCs to be overridden by UI
...
We want to expose VCs using a VteTerminal widget. We need access to provide our
own CharDriverState in order to do this.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
Message-id: 1361367806-4599-3-git-send-email-aliguori@us.ibm.com
2013-02-21 16:34:48 -06:00
Markus Armbruster
d36b2b904e
qapi: Flatten away ChardevPort
...
Simplifies the schema and the code.
QMP command
{ "execute" : "chardev-add",
"arguments" : { "id" : "ser0",
"backend" : { "type" : "port",
"data" : { "type": "serial",
"device":"/dev/ttyS0"} } } }
becomes
{ "execute" : "chardev-add",
"arguments" : { "id" : "ser0",
"backend" : { "type" : "serial",
"data" : { "device":"/dev/ttyS0"} } } }
Bonus: nicer error messages. "unknown chardev port (1)" becomes
"character device backend type 'parallel' not supported".
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-id: 1360767256-610-3-git-send-email-armbru@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-02-13 11:57:32 -06:00
Markus Armbruster
312fd5f290
error: Strip trailing '\n' from error string arguments (again)
...
Commit 6daf194d
and be62a2eb
got rid of a bunch, but they keep coming
back. Tracked down with this Coccinelle semantic patch:
@r@
expression err, eno, cls, fmt;
position p;
@@
(
error_report(fmt, ...)@p
|
error_set(err, cls, fmt, ...)@p
|
error_set_errno(err, eno, cls, fmt, ...)@p
|
error_setg(err, fmt, ...)@p
|
error_setg_errno(err, eno, fmt, ...)@p
)
@script:python@
fmt << r.fmt;
p << r.p;
@@
if "\\n" in str(fmt):
print "%s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt)
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Message-id: 1360354939-10994-4-git-send-email-armbru@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-02-11 08:13:19 -06:00
Markus Armbruster
de1cc36e10
qemu-char: Support suffixed ringbuf size arguments like "size=64K"
...
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Reviewed-by: Eric Blake <eblake@redhat.com >
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com >
2013-02-06 16:35:19 -06:00