aslexternal.c (4224465e820a1a7232255d980e692720169776af) aslexternal.c (5f9b24fa4327c851ddb733b73904401afe3f0123)
1/******************************************************************************
2 *
3 * Module Name: aslexternal - ASL External opcode compiler support
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *

--- 188 unchanged lines hidden (view full) ---

197 ArgCountOp = Op->Asl.Child->Asl.Next->Asl.Next;
198 ArgCountOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
199 ArgCountOp->Asl.ParseOpcode = PARSEOP_BYTECONST;
200 ArgCountOp->Asl.Value.Integer = 0;
201 UtSetParseOpName (ArgCountOp);
202
203 /* Create new list node of arbitrary type */
204
1/******************************************************************************
2 *
3 * Module Name: aslexternal - ASL External opcode compiler support
4 *
5 *****************************************************************************/
6
7/******************************************************************************
8 *

--- 188 unchanged lines hidden (view full) ---

197 ArgCountOp = Op->Asl.Child->Asl.Next->Asl.Next;
198 ArgCountOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
199 ArgCountOp->Asl.ParseOpcode = PARSEOP_BYTECONST;
200 ArgCountOp->Asl.Value.Integer = 0;
201 UtSetParseOpName (ArgCountOp);
202
203 /* Create new list node of arbitrary type */
204
205 ListOp = TrAllocateNode (PARSEOP_DEFAULT_ARG);
205 ListOp = TrAllocateOp (PARSEOP_DEFAULT_ARG);
206
207 /* Store External node as child */
208
209 ListOp->Asl.Child = Op;
210 ListOp->Asl.Next = NULL;
211
212 if (Gbl_ExternalsListHead)
213 {

--- 47 unchanged lines hidden (view full) ---

261
262 Next = Gbl_ExternalsListHead;
263 while (Next)
264 {
265 ArgCount = 0;
266
267 /* Skip if External node already handled */
268
206
207 /* Store External node as child */
208
209 ListOp->Asl.Child = Op;
210 ListOp->Asl.Next = NULL;
211
212 if (Gbl_ExternalsListHead)
213 {

--- 47 unchanged lines hidden (view full) ---

261
262 Next = Gbl_ExternalsListHead;
263 while (Next)
264 {
265 ArgCount = 0;
266
267 /* Skip if External node already handled */
268
269 if (Next->Asl.Child->Asl.CompileFlags & NODE_VISITED)
269 if (Next->Asl.Child->Asl.CompileFlags & OP_VISITED)
270 {
271 Next = Next->Asl.Next;
272 continue;
273 }
274
275 NameOp = Next->Asl.Child->Asl.Child;
276 ExternalName = AcpiNsGetNormalizedPathname (NameOp->Asl.Node, TRUE);
277
278 if (strcmp (CallName, ExternalName))
279 {
280 ACPI_FREE (ExternalName);
281 Next = Next->Asl.Next;
282 continue;
283 }
284
270 {
271 Next = Next->Asl.Next;
272 continue;
273 }
274
275 NameOp = Next->Asl.Child->Asl.Child;
276 ExternalName = AcpiNsGetNormalizedPathname (NameOp->Asl.Node, TRUE);
277
278 if (strcmp (CallName, ExternalName))
279 {
280 ACPI_FREE (ExternalName);
281 Next = Next->Asl.Next;
282 continue;
283 }
284
285 Next->Asl.Child->Asl.CompileFlags |= NODE_VISITED;
285 Next->Asl.Child->Asl.CompileFlags |= OP_VISITED;
286
287 /*
288 * Since we will reposition Externals to the Root, set Namepath
289 * to the fully qualified name and recalculate the aml length
290 */
291 Status = UtInternalizeName (ExternalName,
292 &NameOp->Asl.Value.String);
293

--- 245 unchanged lines hidden (view full) ---

539 Prev = Gbl_ExternalsListHead->Asl.Child;
540 Next = Prev;
541 while (Next)
542 {
543 ObjType = (ACPI_OBJECT_TYPE)
544 Next->Asl.Child->Asl.Next->Asl.Value.Integer;
545
546 if (ObjType == ACPI_TYPE_METHOD &&
286
287 /*
288 * Since we will reposition Externals to the Root, set Namepath
289 * to the fully qualified name and recalculate the aml length
290 */
291 Status = UtInternalizeName (ExternalName,
292 &NameOp->Asl.Value.String);
293

--- 245 unchanged lines hidden (view full) ---

539 Prev = Gbl_ExternalsListHead->Asl.Child;
540 Next = Prev;
541 while (Next)
542 {
543 ObjType = (ACPI_OBJECT_TYPE)
544 Next->Asl.Child->Asl.Next->Asl.Value.Integer;
545
546 if (ObjType == ACPI_TYPE_METHOD &&
547 !(Next->Asl.CompileFlags & NODE_VISITED))
547 !(Next->Asl.CompileFlags & OP_VISITED))
548 {
549 if (Next == Prev)
550 {
551 Gbl_ExternalsListHead->Asl.Child = Next->Asl.Next;
552 Next->Asl.Next = NULL;
553 Prev = Gbl_ExternalsListHead->Asl.Child;
554 Next = Prev;
555 continue;

--- 17 unchanged lines hidden (view full) ---

573 {
574 return;
575 }
576
577 /* Convert Gbl_ExternalsListHead parent to If(). */
578
579 Gbl_ExternalsListHead->Asl.ParseOpcode = PARSEOP_IF;
580 Gbl_ExternalsListHead->Asl.AmlOpcode = AML_IF_OP;
548 {
549 if (Next == Prev)
550 {
551 Gbl_ExternalsListHead->Asl.Child = Next->Asl.Next;
552 Next->Asl.Next = NULL;
553 Prev = Gbl_ExternalsListHead->Asl.Child;
554 Next = Prev;
555 continue;

--- 17 unchanged lines hidden (view full) ---

573 {
574 return;
575 }
576
577 /* Convert Gbl_ExternalsListHead parent to If(). */
578
579 Gbl_ExternalsListHead->Asl.ParseOpcode = PARSEOP_IF;
580 Gbl_ExternalsListHead->Asl.AmlOpcode = AML_IF_OP;
581 Gbl_ExternalsListHead->Asl.CompileFlags = NODE_AML_PACKAGE;
581 Gbl_ExternalsListHead->Asl.CompileFlags = OP_AML_PACKAGE;
582 UtSetParseOpName (Gbl_ExternalsListHead);
583
584 /* Create a Zero op for the If predicate */
585
582 UtSetParseOpName (Gbl_ExternalsListHead);
583
584 /* Create a Zero op for the If predicate */
585
586 PredicateOp = TrAllocateNode (PARSEOP_ZERO);
586 PredicateOp = TrAllocateOp (PARSEOP_ZERO);
587 PredicateOp->Asl.AmlOpcode = AML_ZERO_OP;
588
589 PredicateOp->Asl.Parent = Gbl_ExternalsListHead;
590 PredicateOp->Asl.Child = NULL;
591 PredicateOp->Asl.Next = Gbl_ExternalsListHead->Asl.Child;
592 Gbl_ExternalsListHead->Asl.Child = PredicateOp;
593
594 /* Set line numbers (for listings, etc.) */

--- 36 unchanged lines hidden ---
587 PredicateOp->Asl.AmlOpcode = AML_ZERO_OP;
588
589 PredicateOp->Asl.Parent = Gbl_ExternalsListHead;
590 PredicateOp->Asl.Child = NULL;
591 PredicateOp->Asl.Next = Gbl_ExternalsListHead->Asl.Child;
592 Gbl_ExternalsListHead->Asl.Child = PredicateOp;
593
594 /* Set line numbers (for listings, etc.) */

--- 36 unchanged lines hidden ---