Deleted Added
full compact
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 ---