1## @file 2# This file is used to define class objects of INF file miscellaneous. 3# Include BootMode/HOB/Event and others. It will consumed by InfParser. 4# 5# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR> 6# 7# SPDX-License-Identifier: BSD-2-Clause-Patent 8 9''' 10InfMisc 11''' 12 13import Logger.Log as Logger 14from Logger import ToolError 15 16from Library import DataType as DT 17from Object.Parser.InfCommonObject import InfSectionCommonDef 18from Library.Misc import Sdict 19 20## 21# BootModeObject 22# 23class InfBootModeObject(): 24 def __init__(self): 25 self.SupportedBootModes = '' 26 self.HelpString = '' 27 self.Usage = '' 28 29 def SetSupportedBootModes(self, SupportedBootModes): 30 self.SupportedBootModes = SupportedBootModes 31 def GetSupportedBootModes(self): 32 return self.SupportedBootModes 33 34 def SetHelpString(self, HelpString): 35 self.HelpString = HelpString 36 def GetHelpString(self): 37 return self.HelpString 38 39 def SetUsage(self, Usage): 40 self.Usage = Usage 41 def GetUsage(self): 42 return self.Usage 43## 44# EventObject 45# 46class InfEventObject(): 47 def __init__(self): 48 self.EventType = '' 49 self.HelpString = '' 50 self.Usage = '' 51 52 def SetEventType(self, EventType): 53 self.EventType = EventType 54 55 def GetEventType(self): 56 return self.EventType 57 58 def SetHelpString(self, HelpString): 59 self.HelpString = HelpString 60 def GetHelpString(self): 61 return self.HelpString 62 63 def SetUsage(self, Usage): 64 self.Usage = Usage 65 def GetUsage(self): 66 return self.Usage 67## 68# HobObject 69# 70class InfHobObject(): 71 def __init__(self): 72 self.HobType = '' 73 self.Usage = '' 74 self.SupArchList = [] 75 self.HelpString = '' 76 77 def SetHobType(self, HobType): 78 self.HobType = HobType 79 80 def GetHobType(self): 81 return self.HobType 82 83 def SetUsage(self, Usage): 84 self.Usage = Usage 85 def GetUsage(self): 86 return self.Usage 87 88 def SetSupArchList(self, ArchList): 89 self.SupArchList = ArchList 90 def GetSupArchList(self): 91 return self.SupArchList 92 93 def SetHelpString(self, HelpString): 94 self.HelpString = HelpString 95 def GetHelpString(self): 96 return self.HelpString 97 98## 99# InfSpecialCommentObject 100# 101class InfSpecialCommentObject(InfSectionCommonDef): 102 def __init__(self): 103 self.SpecialComments = Sdict() 104 InfSectionCommonDef.__init__(self) 105 106 def SetSpecialComments(self, SepcialSectionList = None, Type = ''): 107 if Type == DT.TYPE_HOB_SECTION or \ 108 Type == DT.TYPE_EVENT_SECTION or \ 109 Type == DT.TYPE_BOOTMODE_SECTION: 110 for Item in SepcialSectionList: 111 if Type in self.SpecialComments: 112 ObjList = self.SpecialComments[Type] 113 ObjList.append(Item) 114 self.SpecialComments[Type] = ObjList 115 else: 116 ObjList = [] 117 ObjList.append(Item) 118 self.SpecialComments[Type] = ObjList 119 120 return True 121 122 def GetSpecialComments(self): 123 return self.SpecialComments 124 125 126 127## ErrorInInf 128# 129# An encapsulate of Error for INF parser. 130# 131def ErrorInInf(Message=None, ErrorCode=None, LineInfo=None, RaiseError=True): 132 if ErrorCode is None: 133 ErrorCode = ToolError.FORMAT_INVALID 134 if LineInfo is None: 135 LineInfo = ['', -1, ''] 136 Logger.Error("InfParser", 137 ErrorCode, 138 Message=Message, 139 File=LineInfo[0], 140 Line=LineInfo[1], 141 ExtraData=LineInfo[2], 142 RaiseError=RaiseError) 143