]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Include/ShellBase.h
bd0462c59c5c6c9b2252fe3604ef7aca2b07a2fb
[mirror_edk2.git] / ShellPkg / Include / ShellBase.h
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 #define ABS(a) (a<0)?(-(a)):(a)
19
20 typedef VOID *SHELL_FILE_HANDLE;
21
22 #ifndef SHELL_FREE_NON_NULL
23 #define SHELL_FREE_NON_NULL(Pointer) \
24 do { \
25 if ((Pointer) != NULL) { \
26 FreePool((Pointer)); \
27 (Pointer) = NULL; \
28 } \
29 } while(FALSE)
30 #endif //SHELL_FREE_NON_NULL
31
32 typedef enum {
33 ///
34 /// The operation completed successfully.
35 ///
36 SHELL_SUCCESS = 0,
37
38 ///
39 /// The image failed to load.
40 ///
41 SHELL_LOAD_ERROR = 1,
42
43 ///
44 /// The parameter was incorrect.
45 ///
46 SHELL_INVALID_PARAMETER = 2,
47
48 ///
49 /// The operation is not supported.
50 ///
51 SHELL_UNSUPPORTED = 3,
52
53 ///
54 /// The buffer was not the proper size for the request.
55 ///
56 SHELL_BAD_BUFFER_SIZE = 4,
57
58 ///
59 /// The buffer was not large enough to hold the requested data.
60 /// The required buffer size is returned in the appropriate
61 /// parameter when this error occurs.
62 ///
63 SHELL_BUFFER_TOO_SMALL = 5,
64
65 ///
66 /// There is no data pending upon return.
67 ///
68 SHELL_NOT_READY = 6,
69
70 ///
71 /// The physical device reported an error while attempting the
72 /// operation.
73 ///
74 SHELL_DEVICE_ERROR = 7,
75
76 ///
77 /// The device cannot be written to.
78 ///
79 SHELL_WRITE_PROTECTED = 8,
80
81 ///
82 /// The resource has run out.
83 ///
84 SHELL_OUT_OF_RESOURCES = 9,
85
86 ///
87 /// An inconsistency was detected on the file system causing the
88 /// operation to fail.
89 ///
90 SHELL_VOLUME_CORRUPTED = 10,
91
92 ///
93 /// There is no more space on the file system.
94 ///
95 SHELL_VOLUME_FULL = 11,
96
97 ///
98 /// The device does not contain any medium to perform the
99 /// operation.
100 ///
101 SHELL_NO_MEDIA = 12,
102
103 ///
104 /// The medium in the device has changed since the last
105 /// access.
106 ///
107 SHELL_MEDIA_CHANGED = 13,
108
109 ///
110 /// The item was not found.
111 ///
112 SHELL_NOT_FOUND = 14,
113
114 ///
115 /// Access was denied.
116 ///
117 SHELL_ACCESS_DENIED = 15,
118
119 // note the skipping of 16 and 17
120
121 ///
122 /// A timeout time expired.
123 ///
124 SHELL_TIMEOUT = 18,
125
126 ///
127 /// The protocol has not been started.
128 ///
129 SHELL_NOT_STARTED = 19,
130
131 ///
132 /// The protocol has already been started.
133 ///
134 SHELL_ALREADY_STARTED = 20,
135
136 ///
137 /// The operation was aborted.
138 ///
139 SHELL_ABORTED = 21,
140
141 // note the skipping of 22, 23, and 24
142
143 ///
144 /// A function encountered an internal version that was
145 /// incompatible with a version requested by the caller.
146 ///
147 SHELL_INCOMPATIBLE_VERSION = 25,
148
149 ///
150 /// The function was not performed due to a security violation.
151 ///
152 SHELL_SECURITY_VIOLATION = 26,
153
154 ///
155 /// The function was performed and resulted in an unequal
156 /// comparison..
157 ///
158 SHELL_NOT_EQUAL = 27
159 }SHELL_STATUS;
160
161 #endif //__SHELL_BASE__