Unbreak out-of-tree builds
[qemu/mini2440.git] / hw / ssi.c
blob9dfdbe94f8673c565565b2b038ef6a0d9f1a7ce6
1 /*
2 * QEMU Synchronous Serial Interface support
4 * Copyright (c) 2009 CodeSourcery.
5 * Written by Paul Brook
7 * This code is licenced under the GNU GPL v2.
8 */
10 #include "ssi.h"
12 struct SSIBus {
13 SSISlave *slave;
16 static void ssi_slave_init(DeviceState *dev, void *opaque)
18 SSISlaveInfo *info = opaque;
19 SSISlave *s = SSI_SLAVE_FROM_QDEV(dev);
20 SSIBus *bus = qdev_get_bus(dev);
22 bus->slave = s;
23 s->info = info;
24 info->init(s);
27 void ssi_register_slave(const char *name, int size, SSISlaveInfo *info)
29 assert(size >= sizeof(SSISlave));
30 qdev_register(name, size, ssi_slave_init, info);
33 DeviceState *ssi_create_slave(SSIBus *bus, const char *name)
35 DeviceState *dev;
36 dev = qdev_create(bus, name);
37 qdev_init(dev);
38 return dev;
41 SSIBus *ssi_create_bus(void)
43 return qemu_mallocz(sizeof(SSIBus));
46 uint32_t ssi_transfer(SSIBus *bus, uint32_t val)
48 if (!bus->slave) {
49 return 0;
51 return bus->slave->info->transfer(bus->slave, val);