On 5/6/20 10:25 AM, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
>
> Split the shared stream_class_init function to assign
> stream->push with better type-safety.
>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> hw/net/xilinx_axienet.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/hw/net/xilinx_axienet.c b/hw/net/xilinx_axienet.c
> index 0f97510d8a..84073753d7 100644
> --- a/hw/net/xilinx_axienet.c
> +++ b/hw/net/xilinx_axienet.c
> @@ -1029,11 +1029,19 @@ static void xilinx_enet_class_init(ObjectClass *klass, void *data)
> dc->reset = xilinx_axienet_reset;
> }
>
> -static void xilinx_enet_stream_class_init(ObjectClass *klass, void *data)
> +static void xilinx_enet_control_stream_class_init(ObjectClass *klass,
> + void *data)
> {
> StreamSlaveClass *ssc = STREAM_SLAVE_CLASS(klass);
>
> - ssc->push = data;
> + ssc->push = xilinx_axienet_control_stream_push;
> +}
> +
> +static void xilinx_enet_data_stream_class_init(ObjectClass *klass, void *data)
> +{
> + StreamSlaveClass *ssc = STREAM_SLAVE_CLASS(klass);
> +
> + ssc->push = xilinx_axienet_data_stream_push;
> }
>
> static const TypeInfo xilinx_enet_info = {
> @@ -1048,8 +1056,7 @@ static const TypeInfo xilinx_enet_data_stream_info = {
> .name = TYPE_XILINX_AXI_ENET_DATA_STREAM,
> .parent = TYPE_OBJECT,
> .instance_size = sizeof(struct XilinxAXIEnetStreamSlave),
> - .class_init = xilinx_enet_stream_class_init,
> - .class_data = xilinx_axienet_data_stream_push,
> + .class_init = xilinx_enet_data_stream_class_init,
> .interfaces = (InterfaceInfo[]) {
> { TYPE_STREAM_SLAVE },
> { }
> @@ -1060,8 +1067,7 @@ static const TypeInfo xilinx_enet_control_stream_info = {
> .name = TYPE_XILINX_AXI_ENET_CONTROL_STREAM,
> .parent = TYPE_OBJECT,
> .instance_size = sizeof(struct XilinxAXIEnetStreamSlave),
> - .class_init = xilinx_enet_stream_class_init,
> - .class_data = xilinx_axienet_control_stream_push,
> + .class_init = xilinx_enet_control_stream_class_init,
> .interfaces = (InterfaceInfo[]) {
> { TYPE_STREAM_SLAVE },
> { }
>