From 4a4a604cc60cb94525fc4c2d1230557c1e7d166d Mon Sep 17 00:00:00 2001 From: Philippe Mathieu-Daudé Date: Fri, 4 Sep 2020 15:14:01 +0200 Subject: hw/net/e1000e: Remove overwritten read handler for STATUS register The STATUS register readop handler is initialized first with the generic e1000e_mac_readreg() handler: 2861 #define e1000e_getreg(x) [x] = e1000e_mac_readreg 2862 typedef uint32_t (*readops)(E1000ECore *, int); 2863 static const readops e1000e_macreg_readops[] = { .... 2919 e1000e_getreg(STATUS), Then overwritten with the specific e1000e_get_status handler: 3018 [STATUS] = e1000e_get_status, To avoid confusion, remove the overwritten initialization. 6f3fbe4ed0 ("net: Introduce e1000e device emulation") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Li Qiang Message-Id: <20200904131402.590055-2-f4bug@amsat.org> Signed-off-by: Laurent Vivier --- hw/net/e1000e_core.c | 1 - 1 file changed, 1 deletion(-) (limited to 'hw/net') diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index bcd186cac5..5170e6a456 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -2916,7 +2916,6 @@ static const readops e1000e_macreg_readops[] = { e1000e_getreg(TSYNCRXCTL), e1000e_getreg(TDH), e1000e_getreg(LEDCTL), - e1000e_getreg(STATUS), e1000e_getreg(TCTL), e1000e_getreg(TDBAL), e1000e_getreg(TDLEN), -- cgit v1.2.3-55-g7522 From fb1953b22a871d5b4f049d1f2fbf2ff00b4a0c50 Mon Sep 17 00:00:00 2001 From: Philippe Mathieu-Daudé Date: Fri, 4 Sep 2020 15:14:02 +0200 Subject: hw/net/e1000e: Remove duplicated write handler for FLSWDATA register The FLSWDATA register writeop handler is initialized twice: 3067 #define e1000e_putreg(x) [x] = e1000e_mac_writereg 3068 typedef void (*writeops)(E1000ECore *, int, uint32_t); 3069 static const writeops e1000e_macreg_writeops[] = { .... 3102 e1000e_putreg(FLSWDATA), .... 3145 e1000e_putreg(FLSWDATA), To avoid confusion, remove the duplicated initialization. Fixes: 6f3fbe4ed0 ("net: Introduce e1000e device emulation") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Li Qiang Message-Id: <20200904131402.590055-3-f4bug@amsat.org> Signed-off-by: Laurent Vivier --- hw/net/e1000e_core.c | 1 - 1 file changed, 1 deletion(-) (limited to 'hw/net') diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index 5170e6a456..bcfd46696f 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -3141,7 +3141,6 @@ static const writeops e1000e_macreg_writeops[] = { e1000e_putreg(RXCFGL), e1000e_putreg(TSYNCRXCTL), e1000e_putreg(TSYNCTXCTL), - e1000e_putreg(FLSWDATA), e1000e_putreg(EXTCNF_SIZE), e1000e_putreg(EEMNGCTL), e1000e_putreg(RA), -- cgit v1.2.3-55-g7522 From 67263b33af9506d78558b1edfa5a9bf976dc7b3d Mon Sep 17 00:00:00 2001 From: Philippe Mathieu-Daudé Date: Sat, 22 Aug 2020 20:09:49 +0200 Subject: util/hexdump: Convert to take a void pointer argument Most uses of qemu_hexdump() do not take an array of char as input, forcing use of cast. Since we can use this helper to dump any kind of buffer, use a pointer to void argument instead. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Edgar E. Iglesias Reviewed-by: Li Qiang Reviewed-by: Stefano Garzarella Message-Id: <20200822180950.1343963-2-f4bug@amsat.org> Signed-off-by: Laurent Vivier --- hw/dma/xlnx_dpdma.c | 2 +- hw/net/fsl_etsec/etsec.c | 2 +- hw/sd/sd.c | 2 +- hw/usb/redirect.c | 2 +- include/qemu-common.h | 3 ++- net/colo-compare.c | 12 ++++++------ net/net.c | 2 +- util/hexdump.c | 4 +++- 8 files changed, 16 insertions(+), 13 deletions(-) (limited to 'hw/net') diff --git a/hw/dma/xlnx_dpdma.c b/hw/dma/xlnx_dpdma.c index b40c897de2..d75a806942 100644 --- a/hw/dma/xlnx_dpdma.c +++ b/hw/dma/xlnx_dpdma.c @@ -388,7 +388,7 @@ static void xlnx_dpdma_dump_descriptor(DPDMADescriptor *desc) { if (DEBUG_DPDMA) { qemu_log("DUMP DESCRIPTOR:\n"); - qemu_hexdump((char *)desc, stdout, "", sizeof(DPDMADescriptor)); + qemu_hexdump(desc, stdout, "", sizeof(DPDMADescriptor)); } } diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index ad20b22cdd..5c40303f93 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -357,7 +357,7 @@ static ssize_t etsec_receive(NetClientState *nc, #if defined(HEX_DUMP) fprintf(stderr, "%s receive size:%zd\n", nc->name, size); - qemu_hexdump((void *)buf, stderr, "", size); + qemu_hexdump(buf, stderr, "", size); #endif /* Flush is unnecessary as are already in receiving path */ etsec->need_flush = false; diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 483c4f1720..1c8f8529ea 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1785,7 +1785,7 @@ send_response: } #ifdef DEBUG_SD - qemu_hexdump((const char *)response, stderr, "Response", rsplen); + qemu_hexdump(response, stderr, "Response", rsplen); #endif return rsplen; diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 417a60a2e6..09edb0d81c 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -240,7 +240,7 @@ static void usbredir_log_data(USBRedirDevice *dev, const char *desc, if (dev->debug < usbredirparser_debug_data) { return; } - qemu_hexdump((char *)data, stderr, desc, len); + qemu_hexdump(data, stderr, desc, len); } /* diff --git a/include/qemu-common.h b/include/qemu-common.h index bb9496bd80..6834883822 100644 --- a/include/qemu-common.h +++ b/include/qemu-common.h @@ -138,7 +138,8 @@ int os_parse_cmd_args(int index, const char *optarg); * Hexdump a buffer to a file. An optional string prefix is added to every line */ -void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size); +void qemu_hexdump(const void *bufptr, FILE *fp, + const char *prefix, size_t size); /* * helper to parse debug environment variables diff --git a/net/colo-compare.c b/net/colo-compare.c index 2c20de1537..550272b3ba 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -494,9 +494,9 @@ sec: g_queue_push_head(&conn->secondary_list, spkt); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump((char *)ppkt->data, stderr, + qemu_hexdump(ppkt->data, stderr, "colo-compare ppkt", ppkt->size); - qemu_hexdump((char *)spkt->data, stderr, + qemu_hexdump(spkt->data, stderr, "colo-compare spkt", spkt->size); } @@ -535,9 +535,9 @@ static int colo_packet_compare_udp(Packet *spkt, Packet *ppkt) trace_colo_compare_udp_miscompare("primary pkt size", ppkt->size); trace_colo_compare_udp_miscompare("Secondary pkt size", spkt->size); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump((char *)ppkt->data, stderr, "colo-compare pri pkt", + qemu_hexdump(ppkt->data, stderr, "colo-compare pri pkt", ppkt->size); - qemu_hexdump((char *)spkt->data, stderr, "colo-compare sec pkt", + qemu_hexdump(spkt->data, stderr, "colo-compare sec pkt", spkt->size); } return -1; @@ -578,9 +578,9 @@ static int colo_packet_compare_icmp(Packet *spkt, Packet *ppkt) trace_colo_compare_icmp_miscompare("Secondary pkt size", spkt->size); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump((char *)ppkt->data, stderr, "colo-compare pri pkt", + qemu_hexdump(ppkt->data, stderr, "colo-compare pri pkt", ppkt->size); - qemu_hexdump((char *)spkt->data, stderr, "colo-compare sec pkt", + qemu_hexdump(spkt->data, stderr, "colo-compare sec pkt", spkt->size); } return -1; diff --git a/net/net.c b/net/net.c index bbaedb3c7a..f3e5d533fd 100644 --- a/net/net.c +++ b/net/net.c @@ -636,7 +636,7 @@ static ssize_t qemu_send_packet_async_with_flags(NetClientState *sender, #ifdef DEBUG_NET printf("qemu_send_packet_async:\n"); - qemu_hexdump((const char *)buf, stdout, "net", size); + qemu_hexdump(buf, stdout, "net", size); #endif if (sender->link_down || !sender->peer) { diff --git a/util/hexdump.c b/util/hexdump.c index f879ff0ad6..053f05d416 100644 --- a/util/hexdump.c +++ b/util/hexdump.c @@ -16,8 +16,10 @@ #include "qemu/osdep.h" #include "qemu-common.h" -void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size) +void qemu_hexdump(const void *bufptr, FILE *fp, + const char *prefix, size_t size) { + const char *buf = bufptr; unsigned int b, len, i, c; for (b = 0; b < size; b += 16) { -- cgit v1.2.3-55-g7522 From b42581f5bb40489cb172829e9ab0d6d6dfa37026 Mon Sep 17 00:00:00 2001 From: Philippe Mathieu-Daudé Date: Sat, 22 Aug 2020 20:09:50 +0200 Subject: util/hexdump: Reorder qemu_hexdump() arguments qemu_hexdump()'s pointer to the buffer and length of the buffer are closely related arguments but are widely separated in the argument list order (also, the format of function prototypes is usually to have the FILE* argument coming first). Reorder the arguments as "fp, prefix, buf, size" which is more logical. Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Edgar E. Iglesias Reviewed-by: Stefano Garzarella Message-Id: <20200822180950.1343963-3-f4bug@amsat.org> Signed-off-by: Laurent Vivier --- hw/dma/xlnx_dpdma.c | 2 +- hw/net/fsl_etsec/etsec.c | 2 +- hw/net/fsl_etsec/rings.c | 2 +- hw/sd/sd.c | 2 +- hw/usb/redirect.c | 2 +- include/qemu-common.h | 4 ++-- net/colo-compare.c | 24 ++++++++++++------------ net/net.c | 2 +- util/hexdump.c | 4 ++-- util/iov.c | 2 +- 10 files changed, 23 insertions(+), 23 deletions(-) (limited to 'hw/net') diff --git a/hw/dma/xlnx_dpdma.c b/hw/dma/xlnx_dpdma.c index d75a806942..967548abd3 100644 --- a/hw/dma/xlnx_dpdma.c +++ b/hw/dma/xlnx_dpdma.c @@ -388,7 +388,7 @@ static void xlnx_dpdma_dump_descriptor(DPDMADescriptor *desc) { if (DEBUG_DPDMA) { qemu_log("DUMP DESCRIPTOR:\n"); - qemu_hexdump(desc, stdout, "", sizeof(DPDMADescriptor)); + qemu_hexdump(stdout, "", desc, sizeof(DPDMADescriptor)); } } diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index 5c40303f93..93886bba60 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -357,7 +357,7 @@ static ssize_t etsec_receive(NetClientState *nc, #if defined(HEX_DUMP) fprintf(stderr, "%s receive size:%zd\n", nc->name, size); - qemu_hexdump(buf, stderr, "", size); + qemu_hexdump(stderr, "", buf, size); #endif /* Flush is unnecessary as are already in receiving path */ etsec->need_flush = false; diff --git a/hw/net/fsl_etsec/rings.c b/hw/net/fsl_etsec/rings.c index 337a55fc95..628648a9c3 100644 --- a/hw/net/fsl_etsec/rings.c +++ b/hw/net/fsl_etsec/rings.c @@ -269,7 +269,7 @@ static void process_tx_bd(eTSEC *etsec, #if defined(HEX_DUMP) qemu_log("eTSEC Send packet size:%d\n", etsec->tx_buffer_len); - qemu_hexdump(etsec->tx_buffer, stderr, "", etsec->tx_buffer_len); + qemu_hexdump(stderr, "", etsec->tx_buffer, etsec->tx_buffer_len); #endif /* ETSEC_RING_DEBUG */ if (etsec->first_bd.flags & BD_TX_TOEUN) { diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 1c8f8529ea..0012882222 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1785,7 +1785,7 @@ send_response: } #ifdef DEBUG_SD - qemu_hexdump(response, stderr, "Response", rsplen); + qemu_hexdump(stderr, "Response", response, rsplen); #endif return rsplen; diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 09edb0d81c..48f38d3391 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -240,7 +240,7 @@ static void usbredir_log_data(USBRedirDevice *dev, const char *desc, if (dev->debug < usbredirparser_debug_data) { return; } - qemu_hexdump(data, stderr, desc, len); + qemu_hexdump(stderr, desc, data, len); } /* diff --git a/include/qemu-common.h b/include/qemu-common.h index 6834883822..9cfd62669b 100644 --- a/include/qemu-common.h +++ b/include/qemu-common.h @@ -138,8 +138,8 @@ int os_parse_cmd_args(int index, const char *optarg); * Hexdump a buffer to a file. An optional string prefix is added to every line */ -void qemu_hexdump(const void *bufptr, FILE *fp, - const char *prefix, size_t size); +void qemu_hexdump(FILE *fp, const char *prefix, + const void *bufptr, size_t size); /* * helper to parse debug environment variables diff --git a/net/colo-compare.c b/net/colo-compare.c index 550272b3ba..4a5ed642e9 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -494,10 +494,10 @@ sec: g_queue_push_head(&conn->secondary_list, spkt); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump(ppkt->data, stderr, - "colo-compare ppkt", ppkt->size); - qemu_hexdump(spkt->data, stderr, - "colo-compare spkt", spkt->size); + qemu_hexdump(stderr, "colo-compare ppkt", + ppkt->data, ppkt->size); + qemu_hexdump(stderr, "colo-compare spkt", + spkt->data, spkt->size); } colo_compare_inconsistency_notify(s); @@ -535,10 +535,10 @@ static int colo_packet_compare_udp(Packet *spkt, Packet *ppkt) trace_colo_compare_udp_miscompare("primary pkt size", ppkt->size); trace_colo_compare_udp_miscompare("Secondary pkt size", spkt->size); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump(ppkt->data, stderr, "colo-compare pri pkt", - ppkt->size); - qemu_hexdump(spkt->data, stderr, "colo-compare sec pkt", - spkt->size); + qemu_hexdump(stderr, "colo-compare pri pkt", + ppkt->data, ppkt->size); + qemu_hexdump(stderr, "colo-compare sec pkt", + spkt->data, spkt->size); } return -1; } else { @@ -578,10 +578,10 @@ static int colo_packet_compare_icmp(Packet *spkt, Packet *ppkt) trace_colo_compare_icmp_miscompare("Secondary pkt size", spkt->size); if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE)) { - qemu_hexdump(ppkt->data, stderr, "colo-compare pri pkt", - ppkt->size); - qemu_hexdump(spkt->data, stderr, "colo-compare sec pkt", - spkt->size); + qemu_hexdump(stderr, "colo-compare pri pkt", + ppkt->data, ppkt->size); + qemu_hexdump(stderr, "colo-compare sec pkt", + spkt->data, spkt->size); } return -1; } else { diff --git a/net/net.c b/net/net.c index f3e5d533fd..7a2a0fb5ac 100644 --- a/net/net.c +++ b/net/net.c @@ -636,7 +636,7 @@ static ssize_t qemu_send_packet_async_with_flags(NetClientState *sender, #ifdef DEBUG_NET printf("qemu_send_packet_async:\n"); - qemu_hexdump(buf, stdout, "net", size); + qemu_hexdump(stdout, "net", buf, size); #endif if (sender->link_down || !sender->peer) { diff --git a/util/hexdump.c b/util/hexdump.c index 053f05d416..0b4662e701 100644 --- a/util/hexdump.c +++ b/util/hexdump.c @@ -16,8 +16,8 @@ #include "qemu/osdep.h" #include "qemu-common.h" -void qemu_hexdump(const void *bufptr, FILE *fp, - const char *prefix, size_t size) +void qemu_hexdump(FILE *fp, const char *prefix, + const void *bufptr, size_t size) { const char *buf = bufptr; unsigned int b, len, i, c; diff --git a/util/iov.c b/util/iov.c index 45ef3043ee..ae61d696aa 100644 --- a/util/iov.c +++ b/util/iov.c @@ -237,7 +237,7 @@ void iov_hexdump(const struct iovec *iov, const unsigned int iov_cnt, size = size > limit ? limit : size; buf = g_malloc(size); iov_to_buf(iov, iov_cnt, 0, buf, size); - qemu_hexdump(buf, fp, prefix, size); + qemu_hexdump(fp, prefix, buf, size); g_free(buf); } -- cgit v1.2.3-55-g7522