1 | #include "qemu/osdep.h" |
2 | #include "hw/stream.h" |
3 | #include "qemu/module.h" |
4 | |
5 | size_t |
6 | stream_push(StreamSlave *sink, uint8_t *buf, size_t len) |
7 | { |
8 | StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
9 | |
10 | return k->push(sink, buf, len); |
11 | } |
12 | |
13 | bool |
14 | stream_can_push(StreamSlave *sink, StreamCanPushNotifyFn notify, |
15 | void *notify_opaque) |
16 | { |
17 | StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
18 | |
19 | return k->can_push ? k->can_push(sink, notify, notify_opaque) : true; |
20 | } |
21 | |
22 | static const TypeInfo stream_slave_info = { |
23 | .name = TYPE_STREAM_SLAVE, |
24 | .parent = TYPE_INTERFACE, |
25 | .class_size = sizeof(StreamSlaveClass), |
26 | }; |
27 | |
28 | |
29 | static void stream_slave_register_types(void) |
30 | { |
31 | type_register_static(&stream_slave_info); |
32 | } |
33 | |
34 | type_init(stream_slave_register_types) |
35 | |