Revision 1431b6a1 hw/sysbus.c
b/hw/sysbus.c | ||
---|---|---|
21 | 21 |
#include "sysbus.h" |
22 | 22 |
#include "sysemu.h" |
23 | 23 |
|
24 |
typedef struct { |
|
25 |
DeviceInfo qdev; |
|
26 |
sysbus_initfn init; |
|
27 |
} SysBusDeviceInfo; |
|
28 |
|
|
29 | 24 |
void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq) |
30 | 25 |
{ |
31 | 26 |
assert(n >= 0 && n < dev->num_irq); |
... | ... | |
109 | 104 |
info->init(sysbus_from_qdev(dev)); |
110 | 105 |
} |
111 | 106 |
|
112 |
void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init) |
|
107 |
void sysbus_register_withprop(const char *name, size_t size, |
|
108 |
SysBusDeviceInfo *info) |
|
113 | 109 |
{ |
114 |
SysBusDeviceInfo *info; |
|
115 |
|
|
116 |
info = qemu_mallocz(sizeof(*info)); |
|
117 |
info->init = init; |
|
118 | 110 |
info->qdev.init = sysbus_device_init; |
119 | 111 |
info->qdev.bus_type = BUS_TYPE_SYSTEM; |
120 | 112 |
|
... | ... | |
122 | 114 |
qdev_register(name, size, &info->qdev); |
123 | 115 |
} |
124 | 116 |
|
117 |
void sysbus_register_dev(const char *name, size_t size, sysbus_initfn init) |
|
118 |
{ |
|
119 |
SysBusDeviceInfo *info; |
|
120 |
|
|
121 |
info = qemu_mallocz(sizeof(*info)); |
|
122 |
info->init = init; |
|
123 |
sysbus_register_withprop(name, size, info); |
|
124 |
} |
|
125 |
|
|
125 | 126 |
DeviceState *sysbus_create_varargs(const char *name, |
126 | 127 |
target_phys_addr_t addr, ...) |
127 | 128 |
{ |
Also available in: Unified diff