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