From nobody Mon Feb 9 19:30:45 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+94602+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+94602+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1664579195; cv=none; d=zohomail.com; s=zohoarc; b=Uf6A1qmLcux8X6U2/UX88m8jtfin+r9tiGW5yDmO3Lxu+fdtKDfCAclcMsoZeGwO7JxyVPt96mEFWrMeIxcbYsg8+hfpLpRct7tjMonT8FaXQlQLK1/4RTICdn8JL+eGNJK3do8SpQhXrBmGayDh2hHwdnna5cxH1tyO0hm4pfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664579195; 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=tvtqD93/WArjZCUYWfPDh8U3VpvUVCD+IVAEt9ppgy4=; b=g3jUyB5jdaW/5fxjqX/kjZyE458WuNvlGcdGWc9oyI0eu82quYe/HMfMMUMXl5tnD8swGrsWzuN20OzaDmr5WQGt1aldQMSkltDJCol5A0LrzNoCbqTrXbcB8gU6ejFS9twYUSRa5tdoe15J1qb5rx+Z2li4mKXn0OZ3PjjWgnk= 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+94602+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1664579195325695.2419355832695; Fri, 30 Sep 2022 16:06:35 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id IxbnYY1788612x0sEA7zGfhk; Fri, 30 Sep 2022 16:06:35 -0700 X-Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by mx.groups.io with SMTP id smtpd.web08.963.1664579194388537241 for ; Fri, 30 Sep 2022 16:06:34 -0700 X-Received: by mail-pl1-f201.google.com with SMTP id d7-20020a170903230700b00177f6dd8472so4089055plh.6 for ; Fri, 30 Sep 2022 16:06:34 -0700 (PDT) X-Gm-Message-State: dUI82OsYzL2CUBaPl0eOizM1x1787277AA= X-Google-Smtp-Source: AMsMyM4GXFiw67kuFWFpliPsYsY9yRdEUxsKI1ATkpbo2zbFRENg7zLEwLApLwMZErz/KOj7ZZ1LXAwPK1ZHAvQALQ== X-Received: from dionnaglaze.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2ee6]) (user=dionnaglaze job=sendgmr) by 2002:a05:6a00:e8f:b0:536:c98e:8307 with SMTP id bo15-20020a056a000e8f00b00536c98e8307mr11424985pfb.73.1664579193795; Fri, 30 Sep 2022 16:06:33 -0700 (PDT) Date: Fri, 30 Sep 2022 23:06:22 +0000 In-Reply-To: <20220930230627.3371754-1-dionnaglaze@google.com> Mime-Version: 1.0 References: <20220930230627.3371754-1-dionnaglaze@google.com> Message-ID: <20220930230627.3371754-3-dionnaglaze@google.com> Subject: [edk2-devel] [PATCH v5 2/7] MdePkg: 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=1664579195; bh=Zm8NK27sziqCczJrNWL+Fio7lGBYNwoZXArm0jjiAjI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=gG+NfUP7e7xDthAkCvr1i1ocKAHk7WzzgI2A1YKWa1kKBZpWTJeOzFG+1KoL7Hb8XZo 3+ChjEGl35NzI+37MceR7MG2SrUWkfmabpzJAaJrSQqIuOqTsR3MWZFbDFiljMfKlsuHm Np4PV8KVVOiJwYwwnwoDE7v+wpw/86PDQtc= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1664579196943100008 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 --- MdePkg/Include/Protocol/ExitBootServicesCallback.h | 38 ++++++++++++++++++= ++ MdePkg/MdePkg.dec | 3 ++ 2 files changed, 41 insertions(+) diff --git a/MdePkg/Include/Protocol/ExitBootServicesCallback.h b/MdePkg/In= clude/Protocol/ExitBootServicesCallback.h new file mode 100644 index 0000000000..d21d7700f7 --- /dev/null +++ b/MdePkg/Include/Protocol/ExitBootServicesCallback.h @@ -0,0 +1,38 @@ +/** @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. +**/ +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/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index de3c56758b..43b099b396 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -1019,6 +1019,9 @@ gEfiPeiDelayedDispatchPpiGuid =3D { 0x869c711d, 0x649c, 0x44fe, { 0x8b,= 0x9e, 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6 }} =20 [Protocols] + ## Include/Protocol/ExitBootServicesCallback.h + gEdkiiExitBootServicesCallbackProtocolGuid =3D { 0xf5684799, 0x9a33, 0x4= 0f7, {0xa1, 0x5c, 0x10, 0x8e, 0x0e, 0x6b, 0x45, 0x25 }} + ## Include/Protocol/MemoryAccept.h gEfiMemoryAcceptProtocolGuid =3D { 0x38c74800, 0x5590, 0x4db4, { 0xa0,= 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 }} =20 --=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 (#94602): https://edk2.groups.io/g/devel/message/94602 Mute This Topic: https://groups.io/mt/94028459/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-