Compare commits

...
8 Commits
Author SHA1 Message Date
Peter Maydell a8c40fa2d6 Update version for v2.5.0 release
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-16 16:10:14 +00:00
Peter Maydell f05b42d3fd Update version for v2.5.0-rc4 release
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-11 16:37:55 +00:00
Max Reitz 6e0abc251d blockdev: Mark {insert, remove}-medium experimental
While in the long term we want throttling to be its own block filter
BDS, in the short term we want it to be part of the BB instead of a BDS;
even in the long term we may want legacy throttling to be automatically
tied to the BB.

blockdev-insert-medium and blockdev-remove-medium do not retain
throttling information in the BB (deliberately so). Therefore, using
them means tying this information to a BDS, which would break the model
described above. (The same applies to other flags such as
detect_zeroes.) We probably want to move this information to the BB or
its own filter BDS before blockdev-{insert,remove}-medium can be
considered completely stable.

Therefore, mark these functions experimental for the time being.

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 1449847385-13986-2-git-send-email-mreitz@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
[PMM: fixed format nit (underlining) in qmp-commands.hx]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-11 15:39:29 +00:00
Dr. David Alan Gilbert 3fd3c4b37c Fix xbzrle vs last_sent_block update
My fix (84e7b80a) replaced the last_sent_block update that I'd
removed earlier; however it was too aggressive in the xbzrle case.

save_xbzrle_page might return '0' to mean that the page didn't
need sending since it was the same as the last sent version;
in this case we can't update 'last_sent_block' since we didn't
actually send it.

Symptom: 'Illegal RAM offset 1018000' as we try and send a page
        to the wrong RAMBlock;  potentially that could be a data
        corruption if you were really unlucky.

Fixes: 84e7b80a05

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-id: 1449765106-6528-1-git-send-email-dgilbert@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-11 12:51:27 +00:00
Peter Maydell b969526adf Update language files for QEMU 2.5.0
Update translation files (change created via 'make -C po update').

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Message-id: 1449754467-3496-1-git-send-email-peter.maydell@linaro.org
2015-12-10 13:50:45 +00:00
Alex Zuepke bd4e097a8e sparc: allow CASA with ASI 0xa from user space
LEON3 allows the CASA instruction to be used from user space
if the ASI is set to 0xa (user data).

Signed-off-by: Alex Zuepke <azu@sysgo.de>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-10 11:19:18 +00:00
Greg Kurz a3154ccabc MAINTAINERS: add maintainer to virtio-9p
As suggested by Paolo, I add myself as maintainer for virtio-9p.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Acked-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Message-id: 20151130154016.20108.79073.stgit@bahia.huguette.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-10 11:17:25 +00:00
Greg Kurz 6cecf09373 virtio-9p-device: add minimal unrealize handler
Since commit 4652f1640e "virtio-9p: add savevm
handlers", if the user hot-unplugs a quiescent 9p device and live
migrates, the source QEMU crashes before migration completetion...
This happens because virtio-9p devices have a realize handler which
calls virtio_init() and register_savevm().  Both calls store pointers
to the device internals, that get dereferenced during migration even
if the device got unplugged.

