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