99{
107
108
110
111
112
113
114 Package =
Info->Predefined + 1;
115
117 "%s Validating return Package of Type %X, Count %X\n",
120
121
122
123
124
126
127
128
131
132
133
134
135
137 {
139 {
141 }
142
144 "Return Package has no elements (empty)"));
145
147 }
148
149
150
151
152
153
154
156 {
158
160 break;
161
163
164
165
166
167
168
170 if (
Count < ExpectedCount)
171 {
172 goto PackageTooSmall;
173 }
174 else if (
Count > ExpectedCount)
175 {
177 "%s: Return Package is larger than needed - "
178 "found %u, expected %u\n",
179 Info->FullPathname,
Count, ExpectedCount));
180 }
181
182
183
187 break;
188
190
191
192
193
195 {
199 {
201 }
202
203 Elements++;
204 }
205 break;
206
208
209
210
211
212
213
214
216 if (
Count < ExpectedCount)
217 {
218 goto PackageTooSmall;
219 }
220
221
222
224 {
225 if (i < Package->RetInfo3.Count)
226 {
227
228
232 {
234 }
235 }
236 else
237 {
238
239
243 {
245 }
246 }
247
248 Elements++;
249 }
250 break;
251
253
254
255
259 {
261 }
262
263 Elements++;
265
266
267
269 break;
270
272
273
274
278 {
280 }
281
282
283
284
285
286 ExpectedCount = (
UINT32) (*Elements)->Integer.Value;
288 {
289 goto PackageTooSmall;
290 }
291
292 Count = ExpectedCount;
293 Elements++;
294
295
296
298 break;
299
305
306
307
308
309
310
311
312
313
314
316 {
317
318
320 Info, ReturnObject, ReturnObjectPtr);
322 {
324 }
325
326
327
328 ReturnObject = *ReturnObjectPtr;
331 }
332
333
334
336 break;
337
339
340
341
342
343 break;
344
346
347
348
350 {
351 ExpectedCount =
Count + 1;
352 goto PackageTooSmall;
353 }
354
356 {
360 {
362 }
363
364
365
366 if ((*Elements)->Buffer.Length != 16)
367 {
369 Info->NodeFlags,
"Invalid length for UUID Buffer"));
371 }
372
376 {
378 }
379
380 Elements += 2;
382 }
383 break;
384
385 default:
386
387
388
390 "Invalid internal return type in table entry: %X",
392
394 }
395
397
398
399PackageTooSmall:
400
401
402
404 "Return Package is too small - found %u elements, expected %u",
405 Count, ExpectedCount));
406
408}
#define AE_AML_OPERAND_VALUE
#define ACPI_RTYPE_INTEGER
#define ACPI_WARN_PREDEFINED(plist)
ACPI_STATUS AcpiNsWrapWithPackage(ACPI_EVALUATE_INFO *Info, ACPI_OPERAND_OBJECT *OriginalObject, ACPI_OPERAND_OBJECT **ObjDescPtr)
ACPI_STATUS AcpiNsCheckObjectType(ACPI_EVALUATE_INFO *Info, ACPI_OPERAND_OBJECT **ReturnObjectPtr, UINT32 ExpectedBtypes, UINT32 PackageIndex)
void AcpiNsRemoveNullElements(ACPI_EVALUATE_INFO *Info, UINT8 PackageType, ACPI_OPERAND_OBJECT *ObjDesc)
#define ACPI_DEBUG_PRINT(pl)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_TYPE_PACKAGE
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static ACPI_STATUS AcpiNsCheckPackageList(ACPI_EVALUATE_INFO *Info, const ACPI_PREDEFINED_INFO *Package, ACPI_OPERAND_OBJECT **Elements, UINT32 Count)
static ACPI_STATUS AcpiNsCheckPackageElements(ACPI_EVALUATE_INFO *Info, ACPI_OPERAND_OBJECT **Elements, UINT8 Type1, UINT32 Count1, UINT8 Type2, UINT32 Count2, UINT32 StartIndex)
static ACPI_STATUS AcpiNsCustomPackage(ACPI_EVALUATE_INFO *Info, ACPI_OPERAND_OBJECT **Elements, UINT32 Count)
union acpi_operand_object ** Elements
ACPI_OBJECT_PACKAGE Package
ACPI_PACKAGE_INFO RetInfo
ACPI_PACKAGE_INFO3 RetInfo3
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info