]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Ppi/VectorHandoffInfo.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Ppi / VectorHandoffInfo.h
1 /** @file
2 This file declares Vector Handoff Info PPI that describes an array of
3 interrupt and/or exception vectors that are in use and need to persist.
4
5 This is an optional PPI that may be produced by SEC. If present, it provides
6 a description of the interrupt and/or exception vectors that were established
7 in the SEC Phase and need to persist into PEI and DXE.
8
9 Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
10 SPDX-License-Identifier: BSD-2-Clause-Patent
11
12 @par Revision Reference:
13 This PPI is introduced in PI Version 1.2.1.
14
15 **/
16
17 #ifndef __VECTOR_HANDOFF_INFO_H__
18 #define __VECTOR_HANDOFF_INFO_H__
19
20 ///
21 /// NOTE: EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID can also be used in the PEI Phase
22 /// to build a GUIDed HOB that contains an array of EFI_VECTOR_HANDOFF_INFO.
23 ///
24 #define EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID \
25 { 0x3cd652b4, 0x6d33, 0x4dce, { 0x89, 0xdb, 0x83, 0xdf, 0x97, 0x66, 0xfc, 0xca }}
26
27 ///
28 /// Vector Handoff Info Attributes
29 ///@{
30 #define EFI_VECTOR_HANDOFF_DO_NOT_HOOK 0x00000000
31 #define EFI_VECTOR_HANDOFF_HOOK_BEFORE 0x00000001
32 #define EFI_VECTOR_HANDOFF_HOOK_AFTER 0x00000002
33 #define EFI_VECTOR_HANDOFF_LAST_ENTRY 0x80000000
34 ///@}
35
36 ///
37 /// EFI_VECTOR_HANDOFF_INFO entries that describes the interrupt and/or
38 /// exception vectors in use in the PEI Phase.
39 ///
40 typedef struct {
41 //
42 // The interrupt or exception vector that is in use and must be preserved.
43 //
44 UINT32 VectorNumber;
45 //
46 // A bitmask that describes the attributes of the interrupt or exception vector.
47 //
48 UINT32 Attribute;
49 //
50 // The GUID identifies the party who created the entry. For the
51 // EFI_VECTOR_HANDOFF_DO_NOT_HOOK case, this establishes the single owner.
52 //
53 EFI_GUID Owner;
54 } EFI_VECTOR_HANDOFF_INFO;
55
56 ///
57 /// Provides a description of the interrupt and/or exception vectors that
58 /// were established in the SEC Phase and need to persist into PEI and DXE.
59 ///
60 typedef struct _EFI_PEI_VECTOR_HANDOFF_INFO_PPI {
61 //
62 // Pointer to an array of interrupt and /or exception vectors.
63 //
64 EFI_VECTOR_HANDOFF_INFO *Info;
65 } EFI_PEI_VECTOR_HANDOFF_INFO_PPI;
66
67 extern EFI_GUID gEfiVectorHandoffInfoPpiGuid;
68
69 #endif