From patchwork Sun Sep 24 19:57:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 817982 X-Patchwork-Delegate: agraf@suse.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3y0dYd1t6Sz9t3R for ; Mon, 25 Sep 2017 06:07:49 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 06E74C22139; Sun, 24 Sep 2017 20:02:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 9EA7EC22169; Sun, 24 Sep 2017 19:58:58 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3DFB3C2214E; Sun, 24 Sep 2017 19:58:20 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by lists.denx.de (Postfix) with ESMTPS id EF168C22114 for ; Sun, 24 Sep 2017 19:58:16 +0000 (UTC) Received: from workstation4.fritz.box ([84.118.154.110]) by mail.gmx.com (mrgmx102 [212.227.17.174]) with ESMTPSA (Nemesis) id 0LlXnX-1dP4Kv1K11-00bLTl; Sun, 24 Sep 2017 21:57:34 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Sun, 24 Sep 2017 21:57:15 +0200 Message-Id: <20170924195716.3433-17-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170924195716.3433-1-xypron.glpk@gmx.de> References: <20170924195716.3433-1-xypron.glpk@gmx.de> X-Provags-ID: V03:K0:Hp1qQ48GV4gEFWVFxXyqMdqqqyLyWgHZPZHBETSm9bJEEYojLD7 gZudPPzgA4HBzaQJRU3tkoQ/rNs+EKfk9cBALO59u43nCnn4qsowLUYZjt/hWiOj+oXILdw hmtzfrvHy23R7NGBmBDa5lN8behGBPIT9pJLyYuYkPx6NO6Pe2SRQeoHh9RcBBfb+Bjwfi4 L/xTDb7mPYJJV0A2kbABg== X-UI-Out-Filterresults: notjunk:1; V01:K0:KQ6/Ri7Fq+8=:DmELr8cdgDkXhfOiJa70zP Je3EA7hwHhrcstpKLc50TA0w5FLGyTs0R44QGsoOkA3IsN0N8C79jobx1T/FiEJh9mQ0Oao84 rhloWFAbnzSYsumI+phsYqozHCgHU3eR5JBGWoKWFXxzFyQaXsQPX0Lq0N342vVLdp3dyw+v7 bNO1oSIJdzgtIToX7PqQEwYzox7RHyYWDCu9ARULlpPnaiy9NyXpaqw6X7RPObamKpPoRciAk gjkerqAtIeQmasQHQrTpICxznBuVlunj+HOZavABY80rXkqd8a1wszon2GSRX8RQJu8v4hhFY lRhFVG0DYsw4EIa7BoliPz/jYeeUpGjWSHmhV+pNp+B3rriQHumA1sNcwCl8EZgewcSHIaDYW KBgZ3WnJtm06zEduCRy/cpYg02i1kVacsutmdmy87VluMIe3vNKRG1DlpqgIRI6644T9ucMrx sTDFQSxIZQn5sxz29mzn7VqlsCMOVGV4NDAz8uxhCqaVo5KgzXDJc6735O9tSibwWLldI+/oN jKAB8NP9KAUZC5v904S8x8voOii2t6RKKk59M6T3exqM3b1mnQX3T/V5dtQCIflK7FBqdk1VL Ow4J6ynvUIGqpz0Z2N7F/G8PMPeLWAGBLBhq3SL1XzIpsf2OqCHsU2WGsAI4aCSdmFRIOgFUk 757+vQ+Rx3GF62NTtKAor+14okmL/5N6nQ3NIcyX0waaoQPU0EAlpJXdPcV0Tk+wtMvXvn5HD qJ2ivDYlxrSAX1wGfRJHu6ChBSep9PHKE7MYqZdLDGM7oXFw+txy91LjsEEOLCvAOX7LOzMbM 7a8puHiJX9PBSMpAe3V0i+g/Hc62Q== Cc: Heinrich Schuchardt , u-boot@lists.denx.de Subject: [U-Boot] [PATCH 16/17] efi_selftest: allow printing MAC addresses X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add %pm as format string to print a MAC address. This is helpful when analyzing network problems. Signed-off-by: Heinrich Schuchardt --- lib/efi_selftest/efi_selftest_console.c | 41 ++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/efi_selftest/efi_selftest_console.c b/lib/efi_selftest/efi_selftest_console.c index 7b5b724a61..840e2290c6 100644 --- a/lib/efi_selftest/efi_selftest_console.c +++ b/lib/efi_selftest/efi_selftest_console.c @@ -12,6 +12,37 @@ struct efi_simple_text_output_protocol *con_out; struct efi_simple_input_interface *con_in; +/* + * Print a MAC address to an u16 string + * + * @pointer: mac address + * @buf: pointer to buffer address + * on return position of terminating zero word + */ +static void mac(void *pointer, u16 **buf) +{ + int i, j; + u16 c; + u8 *p = (u8 *)pointer; + u8 byte; + u16 *pos = *buf; + + for (i = 0; i < ARP_HLEN; ++i) { + if (i) + *pos++ = ':'; + byte = p[i]; + for (j = 4; j >= 0; j -= 4) { + c = (byte >> j) & 0x0f; + c += '0'; + if (c > '9') + c += 'a' - '9' - 1; + *pos++ = c; + } + } + *pos = 0; + *buf = pos; +} + /* * Print a pointer to an u16 string * @@ -146,7 +177,15 @@ void efi_st_printf(const char *fmt, ...) int2dec(va_arg(args, s32), &pos); break; case 'p': - pointer(va_arg(args, void*), &pos); + ++c; + switch (*c) { + case 'm': + mac(va_arg(args, void*), &pos); + break; + default: + --c; + pointer(va_arg(args, void*), &pos); + } break; case 's': s = va_arg(args, const char *);