| #include "hw/stream.h" |
| |
| size_t |
| stream_push(StreamSlave *sink, uint8_t *buf, size_t len) |
| { |
| StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
| |
| return k->push(sink, buf, len); |
| } |
| |
| bool |
| stream_can_push(StreamSlave *sink, StreamCanPushNotifyFn notify, |
| void *notify_opaque) |
| { |
| StreamSlaveClass *k = STREAM_SLAVE_GET_CLASS(sink); |
| |
| return k->can_push ? k->can_push(sink, notify, notify_opaque) : true; |
| } |
| |
| static const TypeInfo stream_slave_info = { |
| .name = TYPE_STREAM_SLAVE, |
| .parent = TYPE_INTERFACE, |
| .class_size = sizeof(StreamSlaveClass), |
| }; |
| |
| |
| static void stream_slave_register_types(void) |
| { |
| type_register_static(&stream_slave_info); |
| } |
| |
| type_init(stream_slave_register_types) |