From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web08.14431.1653208714441846374 for ; Sun, 22 May 2022 01:38:34 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=SbNlDGpB; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: jian.j.wang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653208714; x=1684744714; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tZhFHVkundJ6KsRoVf/E7i2AhO3tmIs1BComsqdatWg=; b=SbNlDGpBMOlrlUaaDTPljfP0pqCVO5EZ2e0wzmQtHusqAS51wS1GvhqR ybqyp/W0EjNtdNKThJWoHj0iiv63stWOPLd6eBcUueYcg4GD+M/Avej0s 6GE7C66IDApQ9r8CixrTzB5ecbUYQYKDjTFPWpSADTVhxzAIG9WHfCHxg 2zWCjswsjc27EZFQI+7bN0lvREL5zU88ePobQ8LEcsZG7/eIwOgmm+xgf ockDF+qwX4xqz7QEtnuAeKA3nsgKUUD2RKwjQNhrZGSyxueQVX/5P3BUE ToBmWbugKuHcRcjZUFFKGJZ27AzgrsqdRroyu39Wac+bVBMwOl7d+UT8c w==; X-IronPort-AV: E=McAfee;i="6400,9594,10354"; a="252845566" X-IronPort-AV: E=Sophos;i="5.91,243,1647327600"; d="scan'208";a="252845566" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 May 2022 01:38:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,243,1647327600"; d="scan'208";a="628848050" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga008.fm.intel.com with ESMTP; 22 May 2022 01:38:33 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 22 May 2022 01:38:33 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sun, 22 May 2022 01:38:33 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Sun, 22 May 2022 01:38:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jqBq6l9TPYcqOgrZXfng/PZ7gQM8hz96BiVB/pOWbzgujFGgvF4SlgZnru4bzPyM+nIsouCevwQfAsqYuA5FxZ80J5DJIOhXEFC4WiI8M5RWiAQs5fqi7ntgY1+g155xiD6Q/y+0QHTn4Fkn/+tTvkD/BZmCdFngTKCCb4dGpfb/l2yDZY99662uCMA+ACf/mzVIKk8an1hg5aEDWM3dsKUcEfv8ZM+vUVEqr2Cxn1bktPs+PJ9XaHAIknWAFLftXDXUbObK83PPmCU1uQn1TkDI7udCJ5gtzhzHybQ39l6noxUp/VHsr/rB2MjH0AWDTc891WbhpzQOE8vHWoeQBw== 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=b0G4UpRSk+glKRS4Hj/LBROdPjUUITczbA9vUBJqzfs=; b=Ix9Gb18Kl3DnYbx/yUYdLCnC7qNe9XCbww/LQOFHuPUoFcKdHYALQUSUNLWD5V1aA0OJ49a2p6UsUt4e5WGBWpYicPbo5NKnwtyExBf9stcPQYoYbBALrQFLyqqR2E8HuxOKHEXfL9ogcC9i2xz7rEpvpzCfzUyfcunGG6rYff0Rm9vh0UeE7lLzyCcbpSGJZBDG7s1IhWOAOx7RBXHnjusYP6niObStSBA4nkDu7WP2EAftmjUswbpsMCUMBd1z0f3gT4vT8UaXpZMvP8XmtJ3EbuKZWU7AlbQXvbFc9WtHTSbdbh8JKWEPZuV84Cil7kRfGo264ldVps5a6HKXTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4945.namprd11.prod.outlook.com (2603:10b6:303:9c::8) by DM5PR11MB2025.namprd11.prod.outlook.com (2603:10b6:3:8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.19; Sun, 22 May 2022 08:38:29 +0000 Received: from CO1PR11MB4945.namprd11.prod.outlook.com ([fe80::a420:db2c:31db:7906]) by CO1PR11MB4945.namprd11.prod.outlook.com ([fe80::a420:db2c:31db:7906%9]) with mapi id 15.20.5273.022; Sun, 22 May 2022 08:38:29 +0000 From: "Wang, Jian J" To: "Vang, Judah" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Mistry, Nishant C" Subject: Re: [Patch v2 07/28] MdeModulePkg: Add Null ProtectedVariable Library Thread-Topic: [Patch v2 07/28] MdeModulePkg: Add Null ProtectedVariable Library Thread-Index: AQHYW/O4Ppo9iqKxFE+qq/V6WtW1Sq0qtXgA Date: Sun, 22 May 2022 08:38:29 +0000 Message-ID: References: <20220429180430.3292-1-judah.vang@intel.com> <20220429180430.3292-8-judah.vang@intel.com> In-Reply-To: <20220429180430.3292-8-judah.vang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.401.20 dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e9f2eeb7-c479-424d-a927-08da3bce728c x-ms-traffictypediagnostic: DM5PR11MB2025:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wpEcbQRrmwJQY00uz/icbz6Eg+RCSYQ7GN0d+/PB+aFFZnEN4Nw8sm3cIhqNxTNy2uvQkKvnGRBGgCNjv0sg4jcwWuwaJHI2koyC+wrKjbjyKuW2SqT8bX4sEqYoqFwwibbqQgiRcKR97ujazKyeci9MWPmeKarhMefrn4XqFKIuDxSXirbWX1DG0sOvFcdh6590iSAkWqE6AHXrPjuW07zEXKs5R7hbIwWZb6hj19SJo7VweY3qUgNcqyOQrJQxHfJn9S8L/CEhoOmzGQVgvrP8ke3z+A+31SFpDb48rDlFkNP6lYVNH0saLohqQgRvlKC8DN3HtCz1ptP415SfE7PqzOenEcHbBi+6mjcmSDuyAeKI3CxUVMHQ1AddTAJtJzsQDMDbCRZmQqn+cRomylgnK+Gd9RLuMo9+n00wZnzura71dRM+wO8zX3kyvYBBVq2Hn5dcQ07fAR/bpvDi3PHS9XvmZWDa87V85S5g936H+ItDG7wFuIjCDd2qtAP0BcpvxX9odUnlSP6X+5fm8WXGSh9u748MAcWWolcCIf1fApWDCr3Sjox/9Emmjpeu+IFLgGPcIALsXpNDXdZWZRhFQvJE7/FCwbTgz9COPOXdZDzdp5ocEtbWoxQfwS1wdeljzWafbdumm+gz4LCsJm48B7pVfgzpYsD6tHew9nKtrazkIsiE0EzQT4+swmqUFhnmd6ukBsVPZSgvr4ooodQvfKyUIFYC+PU4yiWoosA4RtIQiIIpr3bnoJzxUFneQzk5afrpcfATc9ziFKdwl2Nt2dStsOMEQDrOOcstKt0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4945.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(64756008)(82960400001)(66556008)(38100700002)(33656002)(76116006)(66446008)(66946007)(66476007)(5660300002)(122000001)(8936002)(86362001)(52536014)(508600001)(8676002)(38070700005)(4326008)(966005)(53546011)(26005)(9686003)(7696005)(6506007)(110136005)(316002)(54906003)(55016003)(2906002)(71200400001)(30864003)(186003)(107886003)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Y3GYr9MvOiPtk4HR3KLb7KrmNOjrwHrNJsSQHpUfQBjGANFqE98QzoHYSGYI?= =?us-ascii?Q?ZJ7rXcMamwW1gHK2dY6yW2HftafGIccC2gU70pqLnNFaydI7oG5GrXQ4Si61?= =?us-ascii?Q?qNIrZcpu8iuVimULX86thjBm9kBZIBCq0/cgFSUhyXrNNpxyZKe5ULiy7yBD?= =?us-ascii?Q?bPVhvVGrRHWlNQi1GdFr/PkjfBnQI7CHYKdGBEewrYo5qY//eRMk5W9CUZ/h?= =?us-ascii?Q?nozsXHcbNk83mS3D8/PN6LQAiEMoLvyxys+Vrip9Txtpp6XKYuoDC5tG6Aw0?= =?us-ascii?Q?u8QOQeYcaLNYiumNe5mxjtzOGugcvApp4tsfLR7/5CZrrWoepYjT7JaB8e24?= =?us-ascii?Q?P3PJawvwosG0EGuSMBkFF2EGKUv5KtV97PNa+dJR2cwacJy0mEx0oHMGjCRY?= =?us-ascii?Q?lBXJdxSRD2xZWduPQ1YMQVffaIQSoCBLGPMPUsk8DAM42WoVmZ6p6OTg8DHS?= =?us-ascii?Q?kYGOh3pAFk/O//tc27GoXuHG4AcQxCCD2S/uGOlOBhKnxNUD6sLvFF/r9axY?= =?us-ascii?Q?D+7NVn9dWa+qx78ZXP83HakKpSNtc7LJTJJoEfbbEMmANS+Bv3rTWPZgV7pQ?= =?us-ascii?Q?X8n7JKrynJ+4IoWABlR7hvySrVf2fuwlltaqL4PsLmSVCHPsYBAgG6Z2dnaU?= =?us-ascii?Q?YMvoYYvaDwT4SB5XSZTEMka0B4/UUiVIaAM0hn5dK+a93xxQA+jKcFVJV5iK?= =?us-ascii?Q?A3TJo4eWEvjhZaqqJcfzdLsgIrGir/zXDV0WrCvLEP3JmnXuHPYgVMjZAaF/?= =?us-ascii?Q?Seg7iT9Rbe8NUBdNJkOVod9l/RYMKdxF+zv+IGmXKPYAP+fPwY+TWa4+voX9?= =?us-ascii?Q?Jz10pacLDHgiuNQPejxxDWQcpo2xd8c5gZx6zU6foZuoYdC8/OJB+iCLAn6s?= =?us-ascii?Q?jwUpOLhKpfpWG7dxEHp4Iexh71MIOC8GEK9HhWQxZ0Dk2IjkqP4pd09CBsS3?= =?us-ascii?Q?0eN3WeXlWoLoxBKOSXZmb+YNjrV8WUJixTizeE940QtQO2JIisICI+18t0dd?= =?us-ascii?Q?DD62JuissiydVEsF9h1SGXTLA3MpxVee8stGlz81EmgKHGcXBN6tJ7dROdhF?= =?us-ascii?Q?vu6iwyFY1pKnC5wBfYs2h6MXQRy9oHe3crrT7TG7bknL9bYdn3ZzBT7zP2sl?= =?us-ascii?Q?NwT+42gAi3etgj8IoUWZF58SlxzKhrIM6MEQLknlfu14HqycY3ZRvobuRnCA?= =?us-ascii?Q?FNwfoJkFJRUEPSDPUhuFp/VdrcgxdD6BfG9DlLwz6LOiOIF+ny31fnmiO9Cu?= =?us-ascii?Q?PN7l0HIvepIqQqpGBfUCcp3btkHLdvWDyd1f4FXIr+lq0G2rK3biI/vN/XE0?= =?us-ascii?Q?bGDzKLz/QouFNIJGuUXyDVeKrKtYQO4qzBiJEIigTYtPhiMaJY2zxPuJsZWx?= =?us-ascii?Q?q2NZgV6bIsIXUpb2C3xU9gGEo2/RZxkys3J/Nj/OTidK51kHpNR8fkjWMame?= =?us-ascii?Q?69/F4iGIHA0evhiBFjNw+PYv23cUdEKQiUcouaJ5ZWrZyjkhIp21F+fN/I/5?= =?us-ascii?Q?sSbLvqkw2f8yhc2YmakfP6hTisqeHPHxtNnVTk6m8FeBB2++JynbEwuJx/Na?= =?us-ascii?Q?gX8OYoAb07BGyJRj+99QnghpX1V0jy6fgOeYJuC3wIkKMv+nWoeK5VEbu1Mz?= =?us-ascii?Q?lctnhogDEHpuldwy2fI3gigah+Ty46VF7nYtnmPFNkbAW0lt90cDsg3lyp0V?= =?us-ascii?Q?9t3L8062lmFbCk9RkqiAFJBQIXZQn9X1Tnj8alWJ0x4VTWZO/o60n598oUW1?= =?us-ascii?Q?nR9qBkkIPA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4945.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9f2eeb7-c479-424d-a927-08da3bce728c X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2022 08:38:29.6844 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MP0gb+u4DaFhwQNjaOvWNYaV7pDbcatqfaxfqBnGMkRGaCr1ra2DXOIuhBwDdSWSpVmw6Cr3fboSXeNAV9/Uiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2025 Return-Path: jian.j.wang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Judah, Following interface has no non-Null version implemented. Consider removing them completely. ProtectedVariableLibGetStore() ProtectedVariableLibReclaim() ProtectedVariableLibGetDataInfo() ProtectedVariableLibGetNextEx() ProtectedVariableLibGetNext () Regards, Jian > -----Original Message----- > From: Vang, Judah > Sent: Saturday, April 30, 2022 2:04 AM > To: devel@edk2.groups.io > Cc: Wang, Jian J ; Gao, Liming > ; Mistry, Nishant C > Subject: [Patch v2 07/28] MdeModulePkg: Add Null ProtectedVariable Librar= y >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2594 >=20 > Add Null versions of the ProtectedVariable Library. > This will be the default libraries for platforms that > do not support ProtectedVariable. >=20 > Cc: Jian J Wang > Cc: Liming Gao > Cc: Nishant C Mistry > Signed-off-by: Jian J Wang > Signed-off-by: Nishant C Mistry > Signed-off-by: Judah Vang > --- > MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.i= nf > | 34 ++ > MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c = | > 449 ++++++++++++++++++++ > 2 files changed, 483 insertions(+) >=20 > diff --git > a/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > new file mode 100644 > index 000000000000..6a17191c4e1e > --- /dev/null > +++ > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > @@ -0,0 +1,34 @@ > +## @file > +# Provides null version of protected variable services. > +# > +# Copyright (c) 2022, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION =3D 0x00010029 > + BASE_NAME =3D ProtectedVariableLibNull > + FILE_GUID =3D 352C6A1B-403A-4E37-8517-FAA50BC4525= 1 > + MODULE_TYPE =3D BASE > + VERSION_STRING =3D 0.1 > + LIBRARY_CLASS =3D ProtectedVariableLib > + > +# > +# The following information is for reference only and not required by th= e build > tools. > +# > +# VALID_ARCHITECTURES =3D IA32 X64 > +# > + > +[Sources] > + ProtectedVariable.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + DebugLib > + > diff --git > a/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > new file mode 100644 > index 000000000000..cc1e16c1a671 > --- /dev/null > +++ b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > @@ -0,0 +1,449 @@ > +/** @file > + NULL version of ProtectedVariableLib used to disable protected variabl= e > services. > + > +Copyright (c) 2022, Intel Corporation. All rights reserved.
> +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > + > +#include > +#include > +#include > + > +/** > + > + Initialization for protected varibale services. > + > + @param[in] ContextIn Pointer to variable service context needed by > + protected variable. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibInitialize ( > + IN PROTECTED_VARIABLE_CONTEXT_IN *ContextIn > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get a verified copy of NV variable storage. > + > + @param[out] VariableFvHeader Pointer to the header of whole N= V > firmware volume. > + @param[out] VariableStoreHeader Pointer to the header of variabl= e > storage. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetStore ( > + OUT EFI_FIRMWARE_VOLUME_HEADER **VariableFvHeader, > + OUT VARIABLE_STORE_HEADER **VariableStoreHeader > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Prepare for variable update. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibWriteInit ( > + VOID > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Update a variable with protection provided by this library. > + > + @param[in,out] CurrVariable Variable to be updated. It's NULL = if > + adding a new variable. > + @param[in] CurrVariableInDel In-delete-transiion copy of updati= ng > variable. > + @param[in,out] NewVariable Buffer of new variable data. > + Buffer of "MetaDataHmacVar" and ne= w > + variable (encrypted). > + @param[in,out] NewVariableSize Size of NewVariable. > + Size of (encrypted) NewVariable an= d > + "MetaDataHmacVar". > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibUpdate ( > + IN OUT VARIABLE_HEADER *CurrVariable, > + IN VARIABLE_HEADER *CurrVariableInDel, > + IN OUT VARIABLE_HEADER *NewVariable, > + IN OUT UINTN *NewVariableSize > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Finalize a variable updating after it's written to NV variable storage > + successfully. > + > + @param[in] NewVariable Buffer of new variables and > MetaDataHmacVar. > + @param[in] VariableSize Size of buffer pointed by NewVariabl= e. > + @param[in] StoreIndex New index of the variable in store. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibWriteFinal ( > + IN VARIABLE_HEADER *NewVariable, > + IN UINTN VariableSize, > + IN UINT64 StoreIndex > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Perform garbage collection against the cached copy of NV variable stor= age. > + > + @param[in] VariableStoreBuffer Buffer used to do the recl= aim. > + @param[out] LastVariableOffset New free space start point= . > + @param[in] CurrVariableOffset Offset of existing variabl= e. > + @param[in] CurrVariableInDelOffset Offset of old copy of exis= ting > variable. > + @param[in,out] NewVariable Buffer of new variable dat= a. > + @param[in] NewVariableSize Size of new variable data. > + @param[in,out] HwErrVariableTotalSize Total size of variables wi= th HR > attribute. > + @param[in,out] CommonVariableTotalSize Total size of common varia= bles. > + @param[in,out] CommonUserVariableTotalSize Total size of user variabl= es. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibReclaim ( > + IN VARIABLE_STORE_HEADER *VariableStoreBuffer, > + OUT UINTN *LastVariableOffset, > + IN UINTN CurrVariableOffset, > + IN UINTN CurrVariableInDelOffset, > + IN OUT VARIABLE_HEADER **NewVariable, > + IN UINTN NewVariableSize, > + IN OUT UINTN *HwErrVariableTotalSize, > + IN OUT UINTN *CommonVariableTotalSize, > + IN OUT UINTN *CommonUserVariableTotalSize > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + An alternative version of ProtectedVariableLibGetData to get plain dat= a, if > + encrypted, from given variable, for different use cases. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetDataInfo ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Retrieve plain data, if encrypted, of given variable. > + > + @param[in] Variable Pointer to header of a Variable. > + @param[in,out] Data Pointer to plain data of the given = variable. > + @param[in,out] DataSize Size of data returned or data buffe= r needed. > + @param[in] AuthFlag Auth-variable indicator. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetData ( > + IN VARIABLE_HEADER *Variable, > + IN OUT VOID *Data, > + IN OUT UINT32 *DataSize, > + IN BOOLEAN AuthFlag > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Retrieve next protected variable stub. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetNextEx ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Retrieve next protected variable. > + > + @param[in,out] VariableNameSize Pointer to size of variable na= me. > + @param[in,out] VariableName Pointer to variable name. > + @param[in,out] VariableGuid Pointer to vairable GUID. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetNext ( > + IN OUT UINTN *VariableNameSize, > + IN OUT CHAR16 *VariableName, > + IN OUT EFI_GUID *VariableGuid > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get the specified protected variable. > + > + @param[in] VariableName Pointer to variable name. > + @param[in] VariableGuid Pointer to vairable GUID. > + @param[out] Attributes Pointer to attributes. > + @param[in,out] DataSize Pointer to data size. > + @param[out] Data Pointer to data. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGet ( > + IN CONST CHAR16 *VariableName, > + IN CONST EFI_GUID *VariableGuid, > + OUT UINT32 *Attributes, > + IN OUT UINTN *DataSize, > + OUT VOID *Data OPTIONAL > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find the protected variable. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFind ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find next protected variable. > + > + @param[in,out] VariableNameSize Pointer to size of variable na= me. > + @param[in,out] VariableName Pointer to variable name. > + @param[in,out] VariableGuid Pointer to vairable GUID. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFindNext ( > + IN OUT UINTN *VariableNameSize, > + IN OUT CHAR16 *VariableName, > + IN OUT EFI_GUID *VariableGuid > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find next protected variable stub. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFindNextEx ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by information. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByInfo ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by name. > + > + @param[in] VariableName Pointer to variable name. > + @param[in] VariableGuid Pointer to vairable GUID. > + @param[out] Attributes Pointer to attributes. > + @param[in,out] DataSize Pointer to data size. > + @param[out] Data Pointer to data. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByName ( > + IN CONST CHAR16 *VariableName, > + IN CONST EFI_GUID *VariableGuid, > + OUT UINT32 *Attributes, > + IN OUT UINTN *DataSize, > + OUT VOID *Data OPTIONAL > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by name. > + > + @param[in] Variable Pointer to variable name. > + @param[in,out] Data Pointer to variable data. > + @param[in,out] DataSize Pointer to data size. > + @param[in] AuthFlag Authenticate flag. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByBuffer ( > + IN VARIABLE_HEADER *Variable, > + IN OUT VOID *Data, > + IN OUT UINT32 *DataSize, > + IN BOOLEAN AuthFlag > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + Refresh variable information changed by variable service. > + > + @param[in] Variable Pointer to buffer of the updated variable= . > + @param[in] VariableSize Size of variable pointed by Variable. > + @param[in] StoreIndex New index of the variable in store. > + @param[in] RefreshData Flag to indicate if the variable has been= updated. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibRefresh ( > + IN VARIABLE_HEADER *Variable, > + IN UINTN VariableSize, > + IN UINT64 StoreIndex, > + IN BOOLEAN RefreshData > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get sorted protected variable list. > + > + @param[in,out] Buffer Pointer to buffer. > + @param[in,out] NumElements Pointer to number of elements. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetSortedList ( > + IN OUT EFI_PHYSICAL_ADDRESS **Buffer, > + IN OUT UINTN *NumElements > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Determine if the variable is the HMAC variable. > + > + @param[in] VariableName Pointer to variable name. > + > + @return FALSE Variable is not HMAC variable > + > +**/ > +BOOLEAN > +ProtectedVariableLibIsHmac ( > + IN CHAR16 *VariableName > + ) > +{ > + return FALSE; > +} > -- > 2.35.1.windows.2