Statistics
| Branch: | Revision:

root / hw / qdev.h @ 17786d52

History | View | Annotate | Download (10.2 kB)

# Date Author Comment
2446333c 08/24/2010 06:22 pm Blue Swirl

Rearrange block headers

Changing block.h or blockdev.h resulted in recompiling most objects.

Move DriveInfo typedef and BlockInterfaceType enum definitions
to qemu-common.h and rearrange blockdev.h use to decrease churn.

Signed-off-by: Blue Swirl <>

f4594a3b 07/11/2010 08:00 pm Isaku Yamahata

qdev: implement qdev_prop_set_bit().

implement qdev_prop_set_bit().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Blue Swirl <>

6772b936 07/06/2010 06:36 pm Alex Williamson

qdev: Add a get_dev_path() function to BusInfo

This function is meant to provide a stable device path for buses
which are able to implement it. If a bus has a globally unique
addresses scheme, one address level may be sufficient to provide
a path. Other buses may need to recursively traverse up the...

f8b6cc00 07/02/2010 02:18 pm Markus Armbruster

qdev: Decouple qdev_prop_drive from DriveInfo

Make the property point to BlockDriverState, cutting out the DriveInfo
middleman. This prepares the ground for block devices that don't have
a DriveInfo.

Currently all user-defined ones have a DriveInfo, because the only way...

18846dee 07/02/2010 02:18 pm Markus Armbruster

block: Catch attempt to attach multiple devices to a blockdev

For instance, -device scsi-disk,drive=foo -device scsi-disk,drive=foo
happily creates two SCSI disks connected to the same block device.
It's all downhill from there.

Device usb-storage deliberately attaches twice to the same blockdev,...

666daa68 06/04/2010 04:20 pm Markus Armbruster

blockdev: Collect block device code in new blockdev.c

Anything that moves hundreds of lines out of vl.c can't be all bad.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

7b370f51 06/04/2010 12:43 pm Markus Armbruster

qdev: Move declaration of qdev_init_bdrv() into qdev.h

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

cc984673 06/04/2010 12:43 pm Markus Armbruster

qdev: New qdev_prop_set_string()

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

d21357df 06/04/2010 12:43 pm Markus Armbruster

qdev: Don't leak string property value on hot unplug

parse_string() qemu_strdup()s the property value. It is never freed.
It needs to be freed along with the device. Otherwise, the value of
scsi-disk property "ver" gets leaked when hot-unplugging the disk, for...

4d2ffa08 05/15/2010 05:23 pm Jan Kiszka

vmstate: Add support for alias ID

Some legacy users (mostly PC devices) of vmstate_register manage
instance IDs on their own, and that unfortunately in a way that is
incompatible with automatically generated ones. This so far prevents
switching those users to vmstates that are registered by qdev....

25920d6a 04/23/2010 05:08 pm Kevin Wolf

Make qemu-config available for tools

To be able to use config files for blkdebug, we need to make these functions
available in the tools. This involves moving two functions that can only be
built in the context of the emulator.

Signed-off-by: Kevin Wolf <>

17a38eaa 04/19/2010 12:46 am Markus Armbruster

monitor: convert do_device_del() to QObject, QError

Signed-off-by: Markus Armbruster <>
Signed-off-by: Luiz Capitulino <>

8bc27249 03/16/2010 06:45 pm Markus Armbruster

monitor: convert do_device_add() to QObject

75422b0d 03/08/2010 07:30 pm Amit Shah

qdev: Add a DEV_NVECTORS_UNSPECIFIED enum for unspecified nr of MSI vectors

net.c used a constant to signify no MSI vectors were specified. Extend
that to all qdev devices.

Signed-off-by: Amit Shah <>
Reported-by: "Michael S. Tsirkin" <>...

ff952ba2 02/03/2010 08:39 pm Markus Armbruster

qdev: Fix exit code for -device ?

Help was shoehorned into device creation, qdev_device_add(). Since
help doesn't create a device, it returns NULL, which looks to callers
just like failed device creation. Monitor handler do_device_add()
doesn't care, but main() exits unsuccessfully....

d2364ee4 01/11/2010 09:40 pm Michael S. Tsirkin

qdev: add bit property type

