From patchwork Wed Oct 5 12:18:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Barker X-Patchwork-Id: 1686323 X-Patchwork-Delegate: xypron.glpk@gmx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=sancloud.onmicrosoft.com header.i=@sancloud.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-sancloud-onmicrosoft-com header.b=GVvy1c15; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MjDCv0lHwz20Pd for ; Wed, 5 Oct 2022 23:19:54 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5AA1A84DEE; Wed, 5 Oct 2022 14:19:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sancloud.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=sancloud.onmicrosoft.com header.i=@sancloud.onmicrosoft.com header.b="GVvy1c15"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 164CF84967; Wed, 5 Oct 2022 14:19:07 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from GBR01-LO2-obe.outbound.protection.outlook.com (mail-lo2gbr01on2123.outbound.protection.outlook.com [40.107.10.123]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E1C0F84C01 for ; Wed, 5 Oct 2022 14:18:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sancloud.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=paul.barker@sancloud.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A82b7QHTaHOyga1feebTbJfCxaX8x2md0BLF/qS0gBgmwLylpgP7BkPH30o3ZJ8Y7wRwpY8vmbHBS4gvAo9gr8EBHQVtwTo/3/QAd58h3xfACKE4B1qw2iFvkfIgdt1vxd2Vq057g6cg+URbMXnbG3hAytulrzjW1QTwunym4p/3ac/FWErTJBOgZfy4aSpkrrnuzVIxIcCvDGdYMG/v7MGc2HCYm42pMdR8UJV05lhv/i/V6QHSlH9kUzLT08zkhOoo3LiwFxcpWJy0Wj2dGxxO6lsM55acQrna85iOF1OD/7aTaPag4UJpCpLvj6F4fJSip1uDurcqOJ18Bn4Tow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z/ejYyc52wLmDYHBNJuns+7GgNRMViVDoMqw5PahVL8=; b=ieAto1zfDiOnoTeQZMOzkeR+EXtQc+05lPutAnjN8bMwjlBjFyz5+oz8twD9WE/AUVPm1PnGZVVyvV99/YLGkmoyyBVY9j9Kyq3sxqmZwTKlFIAa7BMzUScAMNN+bogfEE8mJMfX2EABfeSlRie07iADcYgzH86NFYr1oPMGjnvoDLdLeSPQ2bhuyUxmvAlIzHsSlTrUVIrJ5DM6TxqVHgu7yu9gaDAqIEm2HakPnsdOIrtahtJcwdfSnZPUZxp653TdXTFdH5R62WDW5tOo++TqRDmuQtX2Lt/ygicmLfNz4ntxjEUXVBgBVkrHKPpuLHp14g33GC0T7LtR/cLA7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sancloud.com; dmarc=pass action=none header.from=sancloud.com; dkim=pass header.d=sancloud.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sancloud.onmicrosoft.com; s=selector2-sancloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z/ejYyc52wLmDYHBNJuns+7GgNRMViVDoMqw5PahVL8=; b=GVvy1c15csGuz8W2Folsl3oe/kCTBvwQENmAFNdq69EN9nqNJRHah2UZ+MO/uCcS2Zub5UZYG2SiutQDzkZILMlgwrr67VGH6b0Y/db6wo2aRPppOatBGOUtIKjKwcInx4griBpHYd3Rj2LyYfJjP1FaDH7ITWZl5RmC71/5dso= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sancloud.com; Received: from CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:61::19) by LO6P123MB6536.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:2b0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.32; Wed, 5 Oct 2022 12:18:55 +0000 Received: from CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM ([fe80::11d5:40af:9060:6b08]) by CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM ([fe80::11d5:40af:9060:6b08%6]) with mapi id 15.20.5676.031; Wed, 5 Oct 2022 12:18:55 +0000 From: Paul Barker To: u-boot@lists.denx.de, Heinrich Schuchardt , Ilias Apalodimas , Tom Rini Cc: Paul Barker Subject: [PATCH v4 2/6] efi: Add string conversion helper Date: Wed, 5 Oct 2022 13:18:35 +0100 Message-Id: <20221005121839.3938771-3-paul.barker@sancloud.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221005121839.3938771-1-paul.barker@sancloud.com> References: <20221005121839.3938771-1-paul.barker@sancloud.com> X-ClientProxiedBy: LO2P265CA0191.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a::35) To CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:61::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CWLP123MB2241:EE_|LO6P123MB6536:EE_ X-MS-Office365-Filtering-Correlation-Id: 4eebb260-e5c5-486a-b83e-08daa6cbc608 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uz3CYZjbbRyJKiu9pA8s2foL6tX8CRVr924L5IYbqD0JVwmatyF/ZVriRHjc+TDOKodRbSbsJ2MsvbkgHHnf3Gj2fLUrhb8KcFfAbjWxsYZP+9zlQsu32kKhZM4wOYCbszGrqN/eJPXkzsY+Nvr738KhnYwtHwKZYRyqBOz45TFEc+Oe+VrRLAPdxM8C04UtHtazc1phlds0nNz8tRtDqqFqTvwYi6zuF08CUYcddSGau1DilUI9BwYgJi/Y0CjIMaRcF1JUSqwixkUKLxESdvAUa4f/+zGitrkMn0P6qQ18pES9KdtTuQACvhBGcTUcBakkh8X95zczRsednM9g5uIjQmhOQcxbg0SB0JLIju/fi4tPSSVLi65kPKUgrh17D/eksMtObtof0zKRrOtv07zsTw+UMXz7chwsFXnt4gEA39vivSzv82Lx7mNipBWp0u49oGSDRfPZXfiqDZpxoxQT7M++ZfcWzQIJnC/vzpG8Kr+P8nP/y5qebPDYnFO61zcQwUXY5fwKBZWzd5WoVmN/Yp5MUay715YtxmKYsjbPE4fVrlfG5Zt65g0GaAl4pJ24C+B+46nSpIJS5uSXJIJ7efBpX9JqrwKJOi7nyqpwk9ZeS12g4cvNhnc76DcI47rABQeyEZmt9soWw8HVkNvp9dbhf9xDl4HHJ7dVn2yEr0la1eReqy/wp5nL5E2QcN01eBqjzzpc9BlxozkOSp4WQch+wxmUndTcNAEifBxWLegGy9KymARSbnLbVNK1JiMCMtPvgLOnpc57+EPLH0jyWYAsVc/t0xInJAO1sOk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230022)(396003)(346002)(136003)(39830400003)(366004)(376002)(451199015)(36756003)(2906002)(6486002)(66556008)(66476007)(66946007)(8676002)(4326008)(38350700002)(41300700001)(478600001)(8936002)(44832011)(110136005)(5660300002)(316002)(2616005)(1076003)(83380400001)(52116002)(86362001)(38100700002)(26005)(6506007)(6512007)(6666004)(107886003)(186003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: v2AF71oQpfh+REkO6KV+BK2Nl1A+KG/Ki9chYh+B0tonlA/89AdTjkoW3W+T2jNiMPZiU+vfzI+BNEt2FAc4EayOhZFSlaPlzSSd2bYdLCFs66p1QCWWw3Xb5aYvChNIHO+/w0u37X/iz0qLEL24st+CDVHCnv/NwY3ZamcjphUBp1YpyBZI1wOjoqQ5P0T7DUmqQ2rduLftx09xsSS8vNSUgix2rsBXIRt5iYm5pfAf3pJmdUUDZ4JVWFmRIL19XNmBdzACkVD6YC3jrR/Y5G9ZWUbHQNWzYv4QRkHLJTwzRckFAa/f6YNTdKSAH8gWwUWzkLRMunfB01OqWJ8OZvToyA3otJcXV2G/z66mUBiQGXZxOMZRyHm258FVErB7dHP40KVR9PapSt1caNFAJLJXzCcUpXb8tSCUtOha+knEu/GzRE/smB6zQsFQ+7VIX3vp8q8vao8I0UzVlUQLjMZQqYU26N+55aGqQZ4mkFqmwpYADe1O/C//ZxyKNtAjgzk1QkNbF8ZHt20qQ22El2GJpIov3npx/KXUIWGwzhIQMODyze47/ljsvHTyOQjCd6297EujOvAZZgT2sp4fdp6PF0DFqQ+XnLUjO31QcXizn2PMUNYzYsuAyBy+yNe7Eoqt/D5x4owYRfQQS1ki4DztWDl0A6HuCcCfRJUUGlLhjQZJ6le2JOOYp7IFGmLiyZYmLgOMU+u1+Uuc6liIh5WL8BbpQko+pQXcipDG/CEIZc6ftTUl9tOAS5Wqnr7jqUlYLaatoOxb60NoNKA4cz9aMk/br9t0fL7kFO96000uiexbGjoSlXhLvu58MWtJcb/0dmfjPaNwpoIHOkZCVmRLfTvrHx9lRxxI1fELsFvpkvdLStcTt7Vb+5QCbBHEjeCadhD4OOgU4DLiDLaYVpnI68HxA0xp7xQeW81p7M+RuFxSbvbw9QL6i1WXvAh8sBZtuMgKPvnOtvS/fbEHpLt2Pg0siJdrAlaXnLlKiYp98L7rXZRUo8RuWqzcUdmdwzUVBY2V3BPFX+H/JPG6E9stsHQ3LEAcfLcnXDQ06YWlQk7+vtariEgWoQCLjcJzu9v2MhF+dwAMryY/JhWV28OKrg6AI+LWzKZAQF9p27oXFvlAWAhv1j41z3+QBzQAjOOFFDiJAs9SL7Fhkuafas/NQHUhvzZkNY+0sY4Au7mDjNwNexcIUYlCKQdfA8FYaGsYfaEiXWQC0J6ZWZmkgwdjiMhkj4GmvvE9KgSeiXzcWh3jVigDrelbc6RCgrXHuIYUT9xJ3PPZPPEYrxM9y21/nUMkul7QQQFsTrWUuTr7GPquViBZAFmi+MZgP4Rb480DHV1KIjqMKAblvBjZlVkBGD5NdUBs0hJe3JKYX1eMtW8pswk2uBhuSoRcu7QmG/qxTf6NSZ8m+X2TjqgOKqgD2QFJdLi1IdWbkhf7ci7RoDBHtLrpBv8hnEOyeVNwAXKFuEv+afMHUaxMa8O+3Q854A3MvLwPswj7ww9OInYpS2kXVl0cH3sn32Ku2fXjQJAh6eRSmwheFT9vnnvt/gerdqKo5T9zxPrT+2V20DxVV1ILtwzG000uTPQAeKFTjtmZD8c3AR14iC5fwqgF/Q== X-OriginatorOrg: sancloud.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4eebb260-e5c5-486a-b83e-08daa6cbc608 X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB2241.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2022 12:18:55.8628 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 840be37c-244a-450e-9bcc-2064862de1f4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +UlBXWLKhI48oyEun6SFblzah+a5U8RkJgxKN8V1jCXLTKtUATzTvth7bMTstZoDr28eQmtyapK9zhr5lIcsT6UrpfnEqL8MRFRhRurH66g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO6P123MB6536 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Signed-off-by: Paul Barker Reviewed-by: Heinrich Schuchardt Reviewed-by: Ilias Apalodimas --- include/efi_loader.h | 3 ++- lib/efi_loader/efi_string.c | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/include/efi_loader.h b/include/efi_loader.h index 545ba06d9466..4dbbb2d3a06c 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -985,9 +985,10 @@ struct pkcs7_message *efi_parse_pkcs7_header(const void *buf, /* runtime implementation of memcpy() */ void efi_memcpy_runtime(void *dest, const void *src, size_t n); -/* commonly used helper function */ +/* commonly used helper functions */ u16 *efi_create_indexed_name(u16 *buffer, size_t buffer_size, const char *name, unsigned int index); +efi_string_t efi_convert_string(const char *str); extern const struct efi_firmware_management_protocol efi_fmp_fit; extern const struct efi_firmware_management_protocol efi_fmp_raw; diff --git a/lib/efi_loader/efi_string.c b/lib/efi_loader/efi_string.c index 8bf1e493b89e..e21e09c94617 100644 --- a/lib/efi_loader/efi_string.c +++ b/lib/efi_loader/efi_string.c @@ -8,6 +8,7 @@ #include #include #include +#include /** * efi_create_indexed_name - create a string name with an index @@ -41,3 +42,26 @@ u16 *efi_create_indexed_name(u16 *buffer, size_t buffer_size, const char *name, return p; } + +/** + * efi_convert_string - Convert an ASCII or UTF-8 string to UTF-16 + * @str: String to be converted + * + * Return: Converted string in UTF-16 format. The caller is responsible for + * freeing this string when it is no longer needed. + */ +efi_string_t efi_convert_string(const char *str) +{ + efi_string_t str_16, tmp; + size_t sz_16; + + sz_16 = utf8_utf16_strlen(str); + str_16 = calloc(sz_16 + 1, sizeof(u16)); + if (!str_16) + return NULL; + + tmp = str_16; + utf8_utf16_strcpy(&tmp, str); + + return str_16; +}