Lines Matching full:package
4 * Module Name: nsprepkg - Validation of package objects for predefined names
21 const union acpi_predefined_info *package,
45 * DESCRIPTION: Check a returned package object for the correct count and
55 const union acpi_predefined_info *package; in acpi_ns_check_package() local
64 /* The package info for this name is in the next table entry */ in acpi_ns_check_package()
66 package = info->predefined + 1; in acpi_ns_check_package()
69 "%s Validating return Package of Type %X, Count %X\n", in acpi_ns_check_package()
70 info->full_pathname, package->ret_info.type, in acpi_ns_check_package()
71 return_object->package.count)); in acpi_ns_check_package()
75 * and trailing NULL package elements in acpi_ns_check_package()
77 acpi_ns_remove_null_elements(info, package->ret_info.type, in acpi_ns_check_package()
80 /* Extract package count and elements array */ in acpi_ns_check_package()
82 elements = return_object->package.elements; in acpi_ns_check_package()
83 count = return_object->package.count; in acpi_ns_check_package()
87 * is the variable-length package (ACPI_PTYPE1_VAR). in acpi_ns_check_package()
90 if (package->ret_info.type == ACPI_PTYPE1_VAR) { in acpi_ns_check_package()
96 "Return Package has no elements (empty)")); in acpi_ns_check_package()
102 * Decode the type of the expected package contents in acpi_ns_check_package()
107 switch (package->ret_info.type) { in acpi_ns_check_package()
115 * The package count is fixed and there are no subpackages in acpi_ns_check_package()
117 * If package is too small, exit. in acpi_ns_check_package()
118 * If package is larger than expected, issue warning but continue in acpi_ns_check_package()
121 package->ret_info.count1 + package->ret_info.count2; in acpi_ns_check_package()
126 "%s: Return Package is larger than needed - " in acpi_ns_check_package()
132 /* Validate all elements of the returned package */ in acpi_ns_check_package()
135 package->ret_info. in acpi_ns_check_package()
137 package->ret_info. in acpi_ns_check_package()
139 package->ret_info. in acpi_ns_check_package()
141 package->ret_info. in acpi_ns_check_package()
147 * The package count is variable, there are no subpackages, and all in acpi_ns_check_package()
152 package->ret_info. in acpi_ns_check_package()
164 * The package count is variable, there are no subpackages. There are in acpi_ns_check_package()
168 * Check if package is at least as large as the minimum required in acpi_ns_check_package()
170 expected_count = package->ret_info3.count; in acpi_ns_check_package()
178 if (i < package->ret_info3.count) { in acpi_ns_check_package()
180 /* These are the required package elements (0, 1, or 2) */ in acpi_ns_check_package()
184 package-> in acpi_ns_check_package()
192 /* These are the optional package elements */ in acpi_ns_check_package()
196 package-> in acpi_ns_check_package()
226 acpi_ns_check_package_list(info, package, elements, count); in acpi_ns_check_package()
241 * Count cannot be larger than the parent package length, but allow it in acpi_ns_check_package()
255 acpi_ns_check_package_list(info, package, elements, count); in acpi_ns_check_package()
264 * These types all return a single Package that consists of a in acpi_ns_check_package()
269 * package instead of a Package of Packages (a common error if in acpi_ns_check_package()
271 * wrapping the returned Package with a new outer Package. in acpi_ns_check_package()
276 /* Create the new outer package and populate it */ in acpi_ns_check_package()
285 /* Update locals to point to the new package (of 1 element) */ in acpi_ns_check_package()
288 elements = return_object->package.elements; in acpi_ns_check_package()
295 acpi_ns_check_package_list(info, package, elements, count); in acpi_ns_check_package()
307 /* The package must contain pairs of (UUID + type) */ in acpi_ns_check_package()
316 package->ret_info. in acpi_ns_check_package()
333 package->ret_info. in acpi_ns_check_package()
351 package->ret_info.type)); in acpi_ns_check_package()
360 /* Error exit for the case with an incorrect package count */ in acpi_ns_check_package()
363 "Return Package is too small - found %u elements, expected %u", in acpi_ns_check_package()
374 * package - Pointer to package-specific info for method
375 * elements - Element list of parent package. All elements
376 * of this list should be of type Package.
387 const union acpi_predefined_info *package, in acpi_ns_check_package_list() argument
398 * Validate each subpackage in the parent Package in acpi_ns_check_package_list()
406 sub_elements = sub_package->package.elements; in acpi_ns_check_package_list()
409 /* Each sub-object must be of type Package */ in acpi_ns_check_package_list()
420 switch (package->ret_info.type) { in acpi_ns_check_package_list()
428 package->ret_info.count1 + package->ret_info.count2; in acpi_ns_check_package_list()
429 if (sub_package->package.count < expected_count) { in acpi_ns_check_package_list()
435 package->ret_info. in acpi_ns_check_package_list()
437 package->ret_info. in acpi_ns_check_package_list()
439 package->ret_info. in acpi_ns_check_package_list()
441 package->ret_info. in acpi_ns_check_package_list()
454 package->ret_info.count1 + package->ret_info.count2; in acpi_ns_check_package_list()
455 if (sub_package->package.count < expected_count) { in acpi_ns_check_package_list()
461 package->ret_info. in acpi_ns_check_package_list()
463 package->ret_info. in acpi_ns_check_package_list()
465 package->ret_info. in acpi_ns_check_package_list()
467 sub_package->package. in acpi_ns_check_package_list()
469 package->ret_info. in acpi_ns_check_package_list()
486 expected_count = package->ret_info2.count; in acpi_ns_check_package_list()
487 if (sub_package->package.count < expected_count) { in acpi_ns_check_package_list()
497 package-> in acpi_ns_check_package_list()
511 expected_count = package->ret_info.count1; in acpi_ns_check_package_list()
512 if (sub_package->package.count < expected_count) { in acpi_ns_check_package_list()
520 package->ret_info. in acpi_ns_check_package_list()
522 sub_package->package. in acpi_ns_check_package_list()
542 * Make sure package is large enough for the Count and is in acpi_ns_check_package_list()
546 if (sub_package->package.count < expected_count) { in acpi_ns_check_package_list()
550 if (sub_package->package.count < in acpi_ns_check_package_list()
551 package->ret_info.count1) { in acpi_ns_check_package_list()
552 expected_count = package->ret_info.count1; in acpi_ns_check_package_list()
563 expected_count = sub_package->package.count; in acpi_ns_check_package_list()
572 package->ret_info. in acpi_ns_check_package_list()
583 ACPI_ERROR((AE_INFO, "Invalid Package type: %X", in acpi_ns_check_package_list()
584 package->ret_info.type)); in acpi_ns_check_package_list()
599 i, sub_package->package.count, expected_count)); in acpi_ns_check_package_list()
609 * elements - Pointer to the package elements array
610 * count - Element count for the package
614 * DESCRIPTION: Check a returned package object for the correct count and
637 "Return Package has invalid object type for version number")); in acpi_ns_custom_package()
651 "Return Package is too small - found %u elements, expected %u", in acpi_ns_custom_package()
656 "%s: Return Package is larger than needed - " in acpi_ns_custom_package()
661 /* Validate all elements of the returned package */ in acpi_ns_custom_package()
686 * elements - Pointer to the package elements array
695 * DESCRIPTION: Check that all elements of a package are of the correct object
714 * Up to two groups of package elements are supported by the data in acpi_ns_check_package_elements()