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.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2009-06-30 14:12:09 +02:00 committed by Paul Brook
parent 10c4c98ab7
commit 042f84d0af
2 changed files with 18 additions and 27 deletions

View file

@ -4,7 +4,7 @@
#include "hw.h"
#include "sys-queue.h"
typedef struct DeviceType DeviceType;
typedef struct DeviceInfo DeviceInfo;
typedef struct DeviceProperty DeviceProperty;
@ -15,7 +15,7 @@ typedef struct BusInfo BusInfo;
/* This structure should not be accessed directly. We declare it here
so that it can be embedded in individual device state structures. */
struct DeviceState {
DeviceType *type;
DeviceInfo *info;
BusState *parent_bus;
DeviceProperty *props;
int num_gpio_out;
@ -72,8 +72,6 @@ typedef struct {
DevicePropType type;
} DevicePropList;
typedef struct DeviceInfo DeviceInfo;
typedef void (*qdev_initfn)(DeviceState *dev, DeviceInfo *info);
typedef void (*SCSIAttachFn)(DeviceState *host, BlockDriverState *bdrv,
int unit);
@ -86,6 +84,7 @@ struct DeviceInfo {
/* Private to qdev / bus. */
qdev_initfn init;
BusInfo *bus_info;
struct DeviceInfo *next;
};
void qdev_register(DeviceInfo *info);