xref: /qemu/hw/core/stream.c (revision b785d25e91718a660546a6550f64b3c543af7754)
118c86e2bSPeter Maydell #include "qemu/osdep.h"
283c9f4caSPaolo Bonzini #include "hw/stream.h"
30b8fa32fSMarkus Armbruster #include "qemu/module.h"
4669b4983SPeter A. G. Crosthwaite 
535e60bfdSPeter Crosthwaite size_t
stream_push(StreamSink * sink,uint8_t * buf,size_t len,bool eop)6*cfbef3f4SPhilippe Mathieu-Daudé stream_push(StreamSink *sink, uint8_t *buf, size_t len, bool eop)
7669b4983SPeter A. G. Crosthwaite {
8*cfbef3f4SPhilippe Mathieu-Daudé     StreamSinkClass *k =  STREAM_SINK_GET_CLASS(sink);
9669b4983SPeter A. G. Crosthwaite 
1051b19950SEdgar E. Iglesias     return k->push(sink, buf, len, eop);
1135e60bfdSPeter Crosthwaite }
1235e60bfdSPeter Crosthwaite 
1335e60bfdSPeter Crosthwaite bool
stream_can_push(StreamSink * sink,StreamCanPushNotifyFn notify,void * notify_opaque)14*cfbef3f4SPhilippe Mathieu-Daudé stream_can_push(StreamSink *sink, StreamCanPushNotifyFn notify,
1535e60bfdSPeter Crosthwaite                 void *notify_opaque)
1635e60bfdSPeter Crosthwaite {
17*cfbef3f4SPhilippe Mathieu-Daudé     StreamSinkClass *k =  STREAM_SINK_GET_CLASS(sink);
1835e60bfdSPeter Crosthwaite 
1935e60bfdSPeter Crosthwaite     return k->can_push ? k->can_push(sink, notify, notify_opaque) : true;
20669b4983SPeter A. G. Crosthwaite }
21669b4983SPeter A. G. Crosthwaite 
22*cfbef3f4SPhilippe Mathieu-Daudé static const TypeInfo stream_sink_info = {
23*cfbef3f4SPhilippe Mathieu-Daudé     .name          = TYPE_STREAM_SINK,
24669b4983SPeter A. G. Crosthwaite     .parent        = TYPE_INTERFACE,
25*cfbef3f4SPhilippe Mathieu-Daudé     .class_size = sizeof(StreamSinkClass),
26669b4983SPeter A. G. Crosthwaite };
27669b4983SPeter A. G. Crosthwaite 
28669b4983SPeter A. G. Crosthwaite 
stream_sink_register_types(void)29*cfbef3f4SPhilippe Mathieu-Daudé static void stream_sink_register_types(void)
30669b4983SPeter A. G. Crosthwaite {
31*cfbef3f4SPhilippe Mathieu-Daudé     type_register_static(&stream_sink_info);
32669b4983SPeter A. G. Crosthwaite }
33669b4983SPeter A. G. Crosthwaite 
34*cfbef3f4SPhilippe Mathieu-Daudé type_init(stream_sink_register_types)
35