This adds "bit" property type, which is a boolean stored in a 32 bit
integer field, with legal values on and off. Will be used by virtio for
feature bits.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Gerd Hoffmann <>...

458fb679 12/12/2009 03:59 pm Gerd Hoffmann

qdev: make compat stuff more generic

This patch renames the compat properties into global properties and
makes them more generic. The compatibility stuff is only one of
multiple possible users now.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

5096fae3 12/03/2009 05:41 pm Mark McLoughlin

qdev: move DO_UPCAST() into osdep.h

Nothing qdev specific about this, make it available throughtout.

Signed-off-by: Mark McLoughlin <>
Signed-off-by: Anthony Liguori <>

0958b4cc 10/30/2009 03:39 pm Gerd Hoffmann

usb core: use qdev for -usbdevice

This patchs adds infrastructure to handle -usbdevice via qdev callbacks.
USBDeviceInfo gets a name field (for the -usbdevice driver name) and a
callback for -usbdevice parameter parsing.

The new usbdevice_create() function walks the qdev driver list and looks...

1cc33683 10/27/2009 07:28 pm Gerd Hoffmann

zap DeviceState->nd

No users left.
Also cleanup obsolete helper functions.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

d8ed79ae 10/27/2009 07:28 pm Gerd Hoffmann

qdev: add qdev_prop_exists()

Function test whenever a driver has a specific property.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

1503fff3 10/27/2009 07:28 pm Gerd Hoffmann

qdev: mac addr property fixups

Make the mac property use the newly added type for the mac address.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

2ef924b4 10/27/2009 07:28 pm Gerd Hoffmann

qdev: add netdev property

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

851bec09 10/27/2009 07:28 pm Gerd Hoffmann

qdev: add vlan property

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

59419663 10/21/2009 09:35 pm Gerd Hoffmann

qdev: add string property.

Patchworks-ID: 35755
Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Amit Shah <>
Signed-off-by: Anthony Liguori <>

747bbdf7 10/18/2009 07:26 pm Blue Swirl

Suppress warnings about 'warn_unused_result' attribute directive

Signed-off-by: Blue Swirl <>

dde8bbb4 10/07/2009 04:54 pm Markus Armbruster

Warn if value of qdev_init() isn't checked

After qdev_init() fails, the device is gone. Failure to check runs a
high risk of use-after-free.

Patchworks-ID: 35166
Signed-off-by: Markus Armbruster <>
Signed-off-by: Anthony Liguori <>

e23a1b33 10/07/2009 04:54 pm Markus Armbruster

New qdev_init_nofail()

Like qdev_init(), but terminate program via hw_error() instead of
returning an error value.

Use it instead of qdev_init() where terminating the program on failure
is okay, either because it's during machine construction, or because...

7f23f812 10/05/2009 05:32 pm Michael S. Tsirkin

qemu/qdev: type safety in reset handler

Add type safety to qdev reset handlers, by declaring them as
DeviceState * rather than void *.

Signed-off-by: Michael S. Tsirkin <>
Signed-off-by: Anthony Liguori <>

ef80b466 10/05/2009 05:32 pm Gerd Hoffmann

store a pointer to QemuOpts in DeviceState, release it when zapping a device.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

131ec1bd 10/05/2009 05:32 pm Gerd Hoffmann

qdev: device free fixups.

Two bug fixes: * When freeing a device we unregister even stuff we didn't register in
the first place because the ->init() callback failed. * When freeing a device with child busses attached, we fail to zap the
child bus (and the devices attached to it)....

d29275f1 10/05/2009 05:32 pm Gerd Hoffmann

Add exit callback to DeviceInfo.

This adds a exit callback for device destruction to DeviceInfo, so
we can hook cleanups into qdev device destruction.

Followup patches will put that into use.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

3418bd25 10/05/2009 05:32 pm Gerd Hoffmann

qdev hotplug: infrastructure and monitor commands.

Adds device_add and device_del commands. device_add accepts accepts
the same syntax like the -device command line switch. device_del
expects a device id. So you should tag your devices with ids if you...

cd739fb6 10/05/2009 05:32 pm Gerd Hoffmann

allow qdev busses allocations be inplace

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

c7cc172d 10/05/2009 05:32 pm Juan Quintela

