mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
Block pull request
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJTIbe5AAoJEJykq7OBq3PI0/AH/jglW+rsN+0/kAr5wIY4BQUn qvzYHBP9xvPtd0cGubTt2N3bZPlb/zTVFe/OOpJmaENrVJY/rPZNF3nKqdrr5uOP WrBbQZi2hkOG82uuiN2BiGh324zOMBNSh3d2WaHmJpxjabZcjN28UOkx5WGlBImu VAHY/HaImOLMkS120GxbMsFziXRLM66o9XWEbA/l0EBOISM6KloX6mtZd7y6MGzA a35JbUueyRo+hvndFEHY2P2XvUc5ZycOYF2yOz59X5QrqhmP6I+Ym4ohtyO2Olga jpoAO7jDpV/7PJwo1xC8j+1jhl3VGdX2L7iWgDUTJ0jY8mV3hQWhy58fOEwYY+k= =0llk -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging Block pull request # gpg: Signature made Thu 13 Mar 2014 13:50:49 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: (24 commits) block/raw-win32: bdrv_parse_filename() for hdev block/raw-posix: Strip protocol prefix on creation block/raw-posix: bdrv_parse_filename() for cdrom block/raw-posix: bdrv_parse_filename() for floppy block/raw-posix: bdrv_parse_filename() for hdev qemu-io: Fix warnings from static code analysis block: Unlink temporary file qcow2: Don't write with BDRV_O_INCOMING qcow2: Keep option in qcow2_invalidate_cache() qmp: add query-iothreads command iothread: stash thread ID away dataplane: replace internal thread with IOThread iothread: add "iothread" qdev property type qdev: make get_pointer() handle temporary strings iothread: add I/O thread object aio: add aio_context_acquire() and aio_context_release() rfifolock: add recursive FIFO lock object: add object_get_canonical_path_component() block: Rewrite the snapshot authorization mechanism for block filters. iotests: Test corruption during COW request ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
57fac92c2d
35 changed files with 943 additions and 138 deletions
|
@ -18,17 +18,19 @@
|
|||
#include "net/hub.h"
|
||||
#include "qapi/visitor.h"
|
||||
#include "sysemu/char.h"
|
||||
#include "sysemu/iothread.h"
|
||||
|
||||
static void get_pointer(Object *obj, Visitor *v, Property *prop,
|
||||
const char *(*print)(void *ptr),
|
||||
char *(*print)(void *ptr),
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
void **ptr = qdev_get_prop_ptr(dev, prop);
|
||||
char *p;
|
||||
|
||||
p = (char *) (*ptr ? print(*ptr) : "");
|
||||
p = *ptr ? print(*ptr) : g_strdup("");
|
||||
visit_type_str(v, &p, name, errp);
|
||||
g_free(p);
|
||||
}
|
||||
|
||||
static void set_pointer(Object *obj, Visitor *v, Property *prop,
|
||||
|
@ -91,9 +93,9 @@ static void release_drive(Object *obj, const char *name, void *opaque)
|
|||
}
|
||||
}
|
||||
|
||||
static const char *print_drive(void *ptr)
|
||||
static char *print_drive(void *ptr)
|
||||
{
|
||||
return bdrv_get_device_name(ptr);
|
||||
return g_strdup(bdrv_get_device_name(ptr));
|
||||
}
|
||||
|
||||
static void get_drive(Object *obj, Visitor *v, void *opaque,
|
||||
|
@ -145,11 +147,12 @@ static void release_chr(Object *obj, const char *name, void *opaque)
|
|||
}
|
||||
|
||||
|
||||
static const char *print_chr(void *ptr)
|
||||
static char *print_chr(void *ptr)
|
||||
{
|
||||
CharDriverState *chr = ptr;
|
||||
const char *val = chr->label ? chr->label : "";
|
||||
|
||||
return chr->label ? chr->label : "";
|
||||
return g_strdup(val);
|
||||
}
|
||||
|
||||
static void get_chr(Object *obj, Visitor *v, void *opaque,
|
||||
|
@ -224,11 +227,12 @@ err:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static const char *print_netdev(void *ptr)
|
||||
static char *print_netdev(void *ptr)
|
||||
{
|
||||
NetClientState *netdev = ptr;
|
||||
const char *val = netdev->name ? netdev->name : "";
|
||||
|
||||
return netdev->name ? netdev->name : "";
|
||||
return g_strdup(val);
|
||||
}
|
||||
|
||||
static void get_netdev(Object *obj, Visitor *v, void *opaque,
|
||||
|
@ -382,6 +386,56 @@ void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd)
|
|||
nd->instantiated = 1;
|
||||
}
|
||||
|
||||
/* --- iothread --- */
|
||||
|
||||
static char *print_iothread(void *ptr)
|
||||
{
|
||||
return iothread_get_id(ptr);
|
||||
}
|
||||
|
||||
static int parse_iothread(DeviceState *dev, const char *str, void **ptr)
|
||||
{
|
||||
IOThread *iothread;
|
||||
|
||||
iothread = iothread_find(str);
|
||||
if (!iothread) {
|
||||
return -ENOENT;
|
||||
}
|
||||
object_ref(OBJECT(iothread));
|
||||
*ptr = iothread;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void get_iothread(Object *obj, struct Visitor *v, void *opaque,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
get_pointer(obj, v, opaque, print_iothread, name, errp);
|
||||
}
|
||||
|
||||
static void set_iothread(Object *obj, struct Visitor *v, void *opaque,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
set_pointer(obj, v, opaque, parse_iothread, name, errp);
|
||||
}
|
||||
|
||||
static void release_iothread(Object *obj, const char *name, void *opaque)
|
||||
{
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
Property *prop = opaque;
|
||||
IOThread **ptr = qdev_get_prop_ptr(dev, prop);
|
||||
|
||||
if (*ptr) {
|
||||
object_unref(OBJECT(*ptr));
|
||||
}
|
||||
}
|
||||
|
||||
PropertyInfo qdev_prop_iothread = {
|
||||
.name = "iothread",
|
||||
.get = get_iothread,
|
||||
.set = set_iothread,
|
||||
.release = release_iothread,
|
||||
};
|
||||
|
||||
static int qdev_add_one_global(QemuOpts *opts, void *opaque)
|
||||
{
|
||||
GlobalProperty *g;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue