Peter Maydell | 18c86e2 | 2016-01-26 18:17:29 +0000 | [diff] [blame] | 1 | #include "qemu/osdep.h" |
Paolo Bonzini | 83c9f4c | 2013-02-04 15:40:22 +0100 | [diff] [blame] | 2 | #include "hw/stream.h" |
Peter A. G. Crosthwaite | 669b498 | 2012-08-10 13:16:11 +1000 | [diff] [blame] | 3 | |
Peter Crosthwaite | 35e60bf | 2013-04-16 10:27:16 +1000 | [diff] [blame] | 4 | size_t |
Peter Crosthwaite | 42bb9c9 | 2013-04-16 10:28:35 +1000 | [diff] [blame] | 5 | stream_push(StreamSlave *sink, uint8_t *buf, size_t len) |
Peter A. G. Crosthwaite | 669b498 | 2012-08-10 13:16:11 +1000 | [diff] [blame] | 6 | { |
| 7 | StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
| 8 | |
Peter Crosthwaite | 42bb9c9 | 2013-04-16 10:28:35 +1000 | [diff] [blame] | 9 | return k->push(sink, buf, len); |
Peter Crosthwaite | 35e60bf | 2013-04-16 10:27:16 +1000 | [diff] [blame] | 10 | } |
| 11 | |
| 12 | bool |
| 13 | stream_can_push(StreamSlave *sink, StreamCanPushNotifyFn notify, |
| 14 | void *notify_opaque) |
| 15 | { |
| 16 | StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
| 17 | |
| 18 | return k->can_push ? k->can_push(sink, notify, notify_opaque) : true; |
Peter A. G. Crosthwaite | 669b498 | 2012-08-10 13:16:11 +1000 | [diff] [blame] | 19 | } |
| 20 | |
Andreas Färber | 8c43a6f | 2013-01-10 16:19:07 +0100 | [diff] [blame] | 21 | static const TypeInfo stream_slave_info = { |
Peter A. G. Crosthwaite | 669b498 | 2012-08-10 13:16:11 +1000 | [diff] [blame] | 22 | .name = TYPE_STREAM_SLAVE, |
| 23 | .parent = TYPE_INTERFACE, |
| 24 | .class_size = sizeof(StreamSlaveClass), |
| 25 | }; |
| 26 | |
| 27 | |
| 28 | static void stream_slave_register_types(void) |
| 29 | { |
| 30 | type_register_static(&stream_slave_info); |
| 31 | } |
| 32 | |
| 33 | type_init(stream_slave_register_types) |