xemu/hw/stream.h
Peter A. G. Crosthwaite 669b498301 xilinx_axi*: Re-implemented interconnect
Re-implemented the interconnect between the Xilinx AXI ethernet and DMA
controllers. A QOM interface "stream" is created, for the two stream interfaces.

As per Edgars request, this is designed to be more generic than AXI-stream,
so in the future we may see more clients of this interface beyond AXI stream.

This is based primarily on Paolos original refactoring of the interconnect.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-08-13 11:20:41 +02:00

32 lines
872 B
C

#ifndef STREAM_H
#define STREAM_H 1
#include "qemu-common.h"
#include "qemu/object.h"
/* stream slave. Used until qdev provides a generic way. */
#define TYPE_STREAM_SLAVE "stream-slave"
#define STREAM_SLAVE_CLASS(klass) \
OBJECT_CLASS_CHECK(StreamSlaveClass, (klass), TYPE_STREAM_SLAVE)
#define STREAM_SLAVE_GET_CLASS(obj) \
OBJECT_GET_CLASS(StreamSlaveClass, (obj), TYPE_STREAM_SLAVE)
#define STREAM_SLAVE(obj) \
INTERFACE_CHECK(StreamSlave, (obj), TYPE_STREAM_SLAVE)
typedef struct StreamSlave {
Object Parent;
} StreamSlave;
typedef struct StreamSlaveClass {
InterfaceClass parent;
void (*push)(StreamSlave *obj, unsigned char *buf, size_t len,
uint32_t *app);
} StreamSlaveClass;
void
stream_push(StreamSlave *sink, uint8_t *buf, size_t len, uint32_t *app);
#endif /* STREAM_H */