* [Qemu-devel] [PATCH v2] hw/misc: add missing includes
@ 2017-06-09 15:06 Philippe Mathieu-Daudé
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub Philippe Mathieu-Daudé
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-06-09 15:06 UTC (permalink / raw)
To: qemu-devel, qemu-trivial, Peter Maydell, Eric Blake
Cc: Philippe Mathieu-Daudé
inlined create_unimplemented_device() calls sysbus_mmio_map_overlap().
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v2: Addressed review feedback from Eric Blake
include/hw/misc/unimp.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/hw/misc/unimp.h b/include/hw/misc/unimp.h
index 3462d85836..52e068ec3e 100644
--- a/include/hw/misc/unimp.h
+++ b/include/hw/misc/unimp.h
@@ -8,6 +8,8 @@
#ifndef HW_MISC_UNIMP_H
#define HW_MISC_UNIMP_H
+#include "hw/sysbus.h"
+
#define TYPE_UNIMPLEMENTED_DEVICE "unimplemented-device"
/**
--
2.11.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
@ 2017-06-09 15:06 ` Philippe Mathieu-Daudé
2017-06-27 13:25 ` Michael Tokarev
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG Philippe Mathieu-Daudé
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-06-09 15:06 UTC (permalink / raw)
To: qemu-devel, qemu-trivial, Michael S . Tsirkin, Thomas Huth
Cc: Philippe Mathieu-Daudé
The kludged field 'msi_nonbroken' is declared in "hw/pci/msi.h" and defined in
hw/pci/msi.c.
When using an ARM config with CONFIG_PCI disabled, hw/pci/msi.c is not included.
Without being PCI-related, the files hw/intc/arm_gicv[23*].c do access this
field (to enable the kludge if PCI is enabled).
The final link fails since hw/pci/msi.c is not included.
Defining this field in pci-stub is safe enough for configs without CONFIG_PCI.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v2: Addressed review feedback from Thomas Huth
Error reported:
$ ../configure --target-list=armeb-softmmu && make
[...]
LINK armeb-softmmu/qemu-system-armeb
../hw/intc/arm_gicv2m.o: In function `gicv2m_realize':
qemu/hw/intc/arm_gicv2m.c:154: undefined reference to `msi_nonbroken'
../hw/intc/arm_gicv3_its_common.o: In function `gicv3_its_init_mmio':
qemu/hw/intc/arm_gicv3_its_common.c:110: undefined reference to `msi_nonbroken'
collect2: error: ld returned 1 exit status
Makefile:201: recipe for target 'qemu-system-armeb' failed
make[1]: *** [qemu-system-armeb] Error 1
Makefile:327: recipe for target 'subdir-armeb-softmmu' failed
make: *** [subdir-armeb-softmmu] Error 2
branch used (wip):
https://github.com/qemu/qemu/compare/master...philmd:armeb_wip
with following config:
$ cat default-configs/armeb-softmmu.mak
# Default configuration for armeb-softmmu
CONFIG_ECC=y
CONFIG_SERIAL=y
CONFIG_PTIMER=y
CONFIG_SD=y
CONFIG_SSI=y
#CONFIG_USB=y
CONFIG_PLATFORM_BUS=y
CONFIG_ARM_V7M=y
CONFIG_ARM_GIC=y
CONFIG_ARM_TIMER=y
CONFIG_PL011=y
CONFIG_PL022=y
CONFIG_PL031=y
CONFIG_PL041=y
CONFIG_PL050=y
CONFIG_PL061=y
CONFIG_PL080=y
CONFIG_PL181=y
CONFIG_PL190=y
CONFIG_PL310=y
CONFIG_PL330=y
CONFIG_BITBANG_I2C=y
CONFIG_GPIO_KEY=y
CONFIG_HERCULES=y
hw/pci/pci-stub.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c
index 36d2c430c5..ecad664946 100644
--- a/hw/pci/pci-stub.c
+++ b/hw/pci/pci-stub.c
@@ -24,6 +24,9 @@
#include "qapi/qmp/qerror.h"
#include "hw/pci/pci.h"
#include "qmp-commands.h"
+#include "hw/pci/msi.h"
+
+bool msi_nonbroken;
PciInfoList *qmp_query_pci(Error **errp)
{
--
2.11.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub Philippe Mathieu-Daudé
@ 2017-06-09 15:06 ` Philippe Mathieu-Daudé
2017-06-09 16:04 ` Alex Bennée
2017-06-09 21:32 ` [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-06-09 15:06 UTC (permalink / raw)
To: qemu-devel, qemu-trivial, Jason Wang, Alex Bennée
Cc: Philippe Mathieu-Daudé
Ensure the format strings are always preprocessed, so any problem get reported.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v2: Addressed review feedback from Alex Bennée
No changes in *printf() calls but using qemu_log_mask() is an option.
hw/net/pcnet-pci.c | 13 ----
hw/net/pcnet.c | 190 +++++++++++++++++++++++++++--------------------------
2 files changed, 96 insertions(+), 107 deletions(-)
diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
index 0acf8a4879..331370a1f2 100644
--- a/hw/net/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
@@ -38,14 +38,6 @@
#include "pcnet.h"
-//#define PCNET_DEBUG
-//#define PCNET_DEBUG_IO
-//#define PCNET_DEBUG_BCR
-//#define PCNET_DEBUG_CSR
-//#define PCNET_DEBUG_RMD
-//#define PCNET_DEBUG_TMD
-//#define PCNET_DEBUG_MATCH
-
#define TYPE_PCI_PCNET "pcnet"
#define PCI_PCNET(obj) \
@@ -284,11 +276,6 @@ static void pci_pcnet_realize(PCIDevice *pci_dev, Error **errp)
PCNetState *s = &d->state;
uint8_t *pci_conf;
-#if 0
- printf("sizeof(RMD)=%d, sizeof(TMD)=%d\n",
- sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
-#endif
-
pci_conf = pci_dev->config;
pci_set_word(pci_conf + PCI_STATUS,
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
index 654455355f..6e97c0b176 100644
--- a/hw/net/pcnet.c
+++ b/hw/net/pcnet.c
@@ -45,13 +45,13 @@
#include "pcnet.h"
-//#define PCNET_DEBUG
-//#define PCNET_DEBUG_IO
-//#define PCNET_DEBUG_BCR
-//#define PCNET_DEBUG_CSR
-//#define PCNET_DEBUG_RMD
-//#define PCNET_DEBUG_TMD
-//#define PCNET_DEBUG_MATCH
+#define PCNET_DEBUG 0
+#define PCNET_DEBUG_IO 0
+#define PCNET_DEBUG_BCR 0
+#define PCNET_DEBUG_CSR 0
+#define PCNET_DEBUG_RMD 0
+#define PCNET_DEBUG_TMD 0
+#define PCNET_DEBUG_MATCH 0
struct qemu_ether_header {
@@ -268,7 +268,9 @@ struct pcnet_RMD {
GET_FIELD((T)->misc, TMDM, TDR), \
GET_FIELD((T)->misc, TMDM, TRC))
-#define PRINT_RMD(R) printf( \
+
+#define PRINT_RMD(R) do { if (PCNET_DEBUG_RMD) { \
+ printf( \
"RMD0 : RBADR=0x%08x\n" \
"RMD1 : OWN=%d, ERR=%d, FRAM=%d, OFLO=%d, " \
"CRC=%d, BUFF=%d, STP=%d, ENP=%d,\n " \
@@ -292,7 +294,9 @@ struct pcnet_RMD {
GET_FIELD((R)->msg_length, RMDM, RCC), \
GET_FIELD((R)->msg_length, RMDM, RPC), \
GET_FIELD((R)->msg_length, RMDM, MCNT), \
- GET_FIELD((R)->msg_length, RMDM, ZEROS))
+ GET_FIELD((R)->msg_length, RMDM, ZEROS)); } \
+ } while (0)
+
static inline void pcnet_tmd_load(PCNetState *s, struct pcnet_TMD *tmd,
hwaddr addr)
@@ -510,7 +514,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
#endif
-#define PRINT_PKTHDR(BUF) do { \
+#define PRINT_PKTHDR(BUF) do { if (PCNET_DEBUG_MATCH) { \
struct qemu_ether_header *hdr = (void *)(BUF); \
printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, " \
"shost=%02x:%02x:%02x:%02x:%02x:%02x, " \
@@ -520,7 +524,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
hdr->ether_shost[0],hdr->ether_shost[1],hdr->ether_shost[2], \
hdr->ether_shost[3],hdr->ether_shost[4],hdr->ether_shost[5], \
be16_to_cpu(hdr->ether_type)); \
-} while (0)
+ } } while (0)
#define MULTICAST_FILTER_LEN 8
@@ -623,14 +627,14 @@ static inline int padr_match(PCNetState *s, const uint8_t *buf, int size)
s->csr[14] & 0xff, s->csr[14] >> 8
};
int result = (!CSR_DRCVPA(s)) && !memcmp(hdr->ether_dhost, padr, 6);
-#ifdef PCNET_DEBUG_MATCH
- printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
- "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
- hdr->ether_dhost[0],hdr->ether_dhost[1],hdr->ether_dhost[2],
- hdr->ether_dhost[3],hdr->ether_dhost[4],hdr->ether_dhost[5],
- padr[0],padr[1],padr[2],padr[3],padr[4],padr[5]);
- printf("padr_match result=%d\n", result);
-#endif
+ if (PCNET_DEBUG_MATCH) {
+ printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
+ "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
+ hdr->ether_dhost[0], hdr->ether_dhost[1], hdr->ether_dhost[2],
+ hdr->ether_dhost[3], hdr->ether_dhost[4], hdr->ether_dhost[5],
+ padr[0], padr[1], padr[2], padr[3], padr[4], padr[5]);
+ printf("padr_match result=%d\n", result);
+ }
return result;
}
@@ -639,9 +643,9 @@ static inline int padr_bcast(PCNetState *s, const uint8_t *buf, int size)
static const uint8_t BCAST[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
struct qemu_ether_header *hdr = (void *)buf;
int result = !CSR_DRCVBC(s) && !memcmp(hdr->ether_dhost, BCAST, 6);
-#ifdef PCNET_DEBUG_MATCH
- printf("padr_bcast result=%d\n", result);
-#endif
+ if (PCNET_DEBUG_MATCH) {
+ printf("padr_bcast result=%d\n", result);
+ }
return result;
}
@@ -790,6 +794,10 @@ static void pcnet_init(PCNetState *s)
uint16_t padr[3], ladrf[4], mode;
uint32_t rdra, tdra;
+ if (PCNET_DEBUG) {
+ printf("sizeof(RMD)=%zu, sizeof(TMD)=%zu\n",
+ sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
+ }
trace_pcnet_init(s, PHYSADDR(s, CSR_IADR(s)));
if (BCR_SSIZE32(s)) {
@@ -858,9 +866,9 @@ static void pcnet_init(PCNetState *s)
static void pcnet_start(PCNetState *s)
{
-#ifdef PCNET_DEBUG
- printf("pcnet_start\n");
-#endif
+ if (PCNET_DEBUG) {
+ printf("pcnet_start\n");
+ }
if (!CSR_DTX(s)) {
s->csr[0] |= 0x0010; /* set TXON */
@@ -877,9 +885,9 @@ static void pcnet_start(PCNetState *s)
static void pcnet_stop(PCNetState *s)
{
-#ifdef PCNET_DEBUG
- printf("pcnet_stop\n");
-#endif
+ if (PCNET_DEBUG) {
+ printf("pcnet_stop\n");
+ }
s->csr[0] &= ~0xffeb;
s->csr[0] |= 0x0014;
s->csr[4] &= ~0x02c2;
@@ -939,12 +947,13 @@ static void pcnet_rdte_poll(PCNetState *s)
RMDLOAD(&rmd, PHYSADDR(s,CSR_CRDA(s)));
CSR_CRBC(s) = GET_FIELD(rmd.buf_length, RMDL, BCNT);
CSR_CRST(s) = rmd.status;
-#ifdef PCNET_DEBUG_RMD_X
- printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x RMDS=0x%04x RMDM=0x%08x\n",
- PHYSADDR(s,CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
- rmd.buf_length, rmd.status, rmd.msg_length);
+ if (PCNET_DEBUG_RMD) {
+ printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x "
+ "RMDS=0x%04x RMDM=0x%08x\n",
+ PHYSADDR(s, CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
+ rmd.buf_length, rmd.status, rmd.msg_length);
+ }
PRINT_RMD(&rmd);
-#endif
} else {
CSR_CRBC(s) = CSR_CRST(s) = 0;
}
@@ -1013,9 +1022,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
(CSR_LOOP(s) && !s->looptest)) {
return -1;
}
-#ifdef PCNET_DEBUG
- printf("pcnet_receive size=%d\n", size);
-#endif
+ if (PCNET_DEBUG) {
+ printf("pcnet_receive size=%d\n", size);
+ }
/* if too small buffer, then expand it */
if (size < MIN_BUF_SIZE) {
@@ -1044,10 +1053,10 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
(BCR_SWSTYLE(s) ? 16 : 8 );
RMDLOAD(&rmd, nrda);
if (GET_FIELD(rmd.status, RMDS, OWN)) {
-#ifdef PCNET_DEBUG_RMD
- printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
+ if (PCNET_DEBUG_RMD) {
+ printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
rcvrc, CSR_RCVRC(s));
-#endif
+ }
CSR_RCVRC(s) = rcvrc;
pcnet_rdte_poll(s);
break;
@@ -1056,9 +1065,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
}
if (!(CSR_CRST(s) & 0x8000)) {
-#ifdef PCNET_DEBUG_RMD
- printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
-#endif
+ if (PCNET_DEBUG_RMD) {
+ printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
+ }
s->csr[0] |= 0x1000; /* Set MISS flag */
CSR_MISSC(s)++;
} else {
@@ -1069,9 +1078,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
if (!s->looptest) {
if (size > 4092) {
-#ifdef PCNET_DEBUG_RMD
- fprintf(stderr, "pcnet: truncates rx packet.\n");
-#endif
+ if (PCNET_DEBUG_RMD) {
+ fprintf(stderr, "pcnet: truncates rx packet.\n");
+ }
size = 4092;
}
memcpy(src, buf, size);
@@ -1099,9 +1108,7 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
crc_err = (*(uint32_t *)p != htonl(fcs));
}
-#ifdef PCNET_DEBUG_MATCH
PRINT_PKTHDR(buf);
-#endif
RMDLOAD(&rmd, PHYSADDR(s,crda));
/*if (!CSR_LAPPEN(s))*/
@@ -1121,16 +1128,12 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
PCNET_RECV_STORE();
if ((remaining > 0) && CSR_NRDA(s)) {
hwaddr nrda = CSR_NRDA(s);
-#ifdef PCNET_DEBUG_RMD
PRINT_RMD(&rmd);
-#endif
RMDLOAD(&rmd, PHYSADDR(s,nrda));
if (GET_FIELD(rmd.status, RMDS, OWN)) {
crda = nrda;
PCNET_RECV_STORE();
-#ifdef PCNET_DEBUG_RMD
PRINT_RMD(&rmd);
-#endif
if ((remaining > 0) && (nrda=CSR_NNRD(s))) {
RMDLOAD(&rmd, PHYSADDR(s,nrda));
if (GET_FIELD(rmd.status, RMDS, OWN)) {
@@ -1162,13 +1165,11 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
RMDSTORE(&rmd, PHYSADDR(s,crda));
s->csr[0] |= 0x0400;
-#ifdef PCNET_DEBUG
- printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
- CSR_RCVRC(s), PHYSADDR(s,CSR_CRDA(s)), pktcount);
-#endif
-#ifdef PCNET_DEBUG_RMD
+ if (PCNET_DEBUG) {
+ printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
+ CSR_RCVRC(s), PHYSADDR(s, CSR_CRDA(s)), pktcount);
+ }
PRINT_RMD(&rmd);
-#endif
while (pktcount--) {
if (CSR_RCVRC(s) <= 1) {
@@ -1217,10 +1218,10 @@ txagain:
TMDLOAD(&tmd, PHYSADDR(s,CSR_CXDA(s)));
-#ifdef PCNET_DEBUG_TMD
- printf(" TMDLOAD 0x%08x\n", PHYSADDR(s,CSR_CXDA(s)));
- PRINT_TMD(&tmd);
-#endif
+ if (PCNET_DEBUG_TMD) {
+ printf(" TMDLOAD 0x%08x\n", PHYSADDR(s, CSR_CXDA(s)));
+ PRINT_TMD(&tmd);
+ }
if (GET_FIELD(tmd.status, TMDS, STP)) {
s->xmit_pos = 0;
xmit_cxda = PHYSADDR(s,CSR_CXDA(s));
@@ -1260,9 +1261,9 @@ txagain:
goto txdone;
}
-#ifdef PCNET_DEBUG
- printf("pcnet_transmit size=%d\n", s->xmit_pos);
-#endif
+ if (PCNET_DEBUG) {
+ printf("pcnet_transmit size=%d\n", s->xmit_pos);
+ }
if (CSR_LOOP(s)) {
if (BCR_SWSTYLE(s) == 1)
add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS);
@@ -1363,9 +1364,9 @@ static void pcnet_poll_timer(void *opaque)
static void pcnet_csr_writew(PCNetState *s, uint32_t rap, uint32_t new_value)
{
uint16_t val = new_value;
-#ifdef PCNET_DEBUG_CSR
- printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
-#endif
+ if (PCNET_DEBUG_CSR) {
+ printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
+ }
switch (rap) {
case 0:
s->csr[0] &= ~(val & 0x7f00); /* Clear any interrupt flags */
@@ -1491,18 +1492,18 @@ static uint32_t pcnet_csr_readw(PCNetState *s, uint32_t rap)
default:
val = s->csr[rap];
}
-#ifdef PCNET_DEBUG_CSR
- printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
-#endif
+ if (PCNET_DEBUG_CSR) {
+ printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
+ }
return val;
}
static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
{
rap &= 127;
-#ifdef PCNET_DEBUG_BCR
- printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
-#endif
+ if (PCNET_DEBUG_BCR) {
+ printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
+ }
switch (rap) {
case BCR_SWS:
if (!(CSR_STOP(s) || CSR_SPND(s)))
@@ -1524,9 +1525,9 @@ static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
val = 0x0200;
break;
}
-#ifdef PCNET_DEBUG
- printf("BCR_SWS=0x%04x\n", val);
-#endif
+ if (PCNET_DEBUG) {
+ printf("BCR_SWS=0x%04x\n", val);
+ }
/* fall through */
case BCR_LNKST:
case BCR_LED1:
@@ -1560,9 +1561,9 @@ uint32_t pcnet_bcr_readw(PCNetState *s, uint32_t rap)
val = rap < 32 ? s->bcr[rap] : 0;
break;
}
-#ifdef PCNET_DEBUG_BCR
- printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
-#endif
+ if (PCNET_DEBUG_BCR) {
+ printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
+ }
return val;
}
@@ -1592,9 +1593,9 @@ void pcnet_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
{
PCNetState *s = opaque;
pcnet_poll_timer(s);
-#ifdef PCNET_DEBUG_IO
- printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
-#endif
+ if (PCNET_DEBUG_IO) {
+ printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
+ }
if (!BCR_DWIO(s)) {
switch (addr & 0x0f) {
case 0x00: /* RDP */
@@ -1634,9 +1635,10 @@ uint32_t pcnet_ioport_readw(void *opaque, uint32_t addr)
}
}
pcnet_update_irq(s);
-#ifdef PCNET_DEBUG_IO
- printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr, val & 0xffff);
-#endif
+ if (PCNET_DEBUG_IO) {
+ printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr,
+ val & 0xffff);
+ }
return val;
}
@@ -1644,9 +1646,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
{
PCNetState *s = opaque;
pcnet_poll_timer(s);
-#ifdef PCNET_DEBUG_IO
- printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
-#endif
+ if (PCNET_DEBUG_IO) {
+ printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
+ }
if (BCR_DWIO(s)) {
switch (addr & 0x0f) {
case 0x00: /* RDP */
@@ -1662,9 +1664,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
} else if ((addr & 0x0f) == 0) {
/* switch device to dword i/o mode */
pcnet_bcr_writew(s, BCR_BSBC, pcnet_bcr_readw(s, BCR_BSBC) | 0x0080);
-#ifdef PCNET_DEBUG_IO
- printf("device switched into dword i/o mode\n");
-#endif
+ if (PCNET_DEBUG_IO) {
+ printf("device switched into dword i/o mode\n");
+ }
}
pcnet_update_irq(s);
}
@@ -1692,9 +1694,9 @@ uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr)
}
}
pcnet_update_irq(s);
-#ifdef PCNET_DEBUG_IO
- printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
-#endif
+ if (PCNET_DEBUG_IO) {
+ printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
+ }
return val;
}
--
2.11.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG Philippe Mathieu-Daudé
@ 2017-06-09 16:04 ` Alex Bennée
2017-06-09 21:41 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 9+ messages in thread
From: Alex Bennée @ 2017-06-09 16:04 UTC (permalink / raw)
To: Philippe Mathieu-Daudé; +Cc: qemu-devel, qemu-trivial, Jason Wang
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
> Ensure the format strings are always preprocessed, so any problem get reported.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>
> v2: Addressed review feedback from Alex Bennée
> No changes in *printf() calls but using qemu_log_mask() is an option.
>
> hw/net/pcnet-pci.c | 13 ----
> hw/net/pcnet.c | 190 +++++++++++++++++++++++++++--------------------------
> 2 files changed, 96 insertions(+), 107 deletions(-)
>
> diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
> index 0acf8a4879..331370a1f2 100644
> --- a/hw/net/pcnet-pci.c
> +++ b/hw/net/pcnet-pci.c
> @@ -38,14 +38,6 @@
>
> #include "pcnet.h"
>
> -//#define PCNET_DEBUG
> -//#define PCNET_DEBUG_IO
> -//#define PCNET_DEBUG_BCR
> -//#define PCNET_DEBUG_CSR
> -//#define PCNET_DEBUG_RMD
> -//#define PCNET_DEBUG_TMD
> -//#define PCNET_DEBUG_MATCH
> -
> #define TYPE_PCI_PCNET "pcnet"
>
> #define PCI_PCNET(obj) \
> @@ -284,11 +276,6 @@ static void pci_pcnet_realize(PCIDevice *pci_dev, Error **errp)
> PCNetState *s = &d->state;
> uint8_t *pci_conf;
>
> -#if 0
> - printf("sizeof(RMD)=%d, sizeof(TMD)=%d\n",
> - sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
> -#endif
> -
> pci_conf = pci_dev->config;
>
> pci_set_word(pci_conf + PCI_STATUS,
> diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
> index 654455355f..6e97c0b176 100644
> --- a/hw/net/pcnet.c
> +++ b/hw/net/pcnet.c
> @@ -45,13 +45,13 @@
>
> #include "pcnet.h"
>
> -//#define PCNET_DEBUG
> -//#define PCNET_DEBUG_IO
> -//#define PCNET_DEBUG_BCR
> -//#define PCNET_DEBUG_CSR
> -//#define PCNET_DEBUG_RMD
> -//#define PCNET_DEBUG_TMD
> -//#define PCNET_DEBUG_MATCH
> +#define PCNET_DEBUG 0
> +#define PCNET_DEBUG_IO 0
> +#define PCNET_DEBUG_BCR 0
> +#define PCNET_DEBUG_CSR 0
> +#define PCNET_DEBUG_RMD 0
> +#define PCNET_DEBUG_TMD 0
> +#define PCNET_DEBUG_MATCH 0
This is an aweful lot of debug knobs. Is there really such a variation
in debug output to bother having this granularity?
>
>
> struct qemu_ether_header {
> @@ -268,7 +268,9 @@ struct pcnet_RMD {
> GET_FIELD((T)->misc, TMDM, TDR), \
> GET_FIELD((T)->misc, TMDM, TRC))
>
> -#define PRINT_RMD(R) printf( \
> +
> +#define PRINT_RMD(R) do { if (PCNET_DEBUG_RMD) { \
> + printf( \
> "RMD0 : RBADR=0x%08x\n" \
> "RMD1 : OWN=%d, ERR=%d, FRAM=%d, OFLO=%d, " \
> "CRC=%d, BUFF=%d, STP=%d, ENP=%d,\n " \
> @@ -292,7 +294,9 @@ struct pcnet_RMD {
> GET_FIELD((R)->msg_length, RMDM, RCC), \
> GET_FIELD((R)->msg_length, RMDM, RPC), \
> GET_FIELD((R)->msg_length, RMDM, MCNT), \
> - GET_FIELD((R)->msg_length, RMDM, ZEROS))
> + GET_FIELD((R)->msg_length, RMDM, ZEROS)); } \
> + } while (0)
> +
>
> static inline void pcnet_tmd_load(PCNetState *s, struct pcnet_TMD *tmd,
> hwaddr addr)
> @@ -510,7 +514,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
>
> #endif
>
> -#define PRINT_PKTHDR(BUF) do { \
> +#define PRINT_PKTHDR(BUF) do { if (PCNET_DEBUG_MATCH) { \
> struct qemu_ether_header *hdr = (void *)(BUF); \
> printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, " \
> "shost=%02x:%02x:%02x:%02x:%02x:%02x, " \
> @@ -520,7 +524,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
> hdr->ether_shost[0],hdr->ether_shost[1],hdr->ether_shost[2], \
> hdr->ether_shost[3],hdr->ether_shost[4],hdr->ether_shost[5], \
> be16_to_cpu(hdr->ether_type)); \
> -} while (0)
> + } } while (0)
>
> #define MULTICAST_FILTER_LEN 8
>
> @@ -623,14 +627,14 @@ static inline int padr_match(PCNetState *s, const uint8_t *buf, int size)
> s->csr[14] & 0xff, s->csr[14] >> 8
> };
> int result = (!CSR_DRCVPA(s)) && !memcmp(hdr->ether_dhost, padr, 6);
> -#ifdef PCNET_DEBUG_MATCH
> - printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
> - "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
> - hdr->ether_dhost[0],hdr->ether_dhost[1],hdr->ether_dhost[2],
> - hdr->ether_dhost[3],hdr->ether_dhost[4],hdr->ether_dhost[5],
> - padr[0],padr[1],padr[2],padr[3],padr[4],padr[5]);
> - printf("padr_match result=%d\n", result);
> -#endif
> + if (PCNET_DEBUG_MATCH) {
> + printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
> + "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
> + hdr->ether_dhost[0], hdr->ether_dhost[1], hdr->ether_dhost[2],
> + hdr->ether_dhost[3], hdr->ether_dhost[4], hdr->ether_dhost[5],
> + padr[0], padr[1], padr[2], padr[3], padr[4], padr[5]);
> + printf("padr_match result=%d\n", result);
> + }
While this improves things it might be cleaner to debug helper/defines
so we can have simpler:
debug_pcnet("foo=%x bar=%d", foo, bar)
Or maybe:
debug_pci(PCNET_DEBUG_MATCH, "foo=%x, bar=%x", foo, bar)
Depending on if we can rationlise the debug control knobs
> return result;
> }
>
> @@ -639,9 +643,9 @@ static inline int padr_bcast(PCNetState *s, const uint8_t *buf, int size)
> static const uint8_t BCAST[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
> struct qemu_ether_header *hdr = (void *)buf;
> int result = !CSR_DRCVBC(s) && !memcmp(hdr->ether_dhost, BCAST, 6);
> -#ifdef PCNET_DEBUG_MATCH
> - printf("padr_bcast result=%d\n", result);
> -#endif
> + if (PCNET_DEBUG_MATCH) {
> + printf("padr_bcast result=%d\n", result);
> + }
> return result;
> }
>
> @@ -790,6 +794,10 @@ static void pcnet_init(PCNetState *s)
> uint16_t padr[3], ladrf[4], mode;
> uint32_t rdra, tdra;
>
> + if (PCNET_DEBUG) {
> + printf("sizeof(RMD)=%zu, sizeof(TMD)=%zu\n",
> + sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
> + }
> trace_pcnet_init(s, PHYSADDR(s, CSR_IADR(s)));
>
> if (BCR_SSIZE32(s)) {
> @@ -858,9 +866,9 @@ static void pcnet_init(PCNetState *s)
>
> static void pcnet_start(PCNetState *s)
> {
> -#ifdef PCNET_DEBUG
> - printf("pcnet_start\n");
> -#endif
> + if (PCNET_DEBUG) {
> + printf("pcnet_start\n");
> + }
>
> if (!CSR_DTX(s)) {
> s->csr[0] |= 0x0010; /* set TXON */
> @@ -877,9 +885,9 @@ static void pcnet_start(PCNetState *s)
>
> static void pcnet_stop(PCNetState *s)
> {
> -#ifdef PCNET_DEBUG
> - printf("pcnet_stop\n");
> -#endif
> + if (PCNET_DEBUG) {
> + printf("pcnet_stop\n");
> + }
> s->csr[0] &= ~0xffeb;
> s->csr[0] |= 0x0014;
> s->csr[4] &= ~0x02c2;
> @@ -939,12 +947,13 @@ static void pcnet_rdte_poll(PCNetState *s)
> RMDLOAD(&rmd, PHYSADDR(s,CSR_CRDA(s)));
> CSR_CRBC(s) = GET_FIELD(rmd.buf_length, RMDL, BCNT);
> CSR_CRST(s) = rmd.status;
> -#ifdef PCNET_DEBUG_RMD_X
> - printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x RMDS=0x%04x RMDM=0x%08x\n",
> - PHYSADDR(s,CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
> - rmd.buf_length, rmd.status, rmd.msg_length);
> + if (PCNET_DEBUG_RMD) {
> + printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x "
> + "RMDS=0x%04x RMDM=0x%08x\n",
> + PHYSADDR(s, CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
> + rmd.buf_length, rmd.status, rmd.msg_length);
> + }
> PRINT_RMD(&rmd);
> -#endif
> } else {
> CSR_CRBC(s) = CSR_CRST(s) = 0;
> }
> @@ -1013,9 +1022,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> (CSR_LOOP(s) && !s->looptest)) {
> return -1;
> }
> -#ifdef PCNET_DEBUG
> - printf("pcnet_receive size=%d\n", size);
> -#endif
> + if (PCNET_DEBUG) {
> + printf("pcnet_receive size=%d\n", size);
> + }
>
> /* if too small buffer, then expand it */
> if (size < MIN_BUF_SIZE) {
> @@ -1044,10 +1053,10 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> (BCR_SWSTYLE(s) ? 16 : 8 );
> RMDLOAD(&rmd, nrda);
> if (GET_FIELD(rmd.status, RMDS, OWN)) {
> -#ifdef PCNET_DEBUG_RMD
> - printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
> + if (PCNET_DEBUG_RMD) {
> + printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
> rcvrc, CSR_RCVRC(s));
> -#endif
> + }
> CSR_RCVRC(s) = rcvrc;
> pcnet_rdte_poll(s);
> break;
> @@ -1056,9 +1065,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> }
>
> if (!(CSR_CRST(s) & 0x8000)) {
> -#ifdef PCNET_DEBUG_RMD
> - printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
> -#endif
> + if (PCNET_DEBUG_RMD) {
> + printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
> + }
> s->csr[0] |= 0x1000; /* Set MISS flag */
> CSR_MISSC(s)++;
> } else {
> @@ -1069,9 +1078,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>
> if (!s->looptest) {
> if (size > 4092) {
> -#ifdef PCNET_DEBUG_RMD
> - fprintf(stderr, "pcnet: truncates rx packet.\n");
> -#endif
> + if (PCNET_DEBUG_RMD) {
> + fprintf(stderr, "pcnet: truncates rx packet.\n");
> + }
> size = 4092;
> }
> memcpy(src, buf, size);
> @@ -1099,9 +1108,7 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> crc_err = (*(uint32_t *)p != htonl(fcs));
> }
>
> -#ifdef PCNET_DEBUG_MATCH
> PRINT_PKTHDR(buf);
> -#endif
>
> RMDLOAD(&rmd, PHYSADDR(s,crda));
> /*if (!CSR_LAPPEN(s))*/
> @@ -1121,16 +1128,12 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> PCNET_RECV_STORE();
> if ((remaining > 0) && CSR_NRDA(s)) {
> hwaddr nrda = CSR_NRDA(s);
> -#ifdef PCNET_DEBUG_RMD
> PRINT_RMD(&rmd);
> -#endif
> RMDLOAD(&rmd, PHYSADDR(s,nrda));
> if (GET_FIELD(rmd.status, RMDS, OWN)) {
> crda = nrda;
> PCNET_RECV_STORE();
> -#ifdef PCNET_DEBUG_RMD
> PRINT_RMD(&rmd);
> -#endif
> if ((remaining > 0) && (nrda=CSR_NNRD(s))) {
> RMDLOAD(&rmd, PHYSADDR(s,nrda));
> if (GET_FIELD(rmd.status, RMDS, OWN)) {
> @@ -1162,13 +1165,11 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
> RMDSTORE(&rmd, PHYSADDR(s,crda));
> s->csr[0] |= 0x0400;
>
> -#ifdef PCNET_DEBUG
> - printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
> - CSR_RCVRC(s), PHYSADDR(s,CSR_CRDA(s)), pktcount);
> -#endif
> -#ifdef PCNET_DEBUG_RMD
> + if (PCNET_DEBUG) {
> + printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
> + CSR_RCVRC(s), PHYSADDR(s, CSR_CRDA(s)), pktcount);
> + }
> PRINT_RMD(&rmd);
> -#endif
>
> while (pktcount--) {
> if (CSR_RCVRC(s) <= 1) {
> @@ -1217,10 +1218,10 @@ txagain:
>
> TMDLOAD(&tmd, PHYSADDR(s,CSR_CXDA(s)));
>
> -#ifdef PCNET_DEBUG_TMD
> - printf(" TMDLOAD 0x%08x\n", PHYSADDR(s,CSR_CXDA(s)));
> - PRINT_TMD(&tmd);
> -#endif
> + if (PCNET_DEBUG_TMD) {
> + printf(" TMDLOAD 0x%08x\n", PHYSADDR(s, CSR_CXDA(s)));
> + PRINT_TMD(&tmd);
> + }
> if (GET_FIELD(tmd.status, TMDS, STP)) {
> s->xmit_pos = 0;
> xmit_cxda = PHYSADDR(s,CSR_CXDA(s));
> @@ -1260,9 +1261,9 @@ txagain:
> goto txdone;
> }
>
> -#ifdef PCNET_DEBUG
> - printf("pcnet_transmit size=%d\n", s->xmit_pos);
> -#endif
> + if (PCNET_DEBUG) {
> + printf("pcnet_transmit size=%d\n", s->xmit_pos);
> + }
> if (CSR_LOOP(s)) {
> if (BCR_SWSTYLE(s) == 1)
> add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS);
> @@ -1363,9 +1364,9 @@ static void pcnet_poll_timer(void *opaque)
> static void pcnet_csr_writew(PCNetState *s, uint32_t rap, uint32_t new_value)
> {
> uint16_t val = new_value;
> -#ifdef PCNET_DEBUG_CSR
> - printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
> -#endif
> + if (PCNET_DEBUG_CSR) {
> + printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
> + }
> switch (rap) {
> case 0:
> s->csr[0] &= ~(val & 0x7f00); /* Clear any interrupt flags */
> @@ -1491,18 +1492,18 @@ static uint32_t pcnet_csr_readw(PCNetState *s, uint32_t rap)
> default:
> val = s->csr[rap];
> }
> -#ifdef PCNET_DEBUG_CSR
> - printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
> -#endif
> + if (PCNET_DEBUG_CSR) {
> + printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
> + }
> return val;
> }
>
> static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
> {
> rap &= 127;
> -#ifdef PCNET_DEBUG_BCR
> - printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
> -#endif
> + if (PCNET_DEBUG_BCR) {
> + printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
> + }
> switch (rap) {
> case BCR_SWS:
> if (!(CSR_STOP(s) || CSR_SPND(s)))
> @@ -1524,9 +1525,9 @@ static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
> val = 0x0200;
> break;
> }
> -#ifdef PCNET_DEBUG
> - printf("BCR_SWS=0x%04x\n", val);
> -#endif
> + if (PCNET_DEBUG) {
> + printf("BCR_SWS=0x%04x\n", val);
> + }
> /* fall through */
> case BCR_LNKST:
> case BCR_LED1:
> @@ -1560,9 +1561,9 @@ uint32_t pcnet_bcr_readw(PCNetState *s, uint32_t rap)
> val = rap < 32 ? s->bcr[rap] : 0;
> break;
> }
> -#ifdef PCNET_DEBUG_BCR
> - printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
> -#endif
> + if (PCNET_DEBUG_BCR) {
> + printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
> + }
> return val;
> }
>
> @@ -1592,9 +1593,9 @@ void pcnet_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
> {
> PCNetState *s = opaque;
> pcnet_poll_timer(s);
> -#ifdef PCNET_DEBUG_IO
> - printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
> -#endif
> + if (PCNET_DEBUG_IO) {
> + printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
> + }
> if (!BCR_DWIO(s)) {
> switch (addr & 0x0f) {
> case 0x00: /* RDP */
> @@ -1634,9 +1635,10 @@ uint32_t pcnet_ioport_readw(void *opaque, uint32_t addr)
> }
> }
> pcnet_update_irq(s);
> -#ifdef PCNET_DEBUG_IO
> - printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr, val & 0xffff);
> -#endif
> + if (PCNET_DEBUG_IO) {
> + printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr,
> + val & 0xffff);
> + }
> return val;
> }
>
> @@ -1644,9 +1646,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
> {
> PCNetState *s = opaque;
> pcnet_poll_timer(s);
> -#ifdef PCNET_DEBUG_IO
> - printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
> -#endif
> + if (PCNET_DEBUG_IO) {
> + printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
> + }
> if (BCR_DWIO(s)) {
> switch (addr & 0x0f) {
> case 0x00: /* RDP */
> @@ -1662,9 +1664,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
> } else if ((addr & 0x0f) == 0) {
> /* switch device to dword i/o mode */
> pcnet_bcr_writew(s, BCR_BSBC, pcnet_bcr_readw(s, BCR_BSBC) | 0x0080);
> -#ifdef PCNET_DEBUG_IO
> - printf("device switched into dword i/o mode\n");
> -#endif
> + if (PCNET_DEBUG_IO) {
> + printf("device switched into dword i/o mode\n");
> + }
> }
> pcnet_update_irq(s);
> }
> @@ -1692,9 +1694,9 @@ uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr)
> }
> }
> pcnet_update_irq(s);
> -#ifdef PCNET_DEBUG_IO
> - printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
> -#endif
> + if (PCNET_DEBUG_IO) {
> + printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
> + }
> return val;
> }
--
Alex Bennée
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] hw/misc: add missing includes
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub Philippe Mathieu-Daudé
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG Philippe Mathieu-Daudé
@ 2017-06-09 21:32 ` Philippe Mathieu-Daudé
2017-06-09 21:38 ` Eric Blake
2017-06-27 13:24 ` Michael Tokarev
4 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-06-09 21:32 UTC (permalink / raw)
To: qemu-devel, Eric Blake
I intended to send those 3 patches as separate since unrelated, but
failed again, sorry :S
On 06/09/2017 12:06 PM, Philippe Mathieu-Daudé wrote:
> inlined create_unimplemented_device() calls sysbus_mmio_map_overlap().
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>
> v2: Addressed review feedback from Eric Blake
>
> include/hw/misc/unimp.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/hw/misc/unimp.h b/include/hw/misc/unimp.h
> index 3462d85836..52e068ec3e 100644
> --- a/include/hw/misc/unimp.h
> +++ b/include/hw/misc/unimp.h
> @@ -8,6 +8,8 @@
> #ifndef HW_MISC_UNIMP_H
> #define HW_MISC_UNIMP_H
>
> +#include "hw/sysbus.h"
> +
> #define TYPE_UNIMPLEMENTED_DEVICE "unimplemented-device"
>
> /**
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] hw/misc: add missing includes
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2017-06-09 21:32 ` [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
@ 2017-06-09 21:38 ` Eric Blake
2017-06-27 13:24 ` Michael Tokarev
4 siblings, 0 replies; 9+ messages in thread
From: Eric Blake @ 2017-06-09 21:38 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, qemu-trivial,
Peter Maydell
[-- Attachment #1: Type: text/plain, Size: 875 bytes --]
On 06/09/2017 10:06 AM, Philippe Mathieu-Daudé wrote:
> inlined create_unimplemented_device() calls sysbus_mmio_map_overlap().
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>
> v2: Addressed review feedback from Eric Blake
>
> include/hw/misc/unimp.h | 2 ++
> 1 file changed, 2 insertions(+)
Reviewed-by: Eric Blake <eblake@redhat.com>
>
> diff --git a/include/hw/misc/unimp.h b/include/hw/misc/unimp.h
> index 3462d85836..52e068ec3e 100644
> --- a/include/hw/misc/unimp.h
> +++ b/include/hw/misc/unimp.h
> @@ -8,6 +8,8 @@
> #ifndef HW_MISC_UNIMP_H
> #define HW_MISC_UNIMP_H
>
> +#include "hw/sysbus.h"
> +
> #define TYPE_UNIMPLEMENTED_DEVICE "unimplemented-device"
>
> /**
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG
2017-06-09 16:04 ` Alex Bennée
@ 2017-06-09 21:41 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-06-09 21:41 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-devel, qemu-trivial, Jason Wang
On 06/09/2017 01:04 PM, Alex Bennée wrote:
>
> Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
>
>> Ensure the format strings are always preprocessed, so any problem get reported.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>
>> v2: Addressed review feedback from Alex Bennée
>> No changes in *printf() calls but using qemu_log_mask() is an option.
>>
>> hw/net/pcnet-pci.c | 13 ----
>> hw/net/pcnet.c | 190 +++++++++++++++++++++++++++--------------------------
>> 2 files changed, 96 insertions(+), 107 deletions(-)
>>
>> diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
>> index 0acf8a4879..331370a1f2 100644
>> --- a/hw/net/pcnet-pci.c
>> +++ b/hw/net/pcnet-pci.c
>> @@ -38,14 +38,6 @@
>>
>> #include "pcnet.h"
>>
>> -//#define PCNET_DEBUG
>> -//#define PCNET_DEBUG_IO
>> -//#define PCNET_DEBUG_BCR
>> -//#define PCNET_DEBUG_CSR
>> -//#define PCNET_DEBUG_RMD
>> -//#define PCNET_DEBUG_TMD
>> -//#define PCNET_DEBUG_MATCH
>> -
>> #define TYPE_PCI_PCNET "pcnet"
>>
>> #define PCI_PCNET(obj) \
>> @@ -284,11 +276,6 @@ static void pci_pcnet_realize(PCIDevice *pci_dev, Error **errp)
>> PCNetState *s = &d->state;
>> uint8_t *pci_conf;
>>
>> -#if 0
>> - printf("sizeof(RMD)=%d, sizeof(TMD)=%d\n",
>> - sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
>> -#endif
>> -
>> pci_conf = pci_dev->config;
>>
>> pci_set_word(pci_conf + PCI_STATUS,
>> diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
>> index 654455355f..6e97c0b176 100644
>> --- a/hw/net/pcnet.c
>> +++ b/hw/net/pcnet.c
>> @@ -45,13 +45,13 @@
>>
>> #include "pcnet.h"
>>
>> -//#define PCNET_DEBUG
>> -//#define PCNET_DEBUG_IO
>> -//#define PCNET_DEBUG_BCR
>> -//#define PCNET_DEBUG_CSR
>> -//#define PCNET_DEBUG_RMD
>> -//#define PCNET_DEBUG_TMD
>> -//#define PCNET_DEBUG_MATCH
>> +#define PCNET_DEBUG 0
>> +#define PCNET_DEBUG_IO 0
>> +#define PCNET_DEBUG_BCR 0
>> +#define PCNET_DEBUG_CSR 0
>> +#define PCNET_DEBUG_RMD 0
>> +#define PCNET_DEBUG_TMD 0
>> +#define PCNET_DEBUG_MATCH 0
>
> This is an aweful lot of debug knobs. Is there really such a variation
> in debug output to bother having this granularity?
Don't tell me! I just wanted to fix a format string at first then ended
here. I believe those knobs were useful during interface model
bootstrapping and were never used once this interface worked enough.
I'll try using the trace API it should get cleaner I hope.
The only message I ever saw is about "Bad SWSTYLE" in pcnet_bcr_writew()
with Linux/mipsel which should get reported through
qemu_log_mask(LOG_GUEST_ERROR).
>
>>
>>
>> struct qemu_ether_header {
>> @@ -268,7 +268,9 @@ struct pcnet_RMD {
>> GET_FIELD((T)->misc, TMDM, TDR), \
>> GET_FIELD((T)->misc, TMDM, TRC))
>>
>> -#define PRINT_RMD(R) printf( \
>> +
>> +#define PRINT_RMD(R) do { if (PCNET_DEBUG_RMD) { \
>> + printf( \
>> "RMD0 : RBADR=0x%08x\n" \
>> "RMD1 : OWN=%d, ERR=%d, FRAM=%d, OFLO=%d, " \
>> "CRC=%d, BUFF=%d, STP=%d, ENP=%d,\n " \
>> @@ -292,7 +294,9 @@ struct pcnet_RMD {
>> GET_FIELD((R)->msg_length, RMDM, RCC), \
>> GET_FIELD((R)->msg_length, RMDM, RPC), \
>> GET_FIELD((R)->msg_length, RMDM, MCNT), \
>> - GET_FIELD((R)->msg_length, RMDM, ZEROS))
>> + GET_FIELD((R)->msg_length, RMDM, ZEROS)); } \
>> + } while (0)
>> +
>>
>> static inline void pcnet_tmd_load(PCNetState *s, struct pcnet_TMD *tmd,
>> hwaddr addr)
>> @@ -510,7 +514,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
>>
>> #endif
>>
>> -#define PRINT_PKTHDR(BUF) do { \
>> +#define PRINT_PKTHDR(BUF) do { if (PCNET_DEBUG_MATCH) { \
>> struct qemu_ether_header *hdr = (void *)(BUF); \
>> printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, " \
>> "shost=%02x:%02x:%02x:%02x:%02x:%02x, " \
>> @@ -520,7 +524,7 @@ static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd,
>> hdr->ether_shost[0],hdr->ether_shost[1],hdr->ether_shost[2], \
>> hdr->ether_shost[3],hdr->ether_shost[4],hdr->ether_shost[5], \
>> be16_to_cpu(hdr->ether_type)); \
>> -} while (0)
>> + } } while (0)
>>
>> #define MULTICAST_FILTER_LEN 8
>>
>> @@ -623,14 +627,14 @@ static inline int padr_match(PCNetState *s, const uint8_t *buf, int size)
>> s->csr[14] & 0xff, s->csr[14] >> 8
>> };
>> int result = (!CSR_DRCVPA(s)) && !memcmp(hdr->ether_dhost, padr, 6);
>> -#ifdef PCNET_DEBUG_MATCH
>> - printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
>> - "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
>> - hdr->ether_dhost[0],hdr->ether_dhost[1],hdr->ether_dhost[2],
>> - hdr->ether_dhost[3],hdr->ether_dhost[4],hdr->ether_dhost[5],
>> - padr[0],padr[1],padr[2],padr[3],padr[4],padr[5]);
>> - printf("padr_match result=%d\n", result);
>> -#endif
>> + if (PCNET_DEBUG_MATCH) {
>> + printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, "
>> + "padr=%02x:%02x:%02x:%02x:%02x:%02x\n",
>> + hdr->ether_dhost[0], hdr->ether_dhost[1], hdr->ether_dhost[2],
>> + hdr->ether_dhost[3], hdr->ether_dhost[4], hdr->ether_dhost[5],
>> + padr[0], padr[1], padr[2], padr[3], padr[4], padr[5]);
>> + printf("padr_match result=%d\n", result);
>> + }
>
> While this improves things it might be cleaner to debug helper/defines
> so we can have simpler:
>
> debug_pcnet("foo=%x bar=%d", foo, bar)
>
> Or maybe:
>
> debug_pci(PCNET_DEBUG_MATCH, "foo=%x, bar=%x", foo, bar)
>
> Depending on if we can rationlise the debug control knobs
>
>> return result;
>> }
>>
>> @@ -639,9 +643,9 @@ static inline int padr_bcast(PCNetState *s, const uint8_t *buf, int size)
>> static const uint8_t BCAST[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
>> struct qemu_ether_header *hdr = (void *)buf;
>> int result = !CSR_DRCVBC(s) && !memcmp(hdr->ether_dhost, BCAST, 6);
>> -#ifdef PCNET_DEBUG_MATCH
>> - printf("padr_bcast result=%d\n", result);
>> -#endif
>> + if (PCNET_DEBUG_MATCH) {
>> + printf("padr_bcast result=%d\n", result);
>> + }
>> return result;
>> }
>>
>> @@ -790,6 +794,10 @@ static void pcnet_init(PCNetState *s)
>> uint16_t padr[3], ladrf[4], mode;
>> uint32_t rdra, tdra;
>>
>> + if (PCNET_DEBUG) {
>> + printf("sizeof(RMD)=%zu, sizeof(TMD)=%zu\n",
>> + sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));
>> + }
>> trace_pcnet_init(s, PHYSADDR(s, CSR_IADR(s)));
>>
>> if (BCR_SSIZE32(s)) {
>> @@ -858,9 +866,9 @@ static void pcnet_init(PCNetState *s)
>>
>> static void pcnet_start(PCNetState *s)
>> {
>> -#ifdef PCNET_DEBUG
>> - printf("pcnet_start\n");
>> -#endif
>> + if (PCNET_DEBUG) {
>> + printf("pcnet_start\n");
>> + }
>>
>> if (!CSR_DTX(s)) {
>> s->csr[0] |= 0x0010; /* set TXON */
>> @@ -877,9 +885,9 @@ static void pcnet_start(PCNetState *s)
>>
>> static void pcnet_stop(PCNetState *s)
>> {
>> -#ifdef PCNET_DEBUG
>> - printf("pcnet_stop\n");
>> -#endif
>> + if (PCNET_DEBUG) {
>> + printf("pcnet_stop\n");
>> + }
>> s->csr[0] &= ~0xffeb;
>> s->csr[0] |= 0x0014;
>> s->csr[4] &= ~0x02c2;
>> @@ -939,12 +947,13 @@ static void pcnet_rdte_poll(PCNetState *s)
>> RMDLOAD(&rmd, PHYSADDR(s,CSR_CRDA(s)));
>> CSR_CRBC(s) = GET_FIELD(rmd.buf_length, RMDL, BCNT);
>> CSR_CRST(s) = rmd.status;
>> -#ifdef PCNET_DEBUG_RMD_X
>> - printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x RMDS=0x%04x RMDM=0x%08x\n",
>> - PHYSADDR(s,CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
>> - rmd.buf_length, rmd.status, rmd.msg_length);
>> + if (PCNET_DEBUG_RMD) {
>> + printf("CRDA=0x%08x CRST=0x%04x RCVRC=%d RMDL=0x%04x "
>> + "RMDS=0x%04x RMDM=0x%08x\n",
>> + PHYSADDR(s, CSR_CRDA(s)), CSR_CRST(s), CSR_RCVRC(s),
>> + rmd.buf_length, rmd.status, rmd.msg_length);
>> + }
>> PRINT_RMD(&rmd);
>> -#endif
>> } else {
>> CSR_CRBC(s) = CSR_CRST(s) = 0;
>> }
>> @@ -1013,9 +1022,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> (CSR_LOOP(s) && !s->looptest)) {
>> return -1;
>> }
>> -#ifdef PCNET_DEBUG
>> - printf("pcnet_receive size=%d\n", size);
>> -#endif
>> + if (PCNET_DEBUG) {
>> + printf("pcnet_receive size=%d\n", size);
>> + }
>>
>> /* if too small buffer, then expand it */
>> if (size < MIN_BUF_SIZE) {
>> @@ -1044,10 +1053,10 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> (BCR_SWSTYLE(s) ? 16 : 8 );
>> RMDLOAD(&rmd, nrda);
>> if (GET_FIELD(rmd.status, RMDS, OWN)) {
>> -#ifdef PCNET_DEBUG_RMD
>> - printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
>> + if (PCNET_DEBUG_RMD) {
>> + printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n",
>> rcvrc, CSR_RCVRC(s));
>> -#endif
>> + }
>> CSR_RCVRC(s) = rcvrc;
>> pcnet_rdte_poll(s);
>> break;
>> @@ -1056,9 +1065,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> }
>>
>> if (!(CSR_CRST(s) & 0x8000)) {
>> -#ifdef PCNET_DEBUG_RMD
>> - printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
>> -#endif
>> + if (PCNET_DEBUG_RMD) {
>> + printf("pcnet - no buffer: RCVRC=%d\n", CSR_RCVRC(s));
>> + }
>> s->csr[0] |= 0x1000; /* Set MISS flag */
>> CSR_MISSC(s)++;
>> } else {
>> @@ -1069,9 +1078,9 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>>
>> if (!s->looptest) {
>> if (size > 4092) {
>> -#ifdef PCNET_DEBUG_RMD
>> - fprintf(stderr, "pcnet: truncates rx packet.\n");
>> -#endif
>> + if (PCNET_DEBUG_RMD) {
>> + fprintf(stderr, "pcnet: truncates rx packet.\n");
>> + }
>> size = 4092;
>> }
>> memcpy(src, buf, size);
>> @@ -1099,9 +1108,7 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> crc_err = (*(uint32_t *)p != htonl(fcs));
>> }
>>
>> -#ifdef PCNET_DEBUG_MATCH
>> PRINT_PKTHDR(buf);
>> -#endif
>>
>> RMDLOAD(&rmd, PHYSADDR(s,crda));
>> /*if (!CSR_LAPPEN(s))*/
>> @@ -1121,16 +1128,12 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> PCNET_RECV_STORE();
>> if ((remaining > 0) && CSR_NRDA(s)) {
>> hwaddr nrda = CSR_NRDA(s);
>> -#ifdef PCNET_DEBUG_RMD
>> PRINT_RMD(&rmd);
>> -#endif
>> RMDLOAD(&rmd, PHYSADDR(s,nrda));
>> if (GET_FIELD(rmd.status, RMDS, OWN)) {
>> crda = nrda;
>> PCNET_RECV_STORE();
>> -#ifdef PCNET_DEBUG_RMD
>> PRINT_RMD(&rmd);
>> -#endif
>> if ((remaining > 0) && (nrda=CSR_NNRD(s))) {
>> RMDLOAD(&rmd, PHYSADDR(s,nrda));
>> if (GET_FIELD(rmd.status, RMDS, OWN)) {
>> @@ -1162,13 +1165,11 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)
>> RMDSTORE(&rmd, PHYSADDR(s,crda));
>> s->csr[0] |= 0x0400;
>>
>> -#ifdef PCNET_DEBUG
>> - printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
>> - CSR_RCVRC(s), PHYSADDR(s,CSR_CRDA(s)), pktcount);
>> -#endif
>> -#ifdef PCNET_DEBUG_RMD
>> + if (PCNET_DEBUG) {
>> + printf("RCVRC=%d CRDA=0x%08x BLKS=%d\n",
>> + CSR_RCVRC(s), PHYSADDR(s, CSR_CRDA(s)), pktcount);
>> + }
>> PRINT_RMD(&rmd);
>> -#endif
>>
>> while (pktcount--) {
>> if (CSR_RCVRC(s) <= 1) {
>> @@ -1217,10 +1218,10 @@ txagain:
>>
>> TMDLOAD(&tmd, PHYSADDR(s,CSR_CXDA(s)));
>>
>> -#ifdef PCNET_DEBUG_TMD
>> - printf(" TMDLOAD 0x%08x\n", PHYSADDR(s,CSR_CXDA(s)));
>> - PRINT_TMD(&tmd);
>> -#endif
>> + if (PCNET_DEBUG_TMD) {
>> + printf(" TMDLOAD 0x%08x\n", PHYSADDR(s, CSR_CXDA(s)));
>> + PRINT_TMD(&tmd);
>> + }
>> if (GET_FIELD(tmd.status, TMDS, STP)) {
>> s->xmit_pos = 0;
>> xmit_cxda = PHYSADDR(s,CSR_CXDA(s));
>> @@ -1260,9 +1261,9 @@ txagain:
>> goto txdone;
>> }
>>
>> -#ifdef PCNET_DEBUG
>> - printf("pcnet_transmit size=%d\n", s->xmit_pos);
>> -#endif
>> + if (PCNET_DEBUG) {
>> + printf("pcnet_transmit size=%d\n", s->xmit_pos);
>> + }
>> if (CSR_LOOP(s)) {
>> if (BCR_SWSTYLE(s) == 1)
>> add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS);
>> @@ -1363,9 +1364,9 @@ static void pcnet_poll_timer(void *opaque)
>> static void pcnet_csr_writew(PCNetState *s, uint32_t rap, uint32_t new_value)
>> {
>> uint16_t val = new_value;
>> -#ifdef PCNET_DEBUG_CSR
>> - printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
>> -#endif
>> + if (PCNET_DEBUG_CSR) {
>> + printf("pcnet_csr_writew rap=%d val=0x%04x\n", rap, val);
>> + }
>> switch (rap) {
>> case 0:
>> s->csr[0] &= ~(val & 0x7f00); /* Clear any interrupt flags */
>> @@ -1491,18 +1492,18 @@ static uint32_t pcnet_csr_readw(PCNetState *s, uint32_t rap)
>> default:
>> val = s->csr[rap];
>> }
>> -#ifdef PCNET_DEBUG_CSR
>> - printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
>> -#endif
>> + if (PCNET_DEBUG_CSR) {
>> + printf("pcnet_csr_readw rap=%d val=0x%04x\n", rap, val);
>> + }
>> return val;
>> }
>>
>> static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
>> {
>> rap &= 127;
>> -#ifdef PCNET_DEBUG_BCR
>> - printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
>> -#endif
>> + if (PCNET_DEBUG_BCR) {
>> + printf("pcnet_bcr_writew rap=%d val=0x%04x\n", rap, val);
>> + }
>> switch (rap) {
>> case BCR_SWS:
>> if (!(CSR_STOP(s) || CSR_SPND(s)))
>> @@ -1524,9 +1525,9 @@ static void pcnet_bcr_writew(PCNetState *s, uint32_t rap, uint32_t val)
>> val = 0x0200;
>> break;
>> }
>> -#ifdef PCNET_DEBUG
>> - printf("BCR_SWS=0x%04x\n", val);
>> -#endif
>> + if (PCNET_DEBUG) {
>> + printf("BCR_SWS=0x%04x\n", val);
>> + }
>> /* fall through */
>> case BCR_LNKST:
>> case BCR_LED1:
>> @@ -1560,9 +1561,9 @@ uint32_t pcnet_bcr_readw(PCNetState *s, uint32_t rap)
>> val = rap < 32 ? s->bcr[rap] : 0;
>> break;
>> }
>> -#ifdef PCNET_DEBUG_BCR
>> - printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
>> -#endif
>> + if (PCNET_DEBUG_BCR) {
>> + printf("pcnet_bcr_readw rap=%d val=0x%04x\n", rap, val);
>> + }
>> return val;
>> }
>>
>> @@ -1592,9 +1593,9 @@ void pcnet_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
>> {
>> PCNetState *s = opaque;
>> pcnet_poll_timer(s);
>> -#ifdef PCNET_DEBUG_IO
>> - printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
>> -#endif
>> + if (PCNET_DEBUG_IO) {
>> + printf("pcnet_ioport_writew addr=0x%08x val=0x%04x\n", addr, val);
>> + }
>> if (!BCR_DWIO(s)) {
>> switch (addr & 0x0f) {
>> case 0x00: /* RDP */
>> @@ -1634,9 +1635,10 @@ uint32_t pcnet_ioport_readw(void *opaque, uint32_t addr)
>> }
>> }
>> pcnet_update_irq(s);
>> -#ifdef PCNET_DEBUG_IO
>> - printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr, val & 0xffff);
>> -#endif
>> + if (PCNET_DEBUG_IO) {
>> + printf("pcnet_ioport_readw addr=0x%08x val=0x%04x\n", addr,
>> + val & 0xffff);
>> + }
>> return val;
>> }
>>
>> @@ -1644,9 +1646,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
>> {
>> PCNetState *s = opaque;
>> pcnet_poll_timer(s);
>> -#ifdef PCNET_DEBUG_IO
>> - printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
>> -#endif
>> + if (PCNET_DEBUG_IO) {
>> + printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);
>> + }
>> if (BCR_DWIO(s)) {
>> switch (addr & 0x0f) {
>> case 0x00: /* RDP */
>> @@ -1662,9 +1664,9 @@ void pcnet_ioport_writel(void *opaque, uint32_t addr, uint32_t val)
>> } else if ((addr & 0x0f) == 0) {
>> /* switch device to dword i/o mode */
>> pcnet_bcr_writew(s, BCR_BSBC, pcnet_bcr_readw(s, BCR_BSBC) | 0x0080);
>> -#ifdef PCNET_DEBUG_IO
>> - printf("device switched into dword i/o mode\n");
>> -#endif
>> + if (PCNET_DEBUG_IO) {
>> + printf("device switched into dword i/o mode\n");
>> + }
>> }
>> pcnet_update_irq(s);
>> }
>> @@ -1692,9 +1694,9 @@ uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr)
>> }
>> }
>> pcnet_update_irq(s);
>> -#ifdef PCNET_DEBUG_IO
>> - printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
>> -#endif
>> + if (PCNET_DEBUG_IO) {
>> + printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);
>> + }
>> return val;
>> }
>
>
> --
> Alex Bennée
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] hw/misc: add missing includes
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2017-06-09 21:38 ` Eric Blake
@ 2017-06-27 13:24 ` Michael Tokarev
4 siblings, 0 replies; 9+ messages in thread
From: Michael Tokarev @ 2017-06-27 13:24 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, qemu-trivial,
Peter Maydell, Eric Blake
Applied to -trivial, thanks!
/mjt
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub Philippe Mathieu-Daudé
@ 2017-06-27 13:25 ` Michael Tokarev
0 siblings, 0 replies; 9+ messages in thread
From: Michael Tokarev @ 2017-06-27 13:25 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, qemu-trivial,
Michael S . Tsirkin, Thomas Huth
Applied to -trivial, thanks!
/mjt
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-06-27 13:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-09 15:06 [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] hw/pci: define msi_nonbroken in pci-stub Philippe Mathieu-Daudé
2017-06-27 13:25 ` Michael Tokarev
2017-06-09 15:06 ` [Qemu-devel] [PATCH v2] net/pcnet: modernise PCNET_DEBUG Philippe Mathieu-Daudé
2017-06-09 16:04 ` Alex Bennée
2017-06-09 21:41 ` Philippe Mathieu-Daudé
2017-06-09 21:32 ` [Qemu-devel] [PATCH v2] hw/misc: add missing includes Philippe Mathieu-Daudé
2017-06-09 21:38 ` Eric Blake
2017-06-27 13:24 ` Michael Tokarev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).