Merge remote-tracking branch 'remotes/vivier2/tags/trivial-branch-for-5.2-pull-request' into staging
trivial patches pull request 20200911 # gpg: Signature made Fri 11 Sep 2020 20:32:27 BST # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full] # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/trivial-branch-for-5.2-pull-request: target/i386/kvm: Add missing fallthrough comment util/hexdump: Reorder qemu_hexdump() arguments util/hexdump: Convert to take a void pointer argument hw/arm/pxa2xx: Add missing fallthrough comment target/i386/kvm: Rename host_tsx_blacklisted() as host_tsx_broken() test-vmstate: remove unnecessary code in match_interval_mapping_node hw: hyperv: vmbus: Fix 32bit compilation kconfig: fix comment referring to old Makefiles meson.build: tweak sdl-image error message hw/net/e1000e: Remove duplicated write handler for FLSWDATA register hw/net/e1000e: Remove overwritten read handler for STATUS register Makefile: Skip the meson subdir in cscope/TAGS/ctags Makefile: Drop extra phony cscope hw/gpio/max7310: Replace disabled printf() by qemu_log_mask(UNIMP) hw/gpio/omap_gpio: Replace fprintf() by qemu_log_mask(GUEST_ERROR) hw/acpi/tco: Remove unused definitions hw/isa/isa-bus: Replace hw_error() by assert() hw/mips/fuloong2e: Convert pointless error message to an assert() Signed-off-by: Peter Maydell <peter.maydell@linaro.org> # Conflicts: # net/colo-compare.c
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
# These are "proxy" symbols used to pass config-host.mak values
 | 
			
		||||
# down to Kconfig.  See also MINIKCONF_ARGS in the Makefile:
 | 
			
		||||
# these two need to be kept in sync.
 | 
			
		||||
# down to Kconfig.  See also kconfig_external_symbols in
 | 
			
		||||
# meson.build: these two need to be kept in sync.
 | 
			
		||||
 | 
			
		||||
config LINUX
 | 
			
		||||
    bool
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Makefile
									
									
									
									
									
								
							@@ -128,7 +128,7 @@ build.ninja: config-host.mak
 | 
			
		||||
Makefile: ;
 | 
			
		||||
configure: ;
 | 
			
		||||
 | 
			
		||||
.PHONY: all clean cscope distclean install \
 | 
			
		||||
.PHONY: all clean distclean install \
 | 
			
		||||
	recurse-all dist msi FORCE
 | 
			
		||||
 | 
			
		||||
SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet)
 | 
			
		||||
@@ -221,20 +221,22 @@ distclean: clean ninja-distclean
 | 
			
		||||
	rm -f linux-headers/asm
 | 
			
		||||
	rm -Rf .sdk
 | 
			
		||||
 | 
			
		||||
find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o -name "*.[chsS]"
 | 
			
		||||
 | 
			
		||||
.PHONY: ctags
 | 
			
		||||
ctags:
 | 
			
		||||
	rm -f tags
 | 
			
		||||
	find "$(SRC_PATH)" -name '*.[hc]' -exec ctags --append {} +
 | 
			
		||||
	$(find-src-path) -exec ctags --append {} +
 | 
			
		||||
 | 
			
		||||
.PHONY: TAGS
 | 
			
		||||
TAGS:
 | 
			
		||||
	rm -f TAGS
 | 
			
		||||
	find "$(SRC_PATH)" -name '*.[hc]' -exec etags --append {} +
 | 
			
		||||
	$(find-src-path) -exec etags --append {} +
 | 
			
		||||
 | 
			
		||||
.PHONY: cscope
 | 
			
		||||
cscope:
 | 
			
		||||
	rm -f "$(SRC_PATH)"/cscope.*
 | 
			
		||||
	find "$(SRC_PATH)/" -name "*.[chsS]" -print | sed -e 's,^\./,,' > "$(SRC_PATH)/cscope.files"
 | 
			
		||||
	$(find-src-path) -print | sed -e 's,^\./,,' > "$(SRC_PATH)/cscope.files"
 | 
			
		||||
	cscope -b -i"$(SRC_PATH)/cscope.files"
 | 
			
		||||
 | 
			
		||||
# Needed by "meson install"
 | 
			
		||||
 
 | 
			
		||||