qdev: Add support for uint8_t

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

979ba184 09/25/2009 05:34 pm Stefan Weil

Fix spelling in comment

replace Convery -> Convert

Cc: Paul Brook <>
Signed-off-by: Stefan Weil <>
Signed-off-by: Aurelien Jarno <>

72cf2d4f 09/12/2009 10:36 am Blue Swirl

Fix sys-queue.h conflict for good

Problem: Our file sys-queue.h is a copy of the BSD file, but there are
some additions and it's not entirely compatible. Because of that, there have
been conflicts with system headers on BSD systems. Some hacks have been
introduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896,...

316940b0 09/10/2009 06:47 pm Gerd Hoffmann

qdev: add property type for 32bit signed integers.

Signed-off-by: Gerd Hoffmann <>

959f733a 09/09/2009 10:57 pm Gerd Hoffmann

qdev: integrate reset

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

391a079e 09/09/2009 10:57 pm Gerd Hoffmann

qdev: integrate vmstate

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

d52affa7 09/09/2009 10:57 pm Gerd Hoffmann

qdev/scsi: add scsi bus support to qdev, convert drivers.

  • Add SCSIBus. * Add SCSIDeviceInfo, move device callbacks here. * add qdev/scsi helper functions. * convert drivers.

Adding scsi disks via -device works now, i.e. you can do:

-drive id=sda,if=none,......
81a322d4 08/28/2009 04:43 am Gerd Hoffmann

qdev: add return value to init() callbacks.

Sorry folks, but it has to be. One more of these invasive qdev patches.

We have a serious design bug in the qdev interface: device init
callbacks can't signal failure because the init() callback has no
return value. This patch fixes it....

f0d99ad7 08/28/2009 04:30 am Juan Quintela

move useful type definitons to osdep.h

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

c981d39c 08/11/2009 03:27 am Anthony Liguori

Fix virtio-blk

Reported-by: Christoph Hellwig
Signed-off-by: Anthony Liguori <>

f6c64e0e 08/10/2009 09:11 pm Gerd Hoffmann

rename "info qdrv" to "info qdm"

As requested by avi: driver != device model.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>
Message-Id:

313feaab 08/10/2009 09:05 pm Gerd Hoffmann

qdev/prop: add CharDriverState property.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>
Message-Id:

cf12b95b 08/10/2009 09:05 pm Gerd Hoffmann

qdev/prop: macros for creating typechecked properties.

There are DEFINE_PROP_$TYPE macros for
each property type. These macros link the qdev_prop_$name struct to the
type used by that property. typeof(struct->field) is verifyed to be the...

f31d07d1 08/10/2009 09:05 pm Gerd Hoffmann

QemuOpts: switch over -device.

Make -device switch use the QemuOpts framework.
Everything should continue to work like it did before.

New: "-set device.$id.$property=$value" works.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>...

14b41872 08/10/2009 09:05 pm Gerd Hoffmann

qdev/prop: add drive property.

Adds a (host) drive property, intended to be used by virtual disk
backend drivers.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>
Message-Id:

9316d30f 07/30/2009 05:50 pm Gerd Hoffmann

qdev/core: add monitor command to list all drivers

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

05cb5fe4 07/27/2009 04:39 pm Gerd Hoffmann

qdev/prop: add pci devfn property

So we can parse "$slot.$fn" strings into devfn numbers.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

d271de9f 07/27/2009 04:39 pm Gerd Hoffmann

qdev: create default bus names.

Create a default bus name if none is passed to qbus_create().

If the parent device has DeviceState->id set it will be used to create
the bus name,. i.e. -device lsi,id=foo will give you a scsi bus named
"foo.0".

If there is no id BusInfo->name (lowercased) will be used instead, i.e....

8ffb1bcf 07/27/2009 04:39 pm Gerd Hoffmann

qdev: bus walker + qdev_device_add()

This patch implements a parser and qdev tree walker for bus paths and
adds qdev_device_add on top of this.

A bus path can be:
(1) full path, i.e. /i440FX-pcihost/pci.0/lsi/scsi.0
(2) bus name, i.e. "scsi.0". Best used together with id= to make...

5a053d1f 07/21/2009 02:10 pm Blue Swirl

qdev: add 64 bit type

