summaryrefslogtreecommitdiff
path: root/source/compiler
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2011-07-13 07:31:15 -0700
committerLin Ming <ming.m.lin@intel.com>2011-11-10 10:10:22 +0800
commitc5865877ddd1d3c7fdba5dfad4d8041e7f18d50c (patch)
treef82a751e9ae49eeeb8c6eb9be14da92c9c77a464 /source/compiler
parent5a5b2f1e178fce941143261915226dbe467a2318 (diff)
ACPI 5.0/iASL: Initial support for "Connection" keyword.
Just parser support.
Diffstat (limited to 'source/compiler')
-rw-r--r--source/compiler/aslcompiler.l1
-rw-r--r--source/compiler/aslcompiler.y11
-rw-r--r--source/compiler/aslmap.c1
3 files changed, 13 insertions, 0 deletions
diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l
index 20647e1e4..142cd032e 100644
--- a/source/compiler/aslcompiler.l
+++ b/source/compiler/aslcompiler.l
@@ -197,6 +197,7 @@ NamePathTail [.]{NameSeg}
"Offset" { count (1); return (PARSEOP_OFFSET); }
"AccessAs" { count (1); return (PARSEOP_ACCESSAS); }
"BankField" { count (2); return (PARSEOP_BANKFIELD); }
+"Connection" { count (2); return (PARSEOP_CONNECTION); }
"CreateBitField" { count (2); return (PARSEOP_CREATEBITFIELD); }
"CreateByteField" { count (2); return (PARSEOP_CREATEBYTEFIELD); }
"CreateDWordField" { count (2); return (PARSEOP_CREATEDWORDFIELD); }
diff --git a/source/compiler/aslcompiler.y b/source/compiler/aslcompiler.y
index 63560bbb0..7ed215d39 100644
--- a/source/compiler/aslcompiler.y
+++ b/source/compiler/aslcompiler.y
@@ -241,6 +241,7 @@ void * AslLocalAllocate (unsigned int Size);
%token <i> PARSEOP_CONCATENATE
%token <i> PARSEOP_CONCATENATERESTEMPLATE
%token <i> PARSEOP_CONDREFOF
+%token <i> PARSEOP_CONNECTION
%token <i> PARSEOP_CONTINUE
%token <i> PARSEOP_COPYOBJECT
%token <i> PARSEOP_CREATEBITFIELD
@@ -769,6 +770,7 @@ void * AslLocalAllocate (unsigned int Size);
%type <n> ResourceMacroList
%type <n> ResourceMacroTerm
+%type <n> ConnectionTerm
%type <n> DMATerm
%type <n> DWordIOTerm
%type <n> DWordMemoryTerm
@@ -1271,6 +1273,7 @@ FieldUnit
: FieldUnitEntry {}
| OffsetTerm {}
| AccessAsTerm {}
+ | ConnectionTerm {}
;
FieldUnitEntry
@@ -1296,6 +1299,14 @@ AccessAsTerm
error ')' {$$ = AslDoError(); yyclearin;}
;
+ConnectionTerm
+ : PARSEOP_CONNECTION '('
+ ResourceMacroTerm
+ ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
+ | PARSEOP_CONNECTION '('
+ error ')' {$$ = AslDoError(); yyclearin;}
+ ;
+
CreateBitFieldTerm
: PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
TermArg
diff --git a/source/compiler/aslmap.c b/source/compiler/aslmap.c
index 14d875a06..ef603b662 100644
--- a/source/compiler/aslmap.c
+++ b/source/compiler/aslmap.c
@@ -252,6 +252,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] =
/* CONCATENATE */ OP_TABLE_ENTRY (AML_CONCAT_OP, 0, 0, ACPI_BTYPE_COMPUTE_DATA),
/* CONCATENATERESTEMPLATE */ OP_TABLE_ENTRY (AML_CONCAT_RES_OP, 0, 0, ACPI_BTYPE_BUFFER),
/* CONDREFOF */ OP_TABLE_ENTRY (AML_COND_REF_OF_OP, 0, 0, ACPI_BTYPE_INTEGER),
+/* CONNECTION */ OP_TABLE_ENTRY (AML_INT_CONNECTION_OP, 0, 0, 0),
/* CONTINUE */ OP_TABLE_ENTRY (AML_CONTINUE_OP, 0, 0, 0),
/* COPY */ OP_TABLE_ENTRY (AML_COPY_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE),
/* CREATEBITFIELD */ OP_TABLE_ENTRY (AML_CREATE_BIT_FIELD_OP, 0, 0, 0),