This patch simply adds an unrealize handler to perform minimal
cleanup and avoid the crash.  Hot unplug of non-quiescent 9p devices
is still not supported in QEMU, and not supported by linux guests
either.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20151208155457.27775.69441.stgit@bahia.huguette.org
[PMM: rewrapped long lines in commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-12-10 10:46:22 +00:00
17 changed files with 198 additions and 163 deletions

No files matched your search

+1
View File
@@ -863,6 +863,7 @@ F: net/vhost-user.c
virtio-9p
M: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
M: Greg Kurz <gkurz@linux.vnet.ibm.com>
S: Supported
F: hw/9pfs/
F: fsdev/
+1 -1
View File
@@ -1 +1 @@
2.4.93
2.5.0
+5 -5
View File
@@ -2257,7 +2257,7 @@ void qmp_eject(const char *device, bool has_force, bool force, Error **errp)
return;
}
qmp_blockdev_remove_medium(device, errp);
qmp_x_blockdev_remove_medium(device, errp);
}
void qmp_block_passwd(bool has_device, const char *device,
@@ -2343,7 +2343,7 @@ void qmp_blockdev_close_tray(const char *device, Error **errp)
blk_dev_change_media_cb(blk, true);
}
void qmp_blockdev_remove_medium(const char *device, Error **errp)
void qmp_x_blockdev_remove_medium(const char *device, Error **errp)
{
BlockBackend *blk;
BlockDriverState *bs;
@@ -2430,8 +2430,8 @@ static void qmp_blockdev_insert_anon_medium(const char *device,
QTAILQ_INSERT_TAIL(&bdrv_states, bs, device_list);
}
void qmp_blockdev_insert_medium(const char *device, const char *node_name,
Error **errp)
void qmp_x_blockdev_insert_medium(const char *device, const char *node_name,
Error **errp)
{
BlockDriverState *bs;
@@ -2520,7 +2520,7 @@ void qmp_blockdev_change_medium(const char *device, const char *filename,
goto fail;
}
qmp_blockdev_remove_medium(device, &err);
qmp_x_blockdev_remove_medium(device, &err);
if (err) {
error_propagate(errp, err);
goto fail;
+12
View File
@@ -145,6 +145,17 @@ out:
v9fs_path_free(&path);
}
static void virtio_9p_device_unrealize(DeviceState *dev, Error **errp)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
V9fsState *s = VIRTIO_9P(dev);
virtio_cleanup(vdev);
unregister_savevm(dev, "virtio-9p", s);
g_free(s->ctx.fs_root);
g_free(s->tag);
}
/* virtio-9p device */
static Property virtio_9p_properties[] = {
@@ -161,6 +172,7 @@ static void virtio_9p_class_init(ObjectClass *klass, void *data)
dc->props = virtio_9p_properties;
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
vdc->realize = virtio_9p_device_realize;
vdc->unrealize = virtio_9p_device_unrealize;
vdc->get_features = virtio_9p_get_features;
vdc->get_config = virtio_9p_get_config;
}
+10 -1
View File
@@ -716,6 +716,9 @@ static int save_zero_page(QEMUFile *f, RAMBlock *block, ram_addr_t offset,
* ram_save_page: Send the given page to the stream
*
* Returns: Number of pages written.
* < 0 - error
* >=0 - Number of pages written - this might legally be 0
* if xbzrle noticed the page was the same.
*
* @f: QEMUFile where to send the data
* @block: block that contains the page we want to send
@@ -1249,7 +1252,13 @@ static int ram_save_target_page(MigrationState *ms, QEMUFile *f,
if (unsentmap) {
clear_bit(dirty_ram_abs >> TARGET_PAGE_BITS, unsentmap);
}
last_sent_block = block;
/* Only update last_sent_block if a block was actually sent; xbzrle
* might have decided the page was identical so didn't bother writing
* to the stream.
*/
if (res > 0) {
last_sent_block = block;
}
}
return res;
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2012-02-28 16:00+0100\n"
"Last-Translator: Kevin Wolf <kwolf@redhat.com>\n"
"Language-Team: Deutsch <de@li.org>\n"
@@ -16,70 +16,70 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Strg+Alt+G drücken, um Eingabegeräte freizugeben"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [Angehalten]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "_Angehalten"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "_Reset"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "_Herunterfahren"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr "_Beenden"
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr "_Vollbild"
#: ui/gtk.c:1801
#: ui/gtk.c:1904
msgid "Zoom _In"
msgstr "_Heranzoomen"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
msgid "Zoom _Out"
msgstr "_Wegzoomen"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr "_Einpassen"
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "Auf _Fenstergröße skalieren"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "Tastatur _automatisch einfangen"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "_Eingabegeräte einfangen"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "Reiter anzeigen"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr "Reiter abtrennen"
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "_Maschine"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "_Ansicht"
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2014-07-28 23:25+0200\n"
"Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
"Language-Team: French <FR@li.org>\n"
@@ -17,70 +17,70 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 1.4\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr "- Appuyer sur Ctrl+Alt+G pour arrêter la capture"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [En pause]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "_Pause"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "_Réinitialiser"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "_Éteindre"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr "_Quitter"
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr "Mode _plein écran"
#: ui/gtk.c:1801
#: ui/gtk.c:1904
msgid "Zoom _In"
msgstr "Zoom _avant"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
msgid "Zoom _Out"
msgstr "_Zoom arrière"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr "Zoom _idéal"
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "Zoomer pour a_juster"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "Capturer en _survolant"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "_Capturer les entrées"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "Montrer les _onglets"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr "_Détacher l'onglet"
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "_Machine"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "_Vue"
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2013-05-06 20:42+0200\n"
"Last-Translator: Ákos Kovács <akoskovacs@gmx.com>\n"
"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,73 +15,73 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Nyomj Ctrl+Alt+G-t a bemeneti eszközök elengedéséhez"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [Megállítva]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "_Megállítás"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "Új_raindítás"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "_Leállítás"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr ""
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr ""
#: ui/gtk.c:1801
#: ui/gtk.c:1904
#, fuzzy
msgid "Zoom _In"
msgstr "Ablakmérethez _igazítás"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
#, fuzzy
msgid "Zoom _Out"
msgstr "Ablakmérethez _igazítás"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr ""
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "Ablakmérethez _igazítás"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "Automatikus _elfogás"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "_Bemeneti eszközök megragadása"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "_Fülek megjelenítése"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr ""
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "_Gép"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "_Nézet"
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2014-07-29 08:25+0200\n"
"Last-Translator: Paolo Bonzini <pbonzini@redhat.com>\n"
"Language-Team: Italian <it@li.org>\n"
@@ -16,70 +16,70 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Premere Ctrl+Alt+G per rilasciare l'input"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [Pausa]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "_Pausa"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "_Reset"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "_Spegni"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr "_Esci"
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr ""
#: ui/gtk.c:1801
#: ui/gtk.c:1904
msgid "Zoom _In"
msgstr "_Aumenta zoom"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
msgid "Zoom _Out"
msgstr "_Riduci zoom"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr "A_nnulla zoom"
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "Adatta alla _finestra"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "Cattura _automatica input"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "_Cattura input"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "Mostra _tab"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr "_Sposta in una nuova finestra"
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "_Macchina virtuale"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "_Visualizza"
+19 -19
View File
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: QEMU 2.3.93\n"
"Project-Id-Version: QEMU 2.4.93\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,70 +16,70 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr ""
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr ""
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr ""
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr ""
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr ""
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr ""
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr ""
#: ui/gtk.c:1801
#: ui/gtk.c:1904
msgid "Zoom _In"
msgstr ""
#: ui/gtk.c:1808
#: ui/gtk.c:1911
msgid "Zoom _Out"
msgstr ""
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr ""
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr ""
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr ""
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr ""
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr ""
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr ""
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr ""
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr ""
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2013-04-22 18:35+0300\n"
"Last-Translator: Ozan Çağlayan <ozancag@gmail.com>\n"
"Language-Team: Türkçe <>\n"
@@ -17,72 +17,72 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Yakalamayı durdurmak için Ctrl+Alt+G tuşlarına basın"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [Duraklatıldı]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "_Duraklat"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "_Sıfırla"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "_Kapat"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr ""
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr ""
#: ui/gtk.c:1801
#: ui/gtk.c:1904
#, fuzzy
msgid "Zoom _In"
msgstr "Yakınlaş ve Sığ_dır"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
#, fuzzy
msgid "Zoom _Out"
msgstr "Yakınlaş ve Sığ_dır"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr ""
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "Yakınlaş ve Sığ_dır"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "Ü_zerindeyken Yakala"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "Girdiyi _Yakala"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "Se_kmeleri Göster"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr ""
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "_Makine"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "_Görüntüle"
+18 -18
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: QEMU 2.2\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"POT-Creation-Date: 2015-12-10 13:29+0000\n"
"PO-Revision-Date: 2014-07-31 10:00+0800\n"
"Last-Translator: Fam Zheng <famz@redhat.com>\n"
"Language-Team: Chinese <zh@li.org>\n"
@@ -17,70 +17,70 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 1.4\n"
#: ui/gtk.c:260
#: ui/gtk.c:271
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - 按下 Ctrl+Alt+G 取消捕获"
#: ui/gtk.c:264
#: ui/gtk.c:275
msgid " [Paused]"
msgstr " [已暂停]"
#: ui/gtk.c:1688
#: ui/gtk.c:1783
msgid "_Pause"
msgstr "暂停(_P)"
#: ui/gtk.c:1694
#: ui/gtk.c:1789
msgid "_Reset"
msgstr "重置(_R)"
#: ui/gtk.c:1697
#: ui/gtk.c:1792
msgid "Power _Down"
msgstr "关闭电源(_D)"
#: ui/gtk.c:1703
#: ui/gtk.c:1798
msgid "_Quit"
msgstr "退出(_Q)"
#: ui/gtk.c:1787
#: ui/gtk.c:1890
msgid "_Fullscreen"
msgstr "全屏(_F)"
#: ui/gtk.c:1801
#: ui/gtk.c:1904
msgid "Zoom _In"
msgstr "放大(_I)"
#: ui/gtk.c:1808
#: ui/gtk.c:1911
msgid "Zoom _Out"
msgstr "缩小(_O)"
#: ui/gtk.c:1815
#: ui/gtk.c:1918
msgid "Best _Fit"
msgstr "最合适大小(_F)"
#: ui/gtk.c:1822
#: ui/gtk.c:1925
msgid "Zoom To _Fit"
msgstr "缩放以适应大小(_F)"
#: ui/gtk.c:1828
#: ui/gtk.c:1931
msgid "Grab On _Hover"
msgstr "鼠标经过时捕获(_H)"
#: ui/gtk.c:1831
#: ui/gtk.c:1934
msgid "_Grab Input"
msgstr "捕获输入(_G)"
#: ui/gtk.c:1860
#: ui/gtk.c:1963
msgid "Show _Tabs"
msgstr "显示标签页(_T)"
#: ui/gtk.c:1863
#: ui/gtk.c:1966
msgid "Detach Tab"
msgstr "分离标签页"
#: ui/gtk.c:1875
#: ui/gtk.c:1978
msgid "_Machine"
msgstr "虚拟机(_M)"
#: ui/gtk.c:1880
#: ui/gtk.c:1983
msgid "_View"
msgstr "视图(_V)"
+12 -6
View File
@@ -2081,7 +2081,7 @@
'data': { 'device': 'str' } }
##
# @blockdev-remove-medium:
# @x-blockdev-remove-medium:
#
# Removes a medium (a block driver state tree) from a block device. That block
# device's tray must currently be open (unless there is no attached guest
@@ -2089,27 +2089,33 @@
#
# If the tray is open and there is no medium inserted, this will be a no-op.
#
# This command is still a work in progress and is considered experimental.
# Stay away from it unless you want to help with its development.
#
# @device: block device name
#
# Since: 2.5
##
{ 'command': 'blockdev-remove-medium',
{ 'command': 'x-blockdev-remove-medium',
'data': { 'device': 'str' } }
##
# @blockdev-insert-medium:
# @x-blockdev-insert-medium:
#
# Inserts a medium (a block driver state tree) into a block device. That block
# device's tray must currently be open (unless there is no attached guest
# device) and there must be no medium inserted already.
#
# This command is still a work in progress and is considered experimental.
# Stay away from it unless you want to help with its development.
#
# @device: block device name
#
# @node-name: name of a node in the block driver state graph
#
# Since: 2.5
##
{ 'command': 'blockdev-insert-medium',
{ 'command': 'x-blockdev-insert-medium',
'data': { 'device': 'str',
'node-name': 'str'} }
@@ -2137,8 +2143,8 @@
#
# Changes the medium inserted into a block device by ejecting the current medium
# and loading a new image file which is inserted as the new medium (this command
# combines blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium
# and blockdev-close-tray).
# combines blockdev-open-tray, x-blockdev-remove-medium,
# x-blockdev-insert-medium and blockdev-close-tray).
#
# @device: block device name
#
+17 -11
View File
@@ -4203,27 +4203,30 @@ Example:
EQMP
{
.name = "blockdev-remove-medium",
.name = "x-blockdev-remove-medium",
.args_type = "device:s",
.mhandler.cmd_new = qmp_marshal_blockdev_remove_medium,
.mhandler.cmd_new = qmp_marshal_x_blockdev_remove_medium,
},
SQMP
blockdev-remove-medium
----------------------
x-blockdev-remove-medium
------------------------
Removes a medium (a block driver state tree) from a block device. That block
device's tray must currently be open (unless there is no attached guest device).
If the tray is open and there is no medium inserted, this will be a no-op.
This command is still a work in progress and is considered experimental.
Stay away from it unless you want to help with its development.
Arguments:
- "device": block device name (json-string)
Example:
-> { "execute": "blockdev-remove-medium",
-> { "execute": "x-blockdev-remove-medium",
"arguments": { "device": "ide1-cd0" } }
<- { "error": { "class": "GenericError",
@@ -4240,7 +4243,7 @@ Example:
<- { "return": {} }
-> { "execute": "blockdev-remove-medium",
-> { "execute": "x-blockdev-remove-medium",
"arguments": { "device": "ide1-cd0" } }
<- { "return": {} }
@@ -4248,19 +4251,22 @@ Example:
EQMP
{
.name = "blockdev-insert-medium",
.name = "x-blockdev-insert-medium",
.args_type = "device:s,node-name:s",
.mhandler.cmd_new = qmp_marshal_blockdev_insert_medium,
.mhandler.cmd_new = qmp_marshal_x_blockdev_insert_medium,
},
SQMP
blockdev-insert-medium
----------------------
x-blockdev-insert-medium
------------------------
Inserts a medium (a block driver state tree) into a block device. That block
device's tray must currently be open (unless there is no attached guest device)
and there must be no medium inserted already.
This command is still a work in progress and is considered experimental.
Stay away from it unless you want to help with its development.
Arguments:
- "device": block device name (json-string)
@@ -4276,7 +4282,7 @@ Example:
<- { "return": {} }
-> { "execute": "blockdev-insert-medium",
-> { "execute": "x-blockdev-insert-medium",
"arguments": { "device": "ide1-cd0",
"node-name": "node0" } }
+2 -1
View File
@@ -5097,7 +5097,8 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
if (IS_IMM) {
goto illegal_insn;
}
if (!supervisor(dc)) {
/* LEON3 allows CASA from user space with ASI 0xa */
if ((GET_FIELD(insn, 19, 26) != 0xa) && !supervisor(dc)) {
goto priv_insn;
}
#endif
+10 -10
View File
@@ -208,14 +208,14 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
else:
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
result = self.vm.qmp('blockdev-remove-medium', device='drive0')
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('blockdev-insert-medium', device='drive0',
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
node_name='new')
self.assert_qmp(result, 'return', {})
@@ -243,7 +243,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
# Empty floppy drive
return
result = self.vm.qmp('blockdev-remove-medium', device='drive0')
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
self.assert_qmp(result, 'error/class', 'GenericError')
def test_insert_on_closed(self):
@@ -258,7 +258,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass):
'driver': 'file'}})
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('blockdev-insert-medium', device='drive0',
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
node_name='new')
self.assert_qmp(result, 'error/class', 'GenericError')
@@ -289,7 +289,7 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass):
self.wait_for_open()
result = self.vm.qmp('blockdev-insert-medium', device='drive0',
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
node_name='new')
self.assert_qmp(result, 'error/class', 'GenericError')
@@ -311,7 +311,7 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass):
self.wait_for_open()
result = self.vm.qmp('blockdev-remove-medium', device='drive0')
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
# Should be a no-op
self.assert_qmp(result, 'return', {})
@@ -604,14 +604,14 @@ class TestChangeReadOnly(ChangeBaseClass):
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
result = self.vm.qmp('blockdev-remove-medium', device='drive0')
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('blockdev-insert-medium', device='drive0',
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
node_name='new')
self.assert_qmp(result, 'return', {})
@@ -653,7 +653,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
# For device-less BBs, calling blockdev-open-tray or blockdev-close-tray
# is not necessary
result = self.vm.qmp('blockdev-remove-medium', device='drive0')
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
@@ -666,7 +666,7 @@ class TestBlockJobsAfterCycle(ChangeBaseClass):
'driver': 'file'}})
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('blockdev-insert-medium', device='drive0',
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
node_name='node0')
self.assert_qmp(result, 'return', {})
+1 -1
View File
@@ -174,7 +174,7 @@ class TestBlockdevDel(iotests.QMPTestCase):
def insertDrive(self, backend, node):
self.checkBlockBackend(backend, None)
self.checkBlockDriverState(node)
result = self.vm.qmp('blockdev-insert-medium',
result = self.vm.qmp('x-blockdev-insert-medium',
device = backend, node_name = node)
self.assert_qmp(result, 'return', {})
self.checkBlockBackend(backend, node)