From patchwork Wed Dec 13 20:44:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 10110897 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0E91C603ED for ; Wed, 13 Dec 2017 20:46:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0436228C4E for ; Wed, 13 Dec 2017 20:46:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ED47C28B7A; Wed, 13 Dec 2017 20:46:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9E3EB28C4E for ; Wed, 13 Dec 2017 20:46:44 +0000 (UTC) Received: from localhost ([::1]:37566 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDvP-0005IG-PD for patchwork-qemu-devel@patchwork.kernel.org; Wed, 13 Dec 2017 15:46:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39316) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDtc-0003zE-Sq for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:44:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDtc-0006EM-0X for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:44:52 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:42748) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDtb-0006Dx-Ra for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:44:51 -0500 Received: by mail-qk0-x242.google.com with SMTP id a71so3674503qkc.9 for ; Wed, 13 Dec 2017 12:44:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gEGEw7HH1pMpgjbhJ0iGAQx8Km+gGIt/ug7r4KNKPCs=; b=Mn8IIGszJjOUFdEPRPT26rVbyuPvupOvbjQrumgJeEjYQv/oZjMaFctI5yOPnxSl9Y mKpiZ8BPmArS+qHoAJZorBImPpwxTVP4RaA6poDtQMS/3uGKtiKNE+UiUQMDjEJ8xi6Q q7qIFsjZKpfJu0lWukWs9lJCKzLZBWu5e7CfrlifT9B2zR7enxf+447C0IKsI2U21TTG 99bXzNFB1xZ6EFDiSEGnpQO7t/yQyjq84Qinb6SFhsG2U9cbcz4xZpBskKjzBNeZXySF dpNNFpr95mPiE68qOYftsyO2udOiUvobUCQjAsS8rR6WoZQo88xGQpFhQxOM7rqe6Nqu i+bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=gEGEw7HH1pMpgjbhJ0iGAQx8Km+gGIt/ug7r4KNKPCs=; b=UOjjpGQ5RWTOCuYAQDtULjIWuB6pHwIfuc82nalVK2xzsREBL6Cg1IolwXz8ubwEBi lfC68pqq/E4oAqPj6V7HQiVcPvNs7vHcn2RgBqNEX2UBjSBS2ATa6c8znt3rfW61Sie6 LdAOh9deykUdKUNXBRe9wzS0ATsmD+546g4KHSEEwONacLRGOiS6/T0qbZM6enwNwDyT BGQVAT2nOYkBl5keFYyWW2J7KIondMb3ad5ScaJc9m0OeIdkt+ANxFW11qUxO7Dn/ffW iIbDfqoKzehxVr+F5l5wcyhi5FMbpE0e4OjcuK/V08icDGFvJTbUlrJmsL3M9zu6z1T9 hV/Q== X-Gm-Message-State: AKGB3mIqbeOWuWWpgsTH9RB2WufoXIzHVZabkTrpSxbE44oE89CeqIur 4U20Db+dq/9x5bH6dFsqZf4= X-Google-Smtp-Source: ACJfBouOuvdnJsxErO3Z20YJUAlzwlzZ2Nq8Oblyj2J4ncG8Az6HLKQcoLut7rExrT1Pd1wPV3Qq0Q== X-Received: by 10.55.78.15 with SMTP id c15mr7118105qkb.105.1513197891274; Wed, 13 Dec 2017 12:44:51 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id n64sm1507938qkd.97.2017.12.13.12.44.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 12:44:50 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Isaac Lozano <109lozanoi@gmail.com>, Thomas Huth , Markus Armbruster , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Eduardo Habkost Date: Wed, 13 Dec 2017 17:44:26 -0300 Message-Id: <20171213204436.5379-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213204436.5379-1-f4bug@amsat.org> References: <20171213204436.5379-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [RFC PATCH 01/11] util/cutils: add qemu_hexbuf_strdup(), yet another hexdump() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This will be helpful for tracing() API. Signed-off-by: Philippe Mathieu-Daudé --- "yet", so probably duplicating a better way to do it :| include/qemu/cutils.h | 3 +++ util/hexdump.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index f0878eaafa..2966cd5d64 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -164,4 +164,7 @@ bool test_buffer_is_zero_next_accel(void); int uleb128_encode_small(uint8_t *out, uint32_t n); int uleb128_decode_small(const uint8_t *in, uint32_t *n); +char *qemu_hexbuf_strdup(const void *buf, size_t size, + const char *str_hdr, const char *desc_if_empty); + #endif diff --git a/util/hexdump.c b/util/hexdump.c index f879ff0ad6..cabf33b2b8 100644 --- a/util/hexdump.c +++ b/util/hexdump.c @@ -15,6 +15,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" +#include "qemu/cutils.h" void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size) { @@ -47,3 +48,21 @@ void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size) fprintf(fp, "\n"); } } + +char *qemu_hexbuf_strdup(const void *buf, size_t size, + const char *str_hdr, const char *desc_if_empty) +{ + const uint8_t *u8 = (uint8_t *)buf; + GString *s; + int i; + + if (!size) { + return g_strdup(desc_if_empty ? desc_if_empty : ""); + } + s = g_string_new(str_hdr ? : ""); + for (i = 0; i < size; i++) { + g_string_append_printf(s, "%02x ", u8[i]); + } + + return g_string_free(s, FALSE); +}