xref: /qemu/include/hw/stream.h (revision 14cccb618508a0aa70eb9ccf366703a019a45ff0)
1669b4983SPeter A. G. Crosthwaite #ifndef STREAM_H
2669b4983SPeter A. G. Crosthwaite #define STREAM_H 1
3669b4983SPeter A. G. Crosthwaite 
4669b4983SPeter A. G. Crosthwaite #include "qemu-common.h"
5*14cccb61SPaolo Bonzini #include "qom/object.h"
6669b4983SPeter A. G. Crosthwaite 
7669b4983SPeter A. G. Crosthwaite /* stream slave. Used until qdev provides a generic way.  */
8669b4983SPeter A. G. Crosthwaite #define TYPE_STREAM_SLAVE "stream-slave"
9669b4983SPeter A. G. Crosthwaite 
10669b4983SPeter A. G. Crosthwaite #define STREAM_SLAVE_CLASS(klass) \
11669b4983SPeter A. G. Crosthwaite      OBJECT_CLASS_CHECK(StreamSlaveClass, (klass), TYPE_STREAM_SLAVE)
12669b4983SPeter A. G. Crosthwaite #define STREAM_SLAVE_GET_CLASS(obj) \
13669b4983SPeter A. G. Crosthwaite     OBJECT_GET_CLASS(StreamSlaveClass, (obj), TYPE_STREAM_SLAVE)
14669b4983SPeter A. G. Crosthwaite #define STREAM_SLAVE(obj) \
15669b4983SPeter A. G. Crosthwaite      INTERFACE_CHECK(StreamSlave, (obj), TYPE_STREAM_SLAVE)
16669b4983SPeter A. G. Crosthwaite 
17669b4983SPeter A. G. Crosthwaite typedef struct StreamSlave {
18669b4983SPeter A. G. Crosthwaite     Object Parent;
19669b4983SPeter A. G. Crosthwaite } StreamSlave;
20669b4983SPeter A. G. Crosthwaite 
21669b4983SPeter A. G. Crosthwaite typedef struct StreamSlaveClass {
22669b4983SPeter A. G. Crosthwaite     InterfaceClass parent;
23669b4983SPeter A. G. Crosthwaite 
24669b4983SPeter A. G. Crosthwaite     void (*push)(StreamSlave *obj, unsigned char *buf, size_t len,
25669b4983SPeter A. G. Crosthwaite                                                     uint32_t *app);
26669b4983SPeter A. G. Crosthwaite } StreamSlaveClass;
27669b4983SPeter A. G. Crosthwaite 
28669b4983SPeter A. G. Crosthwaite void
29669b4983SPeter A. G. Crosthwaite stream_push(StreamSlave *sink, uint8_t *buf, size_t len, uint32_t *app);
30669b4983SPeter A. G. Crosthwaite 
31669b4983SPeter A. G. Crosthwaite #endif /* STREAM_H */
32