nsarguments.c (316303) | nsarguments.c (322877) |
---|---|
1/****************************************************************************** 2 * 3 * Module Name: nsarguments - Validation of args for ACPI predefined methods 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 169 unchanged lines hidden (view full) --- 178{ 179 UINT16 ArgTypeList; 180 UINT8 ArgCount; 181 UINT8 ArgType; 182 UINT8 UserArgType; 183 UINT32 i; 184 185 | 1/****************************************************************************** 2 * 3 * Module Name: nsarguments - Validation of args for ACPI predefined methods 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 169 unchanged lines hidden (view full) --- 178{ 179 UINT16 ArgTypeList; 180 UINT8 ArgCount; 181 UINT8 ArgType; 182 UINT8 UserArgType; 183 UINT32 i; 184 185 |
186 /* If not a predefined name, cannot typecheck args */ 187 188 if (!Info->Predefined) | 186 /* 187 * If not a predefined name, cannot typecheck args, because 188 * we have no idea what argument types are expected. 189 * Also, ignore typecheck if warnings/errors if this method 190 * has already been evaluated at least once -- in order 191 * to suppress repetitive messages. 192 */ 193 if (!Info->Predefined || (Info->Node->Flags & ANOBJ_EVALUATED)) |
189 { 190 return; 191 } 192 193 ArgTypeList = Info->Predefined->Info.ArgumentList; 194 ArgCount = METHOD_GET_ARG_COUNT (ArgTypeList); 195 196 /* Typecheck all arguments */ --- 5 unchanged lines hidden (view full) --- 202 203 if (UserArgType != ArgType) 204 { 205 ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, ACPI_WARN_ALWAYS, 206 "Argument #%u type mismatch - " 207 "Found [%s], ACPI requires [%s]", (i + 1), 208 AcpiUtGetTypeName (UserArgType), 209 AcpiUtGetTypeName (ArgType))); | 194 { 195 return; 196 } 197 198 ArgTypeList = Info->Predefined->Info.ArgumentList; 199 ArgCount = METHOD_GET_ARG_COUNT (ArgTypeList); 200 201 /* Typecheck all arguments */ --- 5 unchanged lines hidden (view full) --- 207 208 if (UserArgType != ArgType) 209 { 210 ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, ACPI_WARN_ALWAYS, 211 "Argument #%u type mismatch - " 212 "Found [%s], ACPI requires [%s]", (i + 1), 213 AcpiUtGetTypeName (UserArgType), 214 AcpiUtGetTypeName (ArgType))); |
215 216 /* Prevent any additional typechecking for this method */ 217 218 Info->Node->Flags |= ANOBJ_EVALUATED; |
|
210 } 211 } 212} 213 214 215/******************************************************************************* 216 * 217 * FUNCTION: AcpiNsCheckAcpiCompliance --- 15 unchanged lines hidden (view full) --- 233 char *Pathname, 234 ACPI_NAMESPACE_NODE *Node, 235 const ACPI_PREDEFINED_INFO *Predefined) 236{ 237 UINT32 AmlParamCount; 238 UINT32 RequiredParamCount; 239 240 | 219 } 220 } 221} 222 223 224/******************************************************************************* 225 * 226 * FUNCTION: AcpiNsCheckAcpiCompliance --- 15 unchanged lines hidden (view full) --- 242 char *Pathname, 243 ACPI_NAMESPACE_NODE *Node, 244 const ACPI_PREDEFINED_INFO *Predefined) 245{ 246 UINT32 AmlParamCount; 247 UINT32 RequiredParamCount; 248 249 |
241 if (!Predefined) | 250 if (!Predefined || (Node->Flags & ANOBJ_EVALUATED)) |
242 { 243 return; 244 } 245 246 /* Get the ACPI-required arg count from the predefined info table */ 247 248 RequiredParamCount = 249 METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); --- 77 unchanged lines hidden (view full) --- 327 ACPI_NAMESPACE_NODE *Node, 328 UINT32 UserParamCount, 329 const ACPI_PREDEFINED_INFO *Predefined) 330{ 331 UINT32 AmlParamCount; 332 UINT32 RequiredParamCount; 333 334 | 251 { 252 return; 253 } 254 255 /* Get the ACPI-required arg count from the predefined info table */ 256 257 RequiredParamCount = 258 METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); --- 77 unchanged lines hidden (view full) --- 336 ACPI_NAMESPACE_NODE *Node, 337 UINT32 UserParamCount, 338 const ACPI_PREDEFINED_INFO *Predefined) 339{ 340 UINT32 AmlParamCount; 341 UINT32 RequiredParamCount; 342 343 |
344 if (Node->Flags & ANOBJ_EVALUATED) 345 { 346 return; 347 } 348 |
|
335 if (!Predefined) 336 { 337 /* 338 * Not a predefined name. Check the incoming user argument count 339 * against the count that is specified in the method/object. 340 */ 341 if (Node->Type != ACPI_TYPE_METHOD) 342 { --- 71 unchanged lines hidden --- | 349 if (!Predefined) 350 { 351 /* 352 * Not a predefined name. Check the incoming user argument count 353 * against the count that is specified in the method/object. 354 */ 355 if (Node->Type != ACPI_TYPE_METHOD) 356 { --- 71 unchanged lines hidden --- |