@@ -15,17 +15,6 @@
 | 
			
		||||
#include "hw/acpi/tco.h"
 | 
			
		||||
#include "trace.h"
 | 
			
		||||
 | 
			
		||||
//#define DEBUG
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
#define TCO_DEBUG(fmt, ...)                                     \
 | 
			
		||||
    do {                                                        \
 | 
			
		||||
        fprintf(stderr, "%s "fmt, __func__, ## __VA_ARGS__);    \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#else
 | 
			
		||||
#define TCO_DEBUG(fmt, ...) do { } while (0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
    TCO_RLD_DEFAULT         = 0x0000,
 | 
			
		||||
    TCO_DAT_IN_DEFAULT      = 0x00,
 | 
			
		||||
 
 | 
			
		||||
@@ -444,7 +444,7 @@ static void pxa2xx_mm_write(void *opaque, hwaddr addr,
 | 
			
		||||
            s->mm_regs[addr >> 2] = value;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* fallthrough */
 | 
			
		||||
    default:
 | 
			
		||||
        qemu_log_mask(LOG_GUEST_ERROR,
 | 
			
		||||
                      "%s: Bad write offset 0x%"HWADDR_PRIx"\n",
 | 
			
		||||
 
 | 
			
		||||
@@ -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(stdout, "", desc, sizeof(DPDMADescriptor));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,7 @@
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "hw/irq.h"
 | 
			
		||||
#include "migration/vmstate.h"
 | 
			
		||||
#include "qemu/log.h"
 | 
			
		||||
#include "qemu/module.h"
 | 
			
		||||
#include "qom/object.h"
 | 
			
		||||
 | 
			
		||||
@@ -71,9 +72,8 @@ static uint8_t max7310_rx(I2CSlave *i2c)
 | 
			
		||||
        return 0xff;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
#ifdef VERBOSE
 | 
			
		||||
        printf("%s: unknown register %02x\n", __func__, s->command);
 | 
			
		||||
#endif
 | 
			
		||||
        qemu_log_mask(LOG_UNIMP, "%s: Unsupported register 0x02%" PRIx8 "\n",
 | 
			
		||||
                      __func__, s->command);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return 0xff;
 | 
			
		||||
@@ -125,9 +125,8 @@ static int max7310_tx(I2CSlave *i2c, uint8_t data)
 | 
			
		||||
    case 0x00:	/* Input port - ignore writes */
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
#ifdef VERBOSE
 | 
			
		||||
        printf("%s: unknown register %02x\n", __func__, s->command);
 | 
			
		||||
#endif
 | 
			
		||||
        qemu_log_mask(LOG_UNIMP, "%s: Unsupported register 0x02%" PRIx8 "\n",
 | 
			
		||||
                      __func__, s->command);
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -392,8 +392,10 @@ static void omap2_gpio_module_write(void *opaque, hwaddr addr,
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
    case 0x10:	/* GPIO_SYSCONFIG */
 | 
			
		||||
        if (((value >> 3) & 3) == 3)
 | 
			
		||||
            fprintf(stderr, "%s: bad IDLEMODE value\n", __func__);
 | 
			
		||||
        if (((value >> 3) & 3) == 3) {
 | 
			
		||||
            qemu_log_mask(LOG_GUEST_ERROR,
 | 
			
		||||
                          "%s: Illegal IDLEMODE value: 3\n", __func__);
 | 
			
		||||
        }
 | 
			
		||||
        if (value & 2)
 | 
			
		||||
            omap2_gpio_module_reset(s);
 | 
			
		||||
        s->config[0] = value & 0x1d;
 | 
			
		||||
 
 | 
			
		||||
@@ -380,7 +380,8 @@ static ssize_t gpadl_iter_io(GpadlIter *iter, void *buf, uint32_t len)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p = (void *)(((uintptr_t)iter->map & TARGET_PAGE_MASK) | off_in_page);
 | 
			
		||||
        p = (void *)(uintptr_t)(((uintptr_t)iter->map & TARGET_PAGE_MASK) |
 | 
			
		||||
                off_in_page);
 | 
			
		||||
        if (iter->dir == DMA_DIRECTION_FROM_DEVICE) {
 | 
			
		||||
            memcpy(p, buf, cplen);
 | 
			
		||||
        } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,6 @@
 | 
			
		||||
#include "qemu/error-report.h"
 | 
			
		||||
#include "qemu/module.h"
 | 
			
		||||
#include "qapi/error.h"
 | 
			
		||||
#include "hw/hw.h"
 | 
			
		||||
#include "monitor/monitor.h"
 | 
			
		||||
#include "hw/sysbus.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
@@ -85,18 +84,14 @@ void isa_bus_irqs(ISABus *bus, qemu_irq *irqs)
 | 
			
		||||
qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq)
 | 
			
		||||
{
 | 
			
		||||
    assert(!dev || ISA_BUS(qdev_get_parent_bus(DEVICE(dev))) == isabus);
 | 
			
		||||
    if (isairq >= ISA_NUM_IRQS) {
 | 
			
		||||
        hw_error("isa irq %d invalid", isairq);
 | 
			
		||||
    }
 | 
			
		||||
    assert(isairq < ISA_NUM_IRQS);
 | 
			
		||||
    return isabus->irqs[isairq];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq)
 | 
			
		||||
{
 | 
			
		||||
    assert(dev->nirqs < ARRAY_SIZE(dev->isairq));
 | 
			
		||||
    if (isairq >= ISA_NUM_IRQS) {
 | 
			
		||||
        hw_error("isa irq %d invalid", isairq);
 | 
			
		||||
    }
 | 
			
		||||
    assert(isairq < ISA_NUM_IRQS);
 | 
			
		||||
    dev->isairq[dev->nirqs] = isairq;
 | 
			
		||||
    *p = isa_get_irq(dev, isairq);
 | 
			
		||||
    dev->nirqs++;
 | 
			
		||||
 
 | 
			
		||||
@@ -240,10 +240,7 @@ static void vt82c686b_southbridge_init(PCIBus *pci_bus, int slot, qemu_irq intc,
 | 
			
		||||
    PCIDevice *dev;
 | 
			
		||||
 | 
			
		||||
    isa_bus = vt82c686b_isa_init(pci_bus, PCI_DEVFN(slot, 0));
 | 
			
		||||
    if (!isa_bus) {
 | 
			
		||||
        fprintf(stderr, "vt82c686b_init error\n");
 | 
			
		||||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
    assert(isa_bus);
 | 
			
		||||
    *p_isa_bus = isa_bus;
 | 
			
		||||
    /* Interrupt controller */
 | 
			
		||||
    /* The 8259 -> IP5  */
 | 
			
		||||
 
 | 
			
		||||
@@ -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),
 | 
			
		||||
@@ -3142,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),
 | 
			
		||||
 
 | 
			
		||||
@@ -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(stderr, "", buf, size);
 | 
			
		||||
#endif
 | 
			
		||||
    /* Flush is unnecessary as are already in receiving path */
 | 
			
		||||
    etsec->need_flush = false;
 | 
			
		||||
 
 | 
			
		||||
@@ -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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1785,7 +1785,7 @@ send_response:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG_SD
 | 
			
		||||
    qemu_hexdump((const char *)response, stderr, "Response", rsplen);
 | 
			
		||||
    qemu_hexdump(stderr, "Response", response, rsplen);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return rsplen;
 | 
			
		||||
 
 | 
			
		||||
@@ -242,7 +242,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(stderr, desc, data, len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 
 | 
			
		||||
@@ -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(FILE *fp, const char *prefix,
 | 
			
		||||
                  const void *bufptr, size_t size);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * helper to parse debug environment variables
 | 
			
		||||
 
 | 
			
		||||
@@ -273,8 +273,8 @@ if sdl.found()
 | 
			
		||||
                         method: 'pkg-config', static: enable_static)
 | 
			
		||||
else
 | 
			
		||||
  if get_option('sdl_image').enabled()
 | 
			
		||||
    error('sdl-image required, but SDL was @0@',
 | 
			
		||||
          get_option('sdl').disabled() ? 'disabled' : 'not found')
 | 
			
		||||
    error('sdl-image required, but SDL was @0@'.format(
 | 
			
		||||
          get_option('sdl').disabled() ? 'disabled' : 'not found'))
 | 
			
		||||
  endif
 | 
			
		||||
  sdl_image = not_found
 | 
			
		||||
endif
 | 
			
		||||
 
 | 
			
		||||
@@ -497,10 +497,8 @@ sec:
 | 
			
		||||
        g_queue_push_head(&conn->secondary_list, spkt);
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG_COLO_PACKETS
 | 
			
		||||
        qemu_hexdump((char *)ppkt->data, stderr,
 | 
			
		||||
                     "colo-compare ppkt", ppkt->size);
 | 
			
		||||
        qemu_hexdump((char *)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);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
        colo_compare_inconsistency_notify(s);
 | 
			
		||||
@@ -538,10 +536,8 @@ 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);
 | 
			
		||||
#ifdef DEBUG_COLO_PACKETS
 | 
			
		||||
        qemu_hexdump((char *)ppkt->data, stderr, "colo-compare pri pkt",
 | 
			
		||||
                     ppkt->size);
 | 
			
		||||
        qemu_hexdump((char *)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);
 | 
			
		||||
#endif
 | 
			
		||||
        return -1;
 | 
			
		||||
    } else {
 | 
			
		||||
@@ -581,10 +577,8 @@ static int colo_packet_compare_icmp(Packet *spkt, Packet *ppkt)
 | 
			
		||||
        trace_colo_compare_icmp_miscompare("Secondary pkt size",
 | 
			
		||||
                                           spkt->size);
 | 
			
		||||
#ifdef DEBUG_COLO_PACKETS
 | 
			
		||||
        qemu_hexdump((char *)ppkt->data, stderr, "colo-compare pri pkt",
 | 
			
		||||
                     ppkt->size);
 | 
			
		||||
        qemu_hexdump((char *)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);
 | 
			
		||||
#endif
 | 
			
		||||
        return -1;
 | 
			
		||||
    } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -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(stdout, "net", buf, size);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (sender->link_down || !sender->peer) {
 | 
			
		||||
 
 | 
			
		||||
@@ -302,7 +302,7 @@ static int get_para_features(KVMState *s)
 | 
			
		||||
    return features;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool host_tsx_blacklisted(void)
 | 
			
		||||
static bool host_tsx_broken(void)
 | 
			
		||||
{
 | 
			
		||||
    int family, model, stepping;\
 | 
			
		||||
    char vendor[CPUID_VENDOR_SZ + 1];
 | 
			
		||||
@@ -408,7 +408,7 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
 | 
			
		||||
    } else if (function == 6 && reg == R_EAX) {
 | 
			
		||||
        ret |= CPUID_6_EAX_ARAT; /* safe to allow because of emulated APIC */
 | 
			
		||||
    } else if (function == 7 && index == 0 && reg == R_EBX) {
 | 
			
		||||
        if (host_tsx_blacklisted()) {
 | 
			
		||||
        if (host_tsx_broken()) {
 | 
			
		||||
            ret &= ~(CPUID_7_0_EBX_RTM | CPUID_7_0_EBX_HLE);
 | 
			
		||||
        }
 | 
			
		||||
    } else if (function == 7 && index == 0 && reg == R_EDX) {
 | 
			
		||||
@@ -1568,6 +1568,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
 | 
			
		||||
            if (env->nr_dies < 2) {
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            /* fallthrough */
 | 
			
		||||
        case 4:
 | 
			
		||||
        case 0xb:
 | 
			
		||||
        case 0xd:
 | 
			
		||||
 
 | 
			
		||||
@@ -1055,9 +1055,6 @@ static gboolean match_interval_mapping_node(gpointer key,
 | 
			
		||||
    TestGTreeMapping *map_a, *map_b;
 | 
			
		||||
    TestGTreeInterval *a, *b;
 | 
			
		||||
    struct match_node_data *d = (struct match_node_data *)data;
 | 
			
		||||
    char *str = g_strdup_printf("dest");
 | 
			
		||||
 | 
			
		||||
    g_free(str);
 | 
			
		||||
    a = (TestGTreeInterval *)key;
 | 
			
		||||
    b = (TestGTreeInterval *)d->key;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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(FILE *fp, const char *prefix,
 | 
			
		||||
                  const void *bufptr, size_t size)
 | 
			
		||||
{
 | 
			
		||||
    const char *buf = bufptr;
 | 
			
		||||
    unsigned int b, len, i, c;
 | 
			
		||||
 | 
			
		||||
    for (b = 0; b < size; b += 16) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user