1 /** @file
2   Root include file for Shell Package modules that utilize the SHELL_RETURN type
3 
4   Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef _SHELL_BASE_
16 #define _SHELL_BASE_
17 
18 typedef VOID *SHELL_FILE_HANDLE;
19 
20 #define SHELL_FREE_NON_NULL(Pointer)  \
21   do {                                \
22     if ((Pointer) != NULL) {          \
23       FreePool((Pointer));            \
24       (Pointer) = NULL;               \
25     }                                 \
26   } while(FALSE)
27 
28 typedef enum {
29 ///
30 /// The operation completed successfully.
31 ///
32 SHELL_SUCCESS               = 0,
33 
34 ///
35 /// The image failed to load.
36 ///
37 SHELL_LOAD_ERROR            = 1,
38 
39 ///
40 /// The parameter was incorrect.
41 ///
42 SHELL_INVALID_PARAMETER     = 2,
43 
44 ///
45 /// The operation is not supported.
46 ///
47 SHELL_UNSUPPORTED           = 3,
48 
49 ///
50 /// The buffer was not the proper size for the request.
51 ///
52 SHELL_BAD_BUFFER_SIZE       = 4,
53 
54 ///
55 /// The buffer was not large enough to hold the requested data.
56 /// The required buffer size is returned in the appropriate
57 /// parameter when this error occurs.
58 ///
59 SHELL_BUFFER_TOO_SMALL      = 5,
60 
61 ///
62 /// There is no data pending upon return.
63 ///
64 SHELL_NOT_READY             = 6,
65 
66 ///
67 /// The physical device reported an error while attempting the
68 /// operation.
69 ///
70 SHELL_DEVICE_ERROR          = 7,
71 
72 ///
73 /// The device cannot be written to.
74 ///
75 SHELL_WRITE_PROTECTED       = 8,
76 
77 ///
78 /// The resource has run out.
79 ///
80 SHELL_OUT_OF_RESOURCES      = 9,
81 
82 ///
83 /// An inconsistency was detected on the file system causing the
84 /// operation to fail.
85 ///
86 SHELL_VOLUME_CORRUPTED      = 10,
87 
88 ///
89 /// There is no more space on the file system.
90 ///
91 SHELL_VOLUME_FULL           = 11,
92 
93 ///
94 /// The device does not contain any medium to perform the
95 /// operation.
96 ///
97 SHELL_NO_MEDIA              = 12,
98 
99 ///
100 /// The medium in the device has changed since the last
101 /// access.
102 ///
103 SHELL_MEDIA_CHANGED         = 13,
104 
105 ///
106 /// The item was not found.
107 ///
108 SHELL_NOT_FOUND             = 14,
109 
110 ///
111 /// Access was denied.
112 ///
113 SHELL_ACCESS_DENIED         = 15,
114 
115 // note the skipping of 16 and 17
116 
117 ///
118 /// A timeout time expired.
119 ///
120 SHELL_TIMEOUT               = 18,
121 
122 ///
123 /// The protocol has not been started.
124 ///
125 SHELL_NOT_STARTED           = 19,
126 
127 ///
128 /// The protocol has already been started.
129 ///
130 SHELL_ALREADY_STARTED       = 20,
131 
132 ///
133 /// The operation was aborted.
134 ///
135 SHELL_ABORTED               = 21,
136 
137 // note the skipping of 22, 23, and 24
138 
139 ///
140 /// A function encountered an internal version that was
141 /// incompatible with a version requested by the caller.
142 ///
143 SHELL_INCOMPATIBLE_VERSION  = 25,
144 
145 ///
146 /// The function was not performed due to a security violation.
147 ///
148 SHELL_SECURITY_VIOLATION    = 26,
149 
150 ///
151 /// The function was performed and resulted in an unequal
152 /// comparison..
153 ///
154 SHELL_NOT_EQUAL             = 27
155 }SHELL_STATUS;
156 
157 #endif //__SHELL_BASE_
158