xref: /openbmc/qemu/hw/core/stream.c (revision b785d25e91718a660546a6550f64b3c543af7754)
118c86e2bSPeter Maydell #include "qemu/osdep.h"
249ab747fSPaolo Bonzini #include "hw/stream.h"
30b8fa32fSMarkus Armbruster #include "qemu/module.h"
449ab747fSPaolo Bonzini 
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)
749ab747fSPaolo Bonzini {
8*cfbef3f4SPhilippe Mathieu-Daudé     StreamSinkClass *k =  STREAM_SINK_GET_CLASS(sink);
949ab747fSPaolo Bonzini 
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;
2049ab747fSPaolo Bonzini }
2149ab747fSPaolo Bonzini 
22*cfbef3f4SPhilippe Mathieu-Daudé static const TypeInfo stream_sink_info = {
23*cfbef3f4SPhilippe Mathieu-Daudé     .name          = TYPE_STREAM_SINK,
2449ab747fSPaolo Bonzini     .parent        = TYPE_INTERFACE,
25*cfbef3f4SPhilippe Mathieu-Daudé     .class_size = sizeof(StreamSinkClass),
2649ab747fSPaolo Bonzini };
2749ab747fSPaolo Bonzini 
2849ab747fSPaolo Bonzini 
stream_sink_register_types(void)29*cfbef3f4SPhilippe Mathieu-Daudé static void stream_sink_register_types(void)
3049ab747fSPaolo Bonzini {
31*cfbef3f4SPhilippe Mathieu-Daudé     type_register_static(&stream_sink_info);
3249ab747fSPaolo Bonzini }
3349ab747fSPaolo Bonzini 
34*cfbef3f4SPhilippe Mathieu-Daudé type_init(stream_sink_register_types)
35