Signed-off-by: Blue Swirl <>

a9ff9df1 07/17/2009 02:18 pm Blue Swirl

Suppress a Sparse warning

Move the export to a file used by both qdev.c and sysbus.c.

Signed-off-by: Blue Swirl <>

ccb63de3 07/17/2009 01:28 am Gerd Hoffmann

qdev: add user-specified identifier to devices.

Add id field to DeviceState. Make "info qtree" print it.

This helps users and management apps identifying devices in monitor
output, which is especially useful with otherwise identical devices
such as two virtio disks....

b6b61144 07/17/2009 01:28 am Gerd Hoffmann

qdev/compat: compat property infrastructure.

This add support for switching devices into a compatibility mode
using device properties. Machine types can have a list of properties
for specific devices attached to allow the easy creation of machine
types compatible to older qemu versions....

3320e56e 07/17/2009 01:28 am Gerd Hoffmann

qdev: add no_user, alias and desc

no_user: prevent users from adding certain devices.
desc: description of the device.
alias: to allow user friendly shortcuts on the command line, i.e.
-device usbmouse instead of -device "QEMU USB Mouse" or
-device lsi instead of -device lsi53c895a...

ee6847d1 07/17/2009 01:28 am Gerd Hoffmann

qdev: rework device properties.

This patch is a major overhaul of the device properties. The properties
are saved directly in the device state struct now, the linked list of
property values is gone.

Advantages: * We don't have to maintain the list with the property values....

10c4c98a 07/09/2009 03:07 pm Gerd Hoffmann

qdev: replace bus_type enum with bus_info struct.

BusInfo is filled with name and size (pretty much like I did for
DeviceInfo as well). There is also a function pointer to print
bus-specific device information to the monitor. sysbus is hooked
up there, I've also added a print function for PCI....

042f84d0 07/09/2009 03:07 pm Gerd Hoffmann

qdev: remove DeviceType

The only purpose DeviceType serves is creating a linked list of
DeviceInfo structs. This removes DeviceType and add a next field to
DeviceInfo instead, so the DeviceInfo structs can be changed that way.
Elimitates a pointless extra level of indirection....

074f2fff 06/11/2009 03:47 pm Gerd Hoffmann

qdev: move name+size into DeviceInfo (v2)

Rationale: move device information from code to data structures.

v2: Adapt the drivers missed in the first version.

Signed-off-by: Gerd Hoffmann <>

cae4956e 06/05/2009 05:53 pm Gerd Hoffmann

qdev: add monitor command to dump the tree.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Paul Brook <>

1431b6a1 06/05/2009 05:52 pm Paul Brook

Record device property types

Record device property types, and provide a list of properties at device
registration time.

Add a "device" property type that holds a reference to annother device.

Signed-off-by: Paul Brook <>

aca312af 06/04/2009 01:24 pm Gerd Hoffmann

qdev: kill DeviceState->name

is redundant with DeviceState->type->name

Signed-off-by: Gerd Hoffmann <>

067a3ddc 05/26/2009 04:56 pm Paul Brook

Remove qdev irq sink handling

We have both IRQ sinks and GPIO inputs. These are in principle exactly
the same thing, so remove the former.

Signed-off-by: Paul Brook <>

02e2da45 05/23/2009 02:13 am Paul Brook

Add common BusState

Implement and use a common device bus state. The main side-effect is
that creating a bus and attaching it to a parent device are no longer
separate operations. For legacy code we allow a NULL parent, but that
should go away eventually....

89a740e1 05/17/2009 04:55 pm Paul Brook

Consistently use uint64_t for int properties

I apparently failed to do this properly on the first attempt.

Signed-off-by: Paul Brook <>

6f68ecb2 05/15/2009 12:35 am Paul Brook

qdev scsi bus infrastructure

Signed-off-by: Paul Brook <>

9d07d757 05/15/2009 12:35 am Paul Brook

PCI network qdev conversion

Signed-off-by: Paul Brook <>

aae9460e 05/15/2009 12:35 am Paul Brook

Basic qdev infrastructure.

Signed-off-by: Paul Brook <>

4d6ae674 05/15/2009 12:35 am Paul Brook

qdev child bus support

Signed-off-by: Paul Brook <>