From nobody Fri May 17 07:47:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+108929+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108929+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1695241649231622.2349686047868; Wed, 20 Sep 2023 13:27:29 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=otHRTar8dKuJ8KboO9h3kIO/t9YRZUHkVzOzYFMkPA0=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Message-ID:Date:User-Agent:From:Subject:To:Cc:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1695241648; v=1; b=enwK5lxmdoe8kQAbo5O21OPOAuDo5J6m1y5MI8U3vvH4hVk/61nNhedfir8qMBqOCzXDKYN/ J+k3x0oxxSe7iy/CQRtGu8Pt6/K+JuOK9oGPkjJ5A6FzoTdYiXYKdYJFyEjcih6OV78oF/MdPAc oW7qYkJGRaiy5qf0aAVRPPsk= X-Received: by 127.0.0.2 with SMTP id m1jsYY1788612xcNTMdZTuqU; Wed, 20 Sep 2023 13:27:28 -0700 X-Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.42]) by mx.groups.io with SMTP id smtpd.web10.210.1695241647801903770 for ; Wed, 20 Sep 2023 13:27:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nLgWD3egr5gt1H2qTWnqmp3Z+kZifWLBqsdL5cEr2khF8gxrO+JSJEsKxXI5x7vnOkydy8LBH1dkDS2G0AetslJHZ3q7g+N07H/WjafweJ2FgMPot8Sk00hmcwz7O0wHG4FDYXHjmw3Y+LZ5PVbeZtTmF5vh6+l7OGbLkM517rpRpy8Bz+ev0BqrDWA1utxQf0bEbcczJT8etaOboDxumhjHnB3XFj7yGOOsWeuei5533zei5yc9UWCorc9kmkOShVPEJE86EImmkP8CPy07W7LTflu2oVlaZvnyJxS/Reach0u4o1aOM4aPWzf1nARstQlCHj33vLT8TkviGlYP7Q== 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=2+R0QH30uAbEL/OiCwjLiPDfWzwawzmJsI3Orb8263s=; b=k/VRtezUeMLbhTK++yvm6DNCfkJVjvXyVzXnGNjS6GLJjkEew0VkmFyzTKasR8xU2JN1mcfJdTHscx01qMkocsSEOz4ATduxmhrvO4Av/uSGRUBdLWVuYD9LB0+zLmDEqeu8XzD1BHufpUJS0zDl0GGryrVa2d4CTsbDcKhig93Jg5iEzgGP/ERml7l2fwNg29JDmPrS5XSUA1Wx2Mkq6Pl56piRO9VqjDF5rwhzLKNXf1A1laHTsjsjlmsp8O5ImvMqhH6gaOXsOmg7Cn5tsvde2o/dXdl+XySUPWriG/K/mGrJDwcsPMIR67Edt92ib/x82PHk5OuSdqhu5EEmQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none X-Received: from CY5PR12MB6297.namprd12.prod.outlook.com (2603:10b6:930:22::19) by IA1PR12MB6115.namprd12.prod.outlook.com (2603:10b6:208:3e9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Wed, 20 Sep 2023 20:27:25 +0000 X-Received: from CY5PR12MB6297.namprd12.prod.outlook.com ([fe80::8d6b:79c8:9fa:aa31]) by CY5PR12MB6297.namprd12.prod.outlook.com ([fe80::8d6b:79c8:9fa:aa31%4]) with mapi id 15.20.6792.026; Wed, 20 Sep 2023 20:27:24 +0000 Message-ID: Date: Wed, 20 Sep 2023 14:27:21 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 From: "Girish Mahadevan via groups.io" Subject: [edk2-devel] RFC: SetVariable callbacks To: Hao A Wu , Liming Gao , "devel@edk2.groups.io" Cc: Jeff Brasen , Ashish Singhal X-ClientProxiedBy: SJ0PR13CA0092.namprd13.prod.outlook.com (2603:10b6:a03:2c5::7) To CY5PR12MB6297.namprd12.prod.outlook.com (2603:10b6:930:22::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR12MB6297:EE_|IA1PR12MB6115:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c829ad3-55e9-44e1-853a-08dbba180026 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: gBC/Yh1vUskmaAYvlSziO41MHXpC43To/dfSVlaxlYDSzU6ouG3X90MxAKGiyj7rmbO4FTCte6i8nzcC030EXBmi5j5EFXue8H1HupW5ySQOiUSb+tZtIVGGTL0nJch0ZQCVMYxvjT7fG1qTk1n3tj4JpQuM4Q3nU4Jd/DajB01etLVHKdm2vRuRnuDUFO+8wZh+jCxI3SGmm2pSRMhOjN8jvBMmXHN2rGCt7uvw9EnWZYN8poSLEgOR7y8K7fOQph75EK4WP9oEGim+nT5eR15Cz/UuDqXuxqYIOrG9sKtz6sjRHmxj5qUhObi6neMkpop97HmiPfzK3WFmdNftA1DYwWwGR6OtXDQEmNjVq8LhIyXni0UvhBCqaea7YlELzWI8zb0fphfCLg5O59EBDfy+eCabmxBBFRFMVX1v/D5nnshf1hH+dzmQbKsNZKJrBiwMd1tbA+EFydhIdD4+Unp6X621ZJRxE4YoZIHeijnmXtAiKgaH3ldFOofqYYExaZUnT7Dy7CqIi/YJMFi/TaubKlpOG7IG1VMCWzIFZz/6Z/01X3KYtbtddQMghJCJIPyDLS86kJkZw99UQohGM29Urs6cOpC83Vo2mQXPCk0INcFniLw/WqHtbQ3YMTm5e4qKsqauJFQGfKealWiKRQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MGhNdTg0RE1GcHd5T2h4OWw4ZytRNFNHR2ZWQy9zam1nZnkzNDJWd2FYZkl4?= =?utf-8?B?dm5VYVNUZFBEY25NWklIOWpiYmtRZ1BFUzlEZUc2TmE0WUFhaXpXMXgwMGRH?= =?utf-8?B?a1VkQUt2S3VmbEl1VWlyOHdKUlh2TDExc2dTY2pvNXV2NlcvYmNXV3lEYmgv?= =?utf-8?B?c0ZTTSs5SWc5MnZNNmZxZ01jT3hGc3RsMitQYTNNcU56MDczYWVFUTJaNnBu?= =?utf-8?B?N0k2Y1RMTlE5TUxZd0FVR29icFRiRUljZGFpMjlBTEMxcVZWUFV2bkZOV09W?= =?utf-8?B?N1pGTzQrWjE1dHV0K29LL0V0Umh5R2htT1RYV0RQZDVDS1YzdWZEQUxHOEkx?= =?utf-8?B?UzJ4b3lJZjJTSlJsMElwSXJxMFJROVR2WGFQaHZIM01DYlB2Ry9CRVBnaGcw?= =?utf-8?B?dU1taGMybTZCZVJnaExWUXJWU3JNalRJcHpwNTFXU01hcDNEYTkvN2RDUDh4?= =?utf-8?B?d2dVK3ZrZjAxZkVzV2V3TlFvdTRVU3VNM29QOWVwYW84QktHT3BMVVRSZDRF?= =?utf-8?B?bkJrS1dzYWJpMXhXZ3BNNllUOW5kSGsvK3Z6aTdFQWpjNEJ4eFJjSHliWmpR?= =?utf-8?B?a0VtU21BenFieFovRFIxc3NhekZxZkI5a05vdEd1RzNlUS9vREpxQ3FqK3hP?= =?utf-8?B?T0N5UU9NOXZCMTh3UWZTM2dhdnF1dzR6THZSS0lzZGx2Vkc2MXJMV25PQ2Np?= =?utf-8?B?RmxkTFNnZFh5d2xmQ1J2aVVCMXQvS1RuRkpPdzQxdTZaaXlXeVVuUjRGUGo4?= =?utf-8?B?VTEvcjhmcVNlZGM2QXo5a0ZVYm1uWUwwU2U4cXpRc1VhR0FUS0hPZThBem5V?= =?utf-8?B?bU9oVHd5VnRrOTNFNjUwVDFCSDhnRVNMMXd4WTRBaXhoVlRSUzduTHA5eUFT?= =?utf-8?B?b2VHWWx1clY4TlVlSTNwR29qNEtvUnNaNmQ0M2k0amR1dndmQTdXb0V0YUdS?= =?utf-8?B?ZENXdlc2TGxTRDBhc0tqTTd4Q1dmT0NTb2dwQ3UwM0Z1aWtkdFI5QjJyWXMv?= =?utf-8?B?WW8rcGkxRVprVmpaY1lzSXhaSFpNWDcwTDZTUmZzUFc0aCs0VjUwbTBGSHpr?= =?utf-8?B?aGhCRmJFRTc4LzgybzhsOW5jK3RLYjRSWDdzcmtIcVBaSW5KWDlWUmFUeGl2?= =?utf-8?B?aHF4dVBxcmdWdzlvbEowb0pLMHlRWDlaSzRocnM5YVdvK0pMS0ZBRzVXNm05?= =?utf-8?B?RUdQN1hkMDgzYWtDVE8yUDhTdU5qT2xVUCtMTURXS08zeE42VXJ1NGtYMHFW?= =?utf-8?B?SExwejIvNjZsc2tLNEVxWXEwM1lYVkFnRlFIWjQ4VHJ3L0gwOUNGcXEyc1pJ?= =?utf-8?B?dzdFNlJsRm5KbTEzd0ZZUThVeTRvWFgvVGE3TTNtRDFUZk1CRE9wT1RVWWwz?= =?utf-8?B?b3phWTVST0VqTEVqZm1mOW9pekVxSlA2WmpRNEtGZm4rUXMvMkFXblRXU2ZB?= =?utf-8?B?Tm5iNmFVNmVRdnZjVnNVNkZ3MVlsbDhkNHpSaldTTGowUE5DeDkwUGNiY2ts?= =?utf-8?B?aDlDbzhGL3lYNmJuV1Q3STRibDBUSGVVcmFrSkdMc2lXRHZFb1dGc1VyZGlS?= =?utf-8?B?YkRYaEdhWHVPTEpiM08xMVhxYVM3aDBmZ2NWQUNCQlUreEJEbG5paXd0N01F?= =?utf-8?B?clFvUlRSYVA0UWptYTRidGNtVVMxbnBDdlduQUc5VHp4clI2UDdWVklPcTJI?= =?utf-8?B?Qi9WeG1FcVNwTGJscTErOEF6QXVRdkJMU0RNVDQ1S2lyMnBqcGxHN21aOS81?= =?utf-8?B?UDhoZ3MyanhadnJNT3Z5cytxQkladXVnb3FuVUo5WmlHNG9JVG5QVlpORVNk?= =?utf-8?B?Vk5FR3ZsMTB0TmxaeFlMb2FoeEZ3OXUvVklxNFNGakhRNVVyajBqSmk4djAv?= =?utf-8?B?ZFlRRko2bFhGRnpSNkxOc2c5Mnk0Qk1LT1FNN0dpSmJEVkhaRDJ3T3krQU1M?= =?utf-8?B?aTc2MlZYOVF4ZVVTWUxDTGtzbVdBUGU0Vm1LS2JkOUkzczZUTUxtL1lqNjlV?= =?utf-8?B?Skx3RytHWjlSSk9nYU9CYVpnUUZ3N2FYZTVMZUxZUkFBMG96WDJidGgxeTFF?= =?utf-8?B?WGRsengyOFZxNjJkTHVueUwwV2hpMFVLQjE0dWdTQVh3S0orZm90WGVRMm5L?= =?utf-8?B?VGEyR3NKdEd0MVYrWFlnMXI5QWNOYng5cHF0WCtsUm5MYjF2WjliZFZ0SU1G?= =?utf-8?B?bnc9PQ==?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c829ad3-55e9-44e1-853a-08dbba180026 X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6297.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2023 20:27:24.8991 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8lzNe9ePTPOWbFOtHKIUuBH4UIY08uXaB+eHUM/Z+JCaVIwbZInY3AD3MgNsSC0tqRGJPvK0TXPNSi446dCeRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6115 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,gmahadevan@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: ArIFD3FNQnRola1ep16IpRVux1787277AA= Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1695241650099100001 Content-Type: text/plain; charset="utf-8"; format="flowed" Hello We have a requirement to monitor setVariable calls, we'd like to get a=20 callback before and after the variable update. Similar to VarCheckLib, except that VarCheckLib's set callbacks are=20 called after endOfDxe. We were thinking of doing something like: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c @@ -2853,6 +2853,11 @@ VariableServiceSetVariable ( return Status; } + Status =3D VarPreSetVariableCallback (VariableName, VendorGuid,=20 Attributes, PayloadSize, (VOID *)((UINTN)Data + DataSize - PayloadSize),=20 mRequestSource);^M + if (EFI_ERROR (Status)) {^M + return Status;^M + }^M +^M AcquireLockOnlyAtBootTime=20 (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock); // @@ -2917,6 +2922,8 @@ Done: InterlockedDecrement=20 (&mVariableModuleGlobal->VariableGlobal.ReentrantState); ReleaseLockOnlyAtBootTime=20 (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock); + Status =3D VarPostSetVariableCallback (VariableName, VendorGuid,=20 Attributes, PayloadSize, (VOID *)((UINTN)Data + DataSize - PayloadSize),=20 mRequestSource);^M +^M =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D We were thinking of 4 options: 1. A new Library, platforms can include the Null implementation if they=20 don't need this. 2. A new protocol that is called from the Variable driver (similar to=20 the Fvb protocol, we let the Smm/Dxe Variable drivers get this protocol) 3. Expand the existing VarCheckLib to include these new callbacks.=20 (which can be called before end of dxe) 4. Something we don't know about (please let us know) We are leaning toward option 1. Let us know your thoughts. Best Regards Girish -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108929): https://edk2.groups.io/g/devel/message/108929 Mute This Topic: https://groups.io/mt/101487036/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-