From patchwork Sat Jan 5 01:51:48 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 209621 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 8427D2C008D for ; Sat, 5 Jan 2013 13:01:01 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8C3E34A262; Sat, 5 Jan 2013 03:00:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k38boAyhx4Q7; Sat, 5 Jan 2013 03:00:14 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 21AB44A129; Sat, 5 Jan 2013 02:57:22 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 470B74A044 for ; Sat, 5 Jan 2013 02:57:03 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZASxfrSpLqLN for ; Sat, 5 Jan 2013 02:57:02 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-gh0-f202.google.com (mail-gh0-f202.google.com [209.85.160.202]) by theia.denx.de (Postfix) with ESMTPS id 847634A057 for ; Sat, 5 Jan 2013 02:56:38 +0100 (CET) Received: by mail-gh0-f202.google.com with SMTP id z10so1516632ghb.1 for ; Fri, 04 Jan 2013 17:56:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=omDdddDpM63SOl/b08HxhXGFfzayHdh2geWcgrOPSxc=; b=gRHCJTWMuVPE6BDzpEDafSpSKnF+rFgBQYyWVsgknQo+uWz5RIld/BGLofUPE5IfqX WDKY+yq2Nm0odk6qT4VOGcT97Q48p/QWVCtG/CJrYfEqbAebeGFcjD9T9cAGBATAERQg 6o3b6CwKTxRCAAlsimW5D0J9oNGwlZHdi7eL+VvZT+RWBcpLOE21ZknaMSMKziyllt3d kNI2l8rD3SPzKbHQzHv91j6TOg/bGDpjieMv+3NRf/fu+mYH04aGrz12eh+vkfEJ787x Gp0IAvPJ2PkoMtyLBxvh89Wb/HNSgA9Uw8Ozip/OquAuX+fiYAmZtPIJ34n8lMt9O1oq W8ZA== X-Received: by 10.236.193.106 with SMTP id j70mr28695703yhn.11.1357350997422; Fri, 04 Jan 2013 17:56:37 -0800 (PST) Received: from wpzn4.hot.corp.google.com (216-239-44-65.google.com [216.239.44.65]) by gmr-mx.google.com with ESMTPS id i63si4528718yhk.5.2013.01.04.17.56.37 (version=TLSv1/SSLv3 cipher=AES128-SHA); Fri, 04 Jan 2013 17:56:37 -0800 (PST) Received: from kaka.mtv.corp.google.com (kaka.mtv.corp.google.com [172.22.73.79]) by wpzn4.hot.corp.google.com (Postfix) with ESMTP id 52B4682004A; Fri, 4 Jan 2013 17:56:37 -0800 (PST) Received: by kaka.mtv.corp.google.com (Postfix, from userid 121222) id 3254616126D; Fri, 4 Jan 2013 17:56:37 -0800 (PST) From: Simon Glass To: U-Boot Mailing List Date: Fri, 4 Jan 2013 17:51:48 -0800 Message-Id: <1357350734-13737-20-git-send-email-sjg@chromium.org> X-Mailer: git-send-email 1.7.7.3 In-Reply-To: <1357350734-13737-1-git-send-email-sjg@chromium.org> References: <1357350734-13737-1-git-send-email-sjg@chromium.org> X-Gm-Message-State: ALoCoQmgjZoKPSsKq0vPhQKvdABQ/bFwj2mQ0a83Fz3jPysoGfzA2Py0vwN099B3gG7o2pdxhRf7TtXJM9JIwLjrbELyoqQU3sVDJG+WqHkxHkScXDPqIivMMv84X+OdZWIH5sF2H5ZXUvzZ4UWPbp168UxFn0kZlCMl0LkOmnt/HIkDufIgH7wVww496pxZLVKboF2EzTTD Cc: Joel A Fernandes , Tom Rini , Vadim Bendebury , =?UTF-8?q?Andreas=20B=C3=A4ck?= Subject: [U-Boot] [RFC PATCH 19/44] Add getenv_hex() to return an environment variable as hex X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This conversion is required in a number of places in U-Boot. Add a standard function to provide this feature, so we avoid all the different variations in the way it is coded. Signed-off-by: Simon Glass --- common/cmd_nvedit.c | 15 +++++++++++++++ include/common.h | 13 +++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-) diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index d646d90..d6d5eea 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -309,6 +309,21 @@ int setenv_hex(const char *varname, ulong value) return setenv(varname, str); } +ulong getenv_hex(const char *varname, ulong default_val) +{ + const char *s; + ulong value; + char *endp; + + s = getenv(varname); + if (s) + value = simple_strtoul(s, &endp, 16); + if (!s || endp == s) + return default_val; + + return value; +} + #ifndef CONFIG_SPL_BUILD static int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { diff --git a/include/common.h b/include/common.h index 8ecaf56..cc6bf5e 100644 --- a/include/common.h +++ b/include/common.h @@ -341,6 +341,19 @@ int envmatch (uchar *, int); char *getenv (const char *); int getenv_f (const char *name, char *buf, unsigned len); ulong getenv_ulong(const char *name, int base, ulong default_val); + +/** + * getenv_hex() - Return an environment variable as a hex value + * + * Decode an environment as a hex number (it may or may not have a 0x + * prefix). If the environment variable cannot be found, or does not start + * with hex digits, the default value is returned. + * + * @varname: Variable to decode + * @default_val: Value to return on error + */ +ulong getenv_hex(const char *varname, ulong default_val); + /* * Read an environment variable as a boolean * Return -1 if variable does not exist (default to true)