Re: [PATCH 2/6] hw/core/stream: Rename StreamSlave as StreamSink
On Fri, Sep 11, 2020 at 09:28:16AM +0200, Paolo Bonzini wrote: > On 10/09/20 09:01, Philippe Mathieu-Daudé wrote: > > In order to use inclusive terminology, rename 'slave stream' > > as 'sink stream'. > > > > Signed-off-by: Philippe Mathieu-Daudé > > From Edgar Iglesias: > > Regarding streams, our stream module can be used to model a stream > channel such as AXI stream but also other similar stream protocols. We > actually don't use the AXI stream terminology [in hw/core/stream.c]. > E.g, we use buf instead of DATA, EOP (end-of-packet) instead of LAST and > have a flow-control mechanism that doesn't refer to valid/ready. IMO, > since we're not matching specific protocol names, it would be fine to > switch to generic terms like Source and Sink. > > Therefore, > > Acked-by: Paolo Bonzini > Thanks Paolo, Yes, looks good to me! Reviewed-by: Edgar E. Iglesias > > > --- > > include/hw/ssi/xilinx_spips.h | 2 +- > > include/hw/stream.h | 46 +-- > > hw/core/stream.c | 20 +++ > > hw/dma/xilinx_axidma.c| 32 > > hw/net/xilinx_axienet.c | 20 +++ > > hw/ssi/xilinx_spips.c | 2 +- > > 6 files changed, 61 insertions(+), 61 deletions(-) > > > > diff --git a/include/hw/ssi/xilinx_spips.h b/include/hw/ssi/xilinx_spips.h > > index 6a39b55a7bd..fde8a3ebda6 100644 > > --- a/include/hw/ssi/xilinx_spips.h > > +++ b/include/hw/ssi/xilinx_spips.h > > @@ -97,7 +97,7 @@ typedef struct { > > typedef struct { > > XilinxQSPIPS parent_obj; > > > > -StreamSlave *dma; > > +StreamSink *dma; > > int gqspi_irqline; > > > > uint32_t regs[XLNX_ZYNQMP_SPIPS_R_MAX]; > > diff --git a/include/hw/stream.h b/include/hw/stream.h > > index ed09e83683d..8ca161991ca 100644 > > --- a/include/hw/stream.h > > +++ b/include/hw/stream.h > > @@ -3,52 +3,52 @@ > > > > #include "qom/object.h" > > > > -/* stream slave. Used until qdev provides a generic way. */ > > -#define TYPE_STREAM_SLAVE "stream-slave" > > +/* stream sink. Used until qdev provides a generic way. */ > > +#define TYPE_STREAM_SINK "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) > > +#define STREAM_SINK_CLASS(klass) \ > > + OBJECT_CLASS_CHECK(StreamSinkClass, (klass), TYPE_STREAM_SINK) > > +#define STREAM_SINK_GET_CLASS(obj) \ > > +OBJECT_GET_CLASS(StreamSinkClass, (obj), TYPE_STREAM_SINK) > > +#define STREAM_SINK(obj) \ > > + INTERFACE_CHECK(StreamSink, (obj), TYPE_STREAM_SINK) > > > > -typedef struct StreamSlave StreamSlave; > > +typedef struct StreamSink StreamSink; > > > > typedef void (*StreamCanPushNotifyFn)(void *opaque); > > > > -typedef struct StreamSlaveClass { > > +typedef struct StreamSinkClass { > > InterfaceClass parent; > > /** > > - * can push - determine if a stream slave is capable of accepting at > > least > > + * can push - determine if a stream sink is capable of accepting at > > least > > * one byte of data. Returns false if cannot accept. If not > > implemented, the > > - * slave is assumed to always be capable of receiving. > > - * @notify: Optional callback that the slave will call when the slave > > is > > + * sink is assumed to always be capable of receiving. > > + * @notify: Optional callback that the sink will call when the sink is > > * capable of receiving again. Only called if false is returned. > > * @notify_opaque: opaque data to pass to notify call. > > */ > > -bool (*can_push)(StreamSlave *obj, StreamCanPushNotifyFn notify, > > +bool (*can_push)(StreamSink *obj, StreamCanPushNotifyFn notify, > > void *notify_opaque); > > /** > > - * push - push data to a Stream slave. The number of bytes pushed is > > - * returned. If the slave short returns, the master must wait before > > trying > > - * again, the slave may continue to just return 0 waiting for the vm > > time to > > + * push - push data to a Stream sink. The number of bytes pushed is > > + * returned. If the sink short returns, the master must wait before > > trying > > + * again, the sink may continue to just return 0 waiting for the vm > > time to > > * advance. The can_push() function can be used to trap the point in > > time > > - * where the slave is ready to receive again, otherwise polling on a > > QEMU > > + * where the sink is ready to receive again, otherwise polling on a > > QEMU > > * timer will work. > > - * @obj: Stream slave to push to > > + * @obj: Stream sink to push to > > * @buf: Data to write > > * @len: Maximum number of bytes
Re: [PATCH 2/6] hw/core/stream: Rename StreamSlave as StreamSink
On 10/09/20 09:01, Philippe Mathieu-Daudé wrote: > In order to use inclusive terminology, rename 'slave stream' > as 'sink stream'. > > Signed-off-by: Philippe Mathieu-Daudé >From Edgar Iglesias: Regarding streams, our stream module can be used to model a stream channel such as AXI stream but also other similar stream protocols. We actually don't use the AXI stream terminology [in hw/core/stream.c]. E.g, we use buf instead of DATA, EOP (end-of-packet) instead of LAST and have a flow-control mechanism that doesn't refer to valid/ready. IMO, since we're not matching specific protocol names, it would be fine to switch to generic terms like Source and Sink. Therefore, Acked-by: Paolo Bonzini Paolo > --- > include/hw/ssi/xilinx_spips.h | 2 +- > include/hw/stream.h | 46 +-- > hw/core/stream.c | 20 +++ > hw/dma/xilinx_axidma.c| 32 > hw/net/xilinx_axienet.c | 20 +++ > hw/ssi/xilinx_spips.c | 2 +- > 6 files changed, 61 insertions(+), 61 deletions(-) > > diff --git a/include/hw/ssi/xilinx_spips.h b/include/hw/ssi/xilinx_spips.h > index 6a39b55a7bd..fde8a3ebda6 100644 > --- a/include/hw/ssi/xilinx_spips.h > +++ b/include/hw/ssi/xilinx_spips.h > @@ -97,7 +97,7 @@ typedef struct { > typedef struct { > XilinxQSPIPS parent_obj; > > -StreamSlave *dma; > +StreamSink *dma; > int gqspi_irqline; > > uint32_t regs[XLNX_ZYNQMP_SPIPS_R_MAX]; > diff --git a/include/hw/stream.h b/include/hw/stream.h > index ed09e83683d..8ca161991ca 100644 > --- a/include/hw/stream.h > +++ b/include/hw/stream.h > @@ -3,52 +3,52 @@ > > #include "qom/object.h" > > -/* stream slave. Used until qdev provides a generic way. */ > -#define TYPE_STREAM_SLAVE "stream-slave" > +/* stream sink. Used until qdev provides a generic way. */ > +#define TYPE_STREAM_SINK "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) > +#define STREAM_SINK_CLASS(klass) \ > + OBJECT_CLASS_CHECK(StreamSinkClass, (klass), TYPE_STREAM_SINK) > +#define STREAM_SINK_GET_CLASS(obj) \ > +OBJECT_GET_CLASS(StreamSinkClass, (obj), TYPE_STREAM_SINK) > +#define STREAM_SINK(obj) \ > + INTERFACE_CHECK(StreamSink, (obj), TYPE_STREAM_SINK) > > -typedef struct StreamSlave StreamSlave; > +typedef struct StreamSink StreamSink; > > typedef void (*StreamCanPushNotifyFn)(void *opaque); > > -typedef struct StreamSlaveClass { > +typedef struct StreamSinkClass { > InterfaceClass parent; > /** > - * can push - determine if a stream slave is capable of accepting at > least > + * can push - determine if a stream sink is capable of accepting at least > * one byte of data. Returns false if cannot accept. If not implemented, > the > - * slave is assumed to always be capable of receiving. > - * @notify: Optional callback that the slave will call when the slave is > + * sink is assumed to always be capable of receiving. > + * @notify: Optional callback that the sink will call when the sink is > * capable of receiving again. Only called if false is returned. > * @notify_opaque: opaque data to pass to notify call. > */ > -bool (*can_push)(StreamSlave *obj, StreamCanPushNotifyFn notify, > +bool (*can_push)(StreamSink *obj, StreamCanPushNotifyFn notify, > void *notify_opaque); > /** > - * push - push data to a Stream slave. The number of bytes pushed is > - * returned. If the slave short returns, the master must wait before > trying > - * again, the slave may continue to just return 0 waiting for the vm > time to > + * push - push data to a Stream sink. The number of bytes pushed is > + * returned. If the sink short returns, the master must wait before > trying > + * again, the sink may continue to just return 0 waiting for the vm time > to > * advance. The can_push() function can be used to trap the point in time > - * where the slave is ready to receive again, otherwise polling on a QEMU > + * where the sink is ready to receive again, otherwise polling on a QEMU > * timer will work. > - * @obj: Stream slave to push to > + * @obj: Stream sink to push to > * @buf: Data to write > * @len: Maximum number of bytes to write > * @eop: End of packet flag > */ > -size_t (*push)(StreamSlave *obj, unsigned char *buf, size_t len, bool > eop); > -} StreamSlaveClass; > +size_t (*push)(StreamSink *obj, unsigned char *buf, size_t len, bool > eop); > +} StreamSinkClass; > > size_t > -stream_push(StreamSlave *sink, uint8_t *buf, size_t len, bool eop); >
Re: [PATCH 2/6] hw/core/stream: Rename StreamSlave as StreamSink
On 9/10/20 9:01 AM, Philippe Mathieu-Daudé wrote: > In order to use inclusive terminology, rename 'slave stream' > as 'sink stream'. > > Signed-off-by: Philippe Mathieu-Daudé > --- [...] > diff --git a/include/hw/stream.h b/include/hw/stream.h > index ed09e83683d..8ca161991ca 100644 > --- a/include/hw/stream.h > +++ b/include/hw/stream.h > @@ -3,52 +3,52 @@ > > #include "qom/object.h" > > -/* stream slave. Used until qdev provides a generic way. */ > -#define TYPE_STREAM_SLAVE "stream-slave" > +/* stream sink. Used until qdev provides a generic way. */ > +#define TYPE_STREAM_SINK "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) > +#define STREAM_SINK_CLASS(klass) \ > + OBJECT_CLASS_CHECK(StreamSinkClass, (klass), TYPE_STREAM_SINK) > +#define STREAM_SINK_GET_CLASS(obj) \ > +OBJECT_GET_CLASS(StreamSinkClass, (obj), TYPE_STREAM_SINK) > +#define STREAM_SINK(obj) \ > + INTERFACE_CHECK(StreamSink, (obj), TYPE_STREAM_SINK) Hmm being an interface, is it better to name it TYPE_SINK_STREAM?