1## @file
2# Standardized Error Handling infrastructures.
3#
4# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
5#
6# SPDX-License-Identifier: BSD-2-Clause-Patent
7#
8
9'''
10ToolError
11'''
12
13import Logger.StringTable as ST
14
15FILE_OPEN_FAILURE = 1
16FILE_WRITE_FAILURE = 2
17FILE_PARSE_FAILURE = 3
18FILE_READ_FAILURE = 4
19FILE_CREATE_FAILURE = 5
20FILE_CHECKSUM_FAILURE = 6
21FILE_COMPRESS_FAILURE = 7
22FILE_DECOMPRESS_FAILURE = 8
23FILE_MOVE_FAILURE = 9
24FILE_DELETE_FAILURE = 10
25FILE_COPY_FAILURE = 11
26FILE_POSITIONING_FAILURE = 12
27FILE_ALREADY_EXIST = 13
28FILE_NOT_FOUND = 14
29FILE_TYPE_MISMATCH = 15
30FILE_CASE_MISMATCH = 16
31FILE_DUPLICATED = 17
32FILE_UNKNOWN_ERROR = 0x0FFF
33
34OPTION_UNKNOWN = 0x1000
35OPTION_MISSING = 0x1001
36OPTION_CONFLICT = 0x1002
37OPTION_VALUE_INVALID = 0x1003
38OPTION_DEPRECATED = 0x1004
39OPTION_NOT_SUPPORTED = 0x1005
40OPTION_UNKNOWN_ERROR = 0x1FFF
41
42PARAMETER_INVALID = 0x2000
43PARAMETER_MISSING = 0x2001
44PARAMETER_UNKNOWN_ERROR = 0x2FFF
45
46FORMAT_INVALID = 0x3000
47FORMAT_NOT_SUPPORTED = 0x3001
48FORMAT_UNKNOWN = 0x3002
49FORMAT_UNKNOWN_ERROR = 0x3FFF
50
51RESOURCE_NOT_AVAILABLE = 0x4000
52RESOURCE_ALLOCATE_FAILURE = 0x4001
53RESOURCE_FULL = 0x4002
54RESOURCE_OVERFLOW = 0x4003
55RESOURCE_UNDERRUN = 0x4004
56RESOURCE_UNKNOWN_ERROR = 0x4FFF
57
58ATTRIBUTE_NOT_AVAILABLE = 0x5000
59ATTRIBUTE_GET_FAILURE = 0x5001
60ATTRIBUTE_SET_FAILURE = 0x5002
61ATTRIBUTE_UPDATE_FAILURE = 0x5003
62ATTRIBUTE_ACCESS_DENIED = 0x5004
63ATTRIBUTE_RETRIEVE_FAILURE = 0x5005
64ATTRIBUTE_UNKNOWN_ERROR = 0x5FFF
65ATTRIBUTE_RETRIEVE_FAILURE = 0x5F00
66
67IO_NOT_READY = 0x6000
68IO_BUSY = 0x6001
69IO_TIMEOUT = 0x6002
70IO_UNKNOWN_ERROR = 0x6FFF
71
72COMMAND_FAILURE = 0x7000
73
74CODE_ERROR = 0xC0DE
75
76AUTOGEN_ERROR = 0xF000
77PARSER_ERROR = 0xF001
78BUILD_ERROR = 0xF002
79GENFDS_ERROR = 0xF003
80ECC_ERROR = 0xF004
81EOT_ERROR = 0xF005
82DDC_ERROR = 0xF009
83WARNING_AS_ERROR = 0xF006
84MIGRATION_ERROR = 0xF010
85EDK1_INF_ERROR = 0xF011
86ABORT_ERROR = 0xFFFE
87UNKNOWN_ERROR = 0xFFFF
88
89UPT_ALREADY_INSTALLED_ERROR = 0xD000
90UPT_ENVIRON_MISSING_ERROR = 0xD001
91UPT_REPKG_ERROR = 0xD002
92UPT_ALREADY_RUNNING_ERROR = 0xD003
93UPT_MUL_DEC_ERROR = 0xD004
94UPT_DB_UPDATE_ERROR = 0xD005
95UPT_INI_PARSE_ERROR = 0xE000
96
97## Error message of each error code
98#
99gERROR_MESSAGE = {
100    FILE_NOT_FOUND          :   ST.ERR_FILE_NOT_FOUND,
101    FILE_OPEN_FAILURE       :   ST.ERR_FILE_OPEN_FAILURE,
102    FILE_WRITE_FAILURE      :   ST.ERR_FILE_WRITE_FAILURE,
103    FILE_PARSE_FAILURE      :   ST.ERR_FILE_PARSE_FAILURE,
104    FILE_READ_FAILURE       :   ST.ERR_FILE_READ_FAILURE,
105    FILE_CREATE_FAILURE     :   ST.ERR_FILE_CREATE_FAILURE,
106    FILE_CHECKSUM_FAILURE   :   ST.ERR_FILE_CHECKSUM_FAILURE,
107    FILE_COMPRESS_FAILURE   :   ST.ERR_FILE_COMPRESS_FAILURE,
108    FILE_DECOMPRESS_FAILURE :   ST.ERR_FILE_DECOMPRESS_FAILURE,
109    FILE_MOVE_FAILURE       :   ST.ERR_FILE_MOVE_FAILURE,
110    FILE_DELETE_FAILURE     :   ST.ERR_FILE_DELETE_FAILURE,
111    FILE_COPY_FAILURE       :   ST.ERR_FILE_COPY_FAILURE,
112    FILE_POSITIONING_FAILURE:   ST.ERR_FILE_POSITIONING_FAILURE,
113    FILE_ALREADY_EXIST      :   ST.ERR_FILE_ALREADY_EXIST,
114    FILE_TYPE_MISMATCH      :   ST.ERR_FILE_TYPE_MISMATCH ,
115    FILE_CASE_MISMATCH      :   ST.ERR_FILE_CASE_MISMATCH,
116    FILE_DUPLICATED         :   ST.ERR_FILE_DUPLICATED,
117    FILE_UNKNOWN_ERROR      :   ST.ERR_FILE_UNKNOWN_ERROR,
118
119    OPTION_UNKNOWN          :   ST.ERR_OPTION_UNKNOWN,
120    OPTION_MISSING          :   ST.ERR_OPTION_MISSING,
121    OPTION_CONFLICT         :   ST.ERR_OPTION_CONFLICT,
122    OPTION_VALUE_INVALID    :   ST.ERR_OPTION_VALUE_INVALID,
123    OPTION_DEPRECATED       :   ST.ERR_OPTION_DEPRECATED,
124    OPTION_NOT_SUPPORTED    :   ST.ERR_OPTION_NOT_SUPPORTED,
125    OPTION_UNKNOWN_ERROR    :   ST.ERR_OPTION_UNKNOWN_ERROR,
126
127    PARAMETER_INVALID       :   ST.ERR_PARAMETER_INVALID,
128    PARAMETER_MISSING       :   ST.ERR_PARAMETER_MISSING,
129    PARAMETER_UNKNOWN_ERROR :   ST.ERR_PARAMETER_UNKNOWN_ERROR,
130
131    FORMAT_INVALID          :   ST.ERR_FORMAT_INVALID,
132    FORMAT_NOT_SUPPORTED    :   ST.ERR_FORMAT_NOT_SUPPORTED,
133    FORMAT_UNKNOWN          :   ST.ERR_FORMAT_UNKNOWN,
134    FORMAT_UNKNOWN_ERROR    :   ST.ERR_FORMAT_UNKNOWN_ERROR,
135
136    RESOURCE_NOT_AVAILABLE  :   ST.ERR_RESOURCE_NOT_AVAILABLE,
137    RESOURCE_ALLOCATE_FAILURE : ST.ERR_RESOURCE_ALLOCATE_FAILURE,
138    RESOURCE_FULL           :   ST.ERR_RESOURCE_FULL,
139    RESOURCE_OVERFLOW       :   ST.ERR_RESOURCE_OVERFLOW,
140    RESOURCE_UNDERRUN       :   ST.ERR_RESOURCE_UNDERRUN,
141    RESOURCE_UNKNOWN_ERROR  :   ST.ERR_RESOURCE_UNKNOWN_ERROR,
142
143    ATTRIBUTE_NOT_AVAILABLE :   ST.ERR_ATTRIBUTE_NOT_AVAILABLE,
144    ATTRIBUTE_RETRIEVE_FAILURE : ST.ERR_ATTRIBUTE_RETRIEVE_FAILURE,
145    ATTRIBUTE_SET_FAILURE   :   ST.ERR_ATTRIBUTE_SET_FAILURE,
146    ATTRIBUTE_UPDATE_FAILURE:   ST.ERR_ATTRIBUTE_UPDATE_FAILURE,
147    ATTRIBUTE_ACCESS_DENIED :   ST.ERR_ATTRIBUTE_ACCESS_DENIED,
148    ATTRIBUTE_UNKNOWN_ERROR :   ST.ERR_ATTRIBUTE_UNKNOWN_ERROR,
149
150    COMMAND_FAILURE         :   ST.ERR_COMMAND_FAILURE,
151
152    IO_NOT_READY            :   ST.ERR_IO_NOT_READY,
153    IO_BUSY                 :   ST.ERR_IO_BUSY,
154    IO_TIMEOUT              :   ST.ERR_IO_TIMEOUT,
155    IO_UNKNOWN_ERROR        :   ST.ERR_IO_UNKNOWN_ERROR,
156
157    UNKNOWN_ERROR           :   ST.ERR_UNKNOWN_ERROR,
158
159    UPT_ALREADY_INSTALLED_ERROR : ST.ERR_UPT_ALREADY_INSTALLED_ERROR,
160    UPT_ENVIRON_MISSING_ERROR   : ST.ERR_UPT_ENVIRON_MISSING_ERROR,
161    UPT_REPKG_ERROR             : ST.ERR_UPT_REPKG_ERROR,
162    UPT_ALREADY_RUNNING_ERROR   : ST.ERR_UPT_ALREADY_RUNNING_ERROR,
163    UPT_MUL_DEC_ERROR           : ST.ERR_MUL_DEC_ERROR,
164    UPT_INI_PARSE_ERROR     :   ST.ERR_UPT_INI_PARSE_ERROR,
165}
166
167## Exception indicating a fatal error
168#
169class FatalError(Exception):
170    pass
171
172