From nobody Wed Feb 11 03:02:11 2026 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+94682+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+94682+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1664823244; cv=none; d=zohomail.com; s=zohoarc; b=acaQaauP0kiIA5TCKKMQXWsSikhNmmap1l3I4XnsKooRxtga3QtDUAmyHSvNvSdJ0e8EyFeEGNBiIkJ3AkTymweIbs3qU3ZwMRozhx0TMNBpt/+fAmEt+w/5i1SmNYjZYgCcL5YYmXYzE1Sah4jth1veE0h4VJXmxVJ96pHSsg0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664823244; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=ZF99pjla47xR+NtG+CYLJJRTN30WiAzIIGBehaGiqcE=; b=kEQatlzlx2mELTGSc16vziI1X3E58sFnkobBbulfuTTa1MzgXU1a2K4ItEwHvAxYUwhAiMRLOf31zqDhoY7EI1YJgqRXOIK4cBULhNQRWJZvFqGqapWUSPAvFgr8TYy81Y4aTTBWPNX1rLeE40EhV/wp0iIGeAiR9AGJTC8RfB0= ARC-Authentication-Results: i=1; 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+94682+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1664823244636712.7761085493748; Mon, 3 Oct 2022 11:54:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 23Y7YY1788612xhUFWXQh4Uo; Mon, 03 Oct 2022 11:54:04 -0700 X-Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by mx.groups.io with SMTP id smtpd.web12.1561.1664823243571460287 for ; Mon, 03 Oct 2022 11:54:03 -0700 X-Received: by mail-yb1-f202.google.com with SMTP id d8-20020a25bc48000000b00680651cf051so11094010ybk.23 for ; Mon, 03 Oct 2022 11:54:03 -0700 (PDT) X-Gm-Message-State: jGcmmDgLCNSxuK7mTpfP8P2Qx1787277AA= X-Google-Smtp-Source: AMsMyM7cXo1GTjzqGigueFlkVuO99fK8jbW8DWQP3/Pa9n7pY7K5IymMb5YwslLDxg4BZI3GgV+CnMwrG+AIMQ0f+A== X-Received: from dionnaglaze.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2ee6]) (user=dionnaglaze job=sendgmr) by 2002:a25:bbcc:0:b0:6a8:e269:5eec with SMTP id c12-20020a25bbcc000000b006a8e2695eecmr22255868ybk.219.1664823242747; Mon, 03 Oct 2022 11:54:02 -0700 (PDT) Date: Mon, 3 Oct 2022 18:53:47 +0000 In-Reply-To: <20221003185352.3969999-1-dionnaglaze@google.com> Mime-Version: 1.0 References: <20221003185352.3969999-1-dionnaglaze@google.com> Message-ID: <20221003185352.3969999-3-dionnaglaze@google.com> Subject: [edk2-devel] [PATCH v6 2/7] MdeModulePkg: Introduce ExitBootServicesCallbackProtocol From: "Dionna Glaze via groups.io" To: devel@edk2.groups.io Cc: Dionna Glaze , Gerd Hoffmann , "Min M. Xu" , James Bottomley , Jiewen Yao , Tom Lendacky , Ard Biesheuvel , Andrew Fish , "Michael D. Kinney" Precedence: Bulk List-Unsubscribe: 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,dionnaglaze@google.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1664823244; bh=0uAoyWL4+4W02BtU5GdJigRVPqCDruNjFJqghtgXA9w=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=qsDzto+AsyzP29Mtjxmm8Q3fN2CoYnFKp7t7yEZgMukmfe40jkvfbWh4/cmzjk5DH55 GqijCJmFuFtjp69yvkUe466XgV7OJxZUYAQQpBFQVhiFGwjTp3rQWjIb1gP4Z6KKSI99I riTl1bP7z1mI18jf8rYcVkmJbEF62FxTWwo= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1664823246752100007 Content-Type: text/plain; charset="utf-8" This introduces a callback after the time that the timer is disabled and be= fore the MemoryMap is finalized. This callback is useful to make final changes to the memory map due to prot= ocols initiated (or not initiated) by the OS loader. Cc: Gerd Hoffmann Cc: "Min M. Xu" Cc: James Bottomley Cc: Jiewen Yao Cc: Tom Lendacky Cc: Ard Biesheuvel Cc: Andrew Fish Cc: "Michael D. Kinney" Signed-off-by: Dionna Glaze --- MdeModulePkg/Include/Protocol/ExitBootServicesCallback.h | 40 ++++++++++++= ++++++++ MdeModulePkg/MdeModulePkg.dec | 3 ++ 2 files changed, 43 insertions(+) diff --git a/MdeModulePkg/Include/Protocol/ExitBootServicesCallback.h b/Mde= ModulePkg/Include/Protocol/ExitBootServicesCallback.h new file mode 100644 index 0000000000..5c9f973b79 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/ExitBootServicesCallback.h @@ -0,0 +1,40 @@ +/** @file + The file provides the protocol that allows callbacks in ExitBootServices + immediately before TerminateMemoryMap. + + Copyright (c) 2022, Google LLC. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ +#ifndef EXIT_BOOT_SERVICES_CALLBACK_H_ +#define EXIT_BOOT_SERVICES_CALLBACK_H_ + +/* This protocol is internal to EDK2 only */ + +#define EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL_GUID {0xf5684799, = 0x9a33, = 0x40f7, = {0xa1, 0x5c, 0x10, 0x8e, 0x0e, 0x6b, 0x45, 0x25}} + +typedef struct _EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL + EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL; + +/** + @param This A pointer to a EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL. + + The returned status may only be EFI_SUCCESS or EFI_INVALID_PARAMETER. +**/ +typedef +EFI_STATUS +(EFIAPI *EDKII_TERMINATE_MEMORY_MAP_PREHOOK)( + IN EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL *This + ); + +/// +/// The EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL allows callbacks in +/// ExitBootServices immediately before TerminateMemoryMap. +/// +struct _EDKII_EXIT_BOOT_SERVICES_CALLBACK_PROTOCOL { + EDKII_TERMINATE_MEMORY_MAP_PREHOOK TerminateMemoryMapPrehook; + BOOLEAN Disabled; +}; + +extern EFI_GUID gEdkiiExitBootServicesCallbackProtocolGuid; + +#endif diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 58e6ab0048..add4e304ca 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -677,6 +677,9 @@ ## Include/Protocol/VariablePolicy.h gEdkiiVariablePolicyProtocolGuid =3D { 0x81D1675C, 0x86F6, 0x48DF, { 0xB= D, 0x95, 0x9A, 0x6E, 0x4F, 0x09, 0x25, 0xC3 } } =20 + ## Include/Protocol/ExitBootServicesCallback.h + gEdkiiExitBootServicesCallbackProtocolGuid =3D { 0xf5684799, 0x9a33, 0x4= 0f7, {0xa1, 0x5c, 0x10, 0x8e, 0x0e, 0x6b, 0x45, 0x25 }} + [PcdsFeatureFlag] ## Indicates if the platform can support update capsule across a system = reset.

# TRUE - Supports update capsule across a system reset.
--=20 2.38.0.rc1.362.ged0d419d3c-goog -=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 (#94682): https://edk2.groups.io/g/devel/message/94682 Mute This Topic: https://groups.io/mt/94098169/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-