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, Intel Corporation. All rights reserved.<BR> 10 This program and the accompanying materials 11 are licensed and made available under the terms and conditions of the BSD License 12 which accompanies this distribution. The full text of the license may be found at 13 http://opensource.org/licenses/bsd-license.php 14 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17 18 @par Revision Reference: 19 This PPI is introduced in PI Version 1.2.1. 20 21 **/ 22 23 #ifndef __VECTOR_HANDOFF_INFO_H__ 24 #define __VECTOR_HANDOFF_INFO_H__ 25 26 /// 27 /// NOTE: EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID can also be used in the PEI Phase 28 /// to build a GUIDed HOB that contains an array of EFI_VECTOR_HANDOFF_INFO. 29 /// 30 #define EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID \ 31 { 0x3cd652b4, 0x6d33, 0x4dce, { 0x89, 0xdb, 0x83, 0xdf, 0x97, 0x66, 0xfc, 0xca }} 32 33 /// 34 /// Vector Handoff Info Attributes 35 ///@{ 36 #define EFI_VECTOR_HANDOFF_DO_NOT_HOOK 0x00000000 37 #define EFI_VECTOR_HANDOFF_HOOK_BEFORE 0x00000001 38 #define EFI_VECTOR_HANDOFF_HOOK_AFTER 0x00000002 39 #define EFI_VECTOR_HANDOFF_LAST_ENTRY 0x80000000 40 ///@} 41 42 /// 43 /// EFI_VECTOR_HANDOFF_INFO entries that describes the interrupt and/or 44 /// exception vectors in use in the PEI Phase. 45 /// 46 typedef struct { 47 // 48 // The interrupt or exception vector that is in use and must be preserved. 49 // 50 UINT32 VectorNumber; 51 // 52 // A bitmask that describes the attributes ofthe interrupt or exception vector. 53 // 54 UINT32 Attribute; 55 // 56 // The GUID identifies the party who created the entry. For the 57 // EFI_VECTOR_HANDOFF_DO_NOT_HOOK case, this establishes the single owner. 58 // 59 EFI_GUID Owner; 60 } EFI_VECTOR_HANDOFF_INFO; 61 62 /// 63 /// Provides a description of the interrupt and/or exception vectors that 64 /// were established in the SEC Phase and need to persist into PEI and DXE. 65 /// 66 typedef struct _EFI_PEI_VECTOR_HANDOFF_INFO_PPI { 67 // 68 // Pointer to an array of interrupt and /or exception vectors. 69 // 70 EFI_VECTOR_HANDOFF_INFO *Info; 71 } EFI_PEI_VECTOR_HANDOFF_INFO_PPI; 72 73 extern EFI_GUID gEfiVectorHandoffInfoPpiGuid; 74 75 #endif 76