public override void Visit(AmlParser.DefVarPackage defVarPackage) { defVarPackage.varNumElements.integer.Accept(this); AcpiObject.AcpiObject numElementsObj = result; CheckObjectType(numElementsObj, AcpiObjectType.Integer); VisitPackage((byte)(((AcpiObject.Integer)(numElementsObj.GetTarget())).Value), defVarPackage.packageElementList); }
public override void Visit(AmlParser.DefCreateField defCreateField) { AcpiObject.AcpiObject sizeObj = LoadTimeEvaluate(defCreateField.numBits.integer); CheckObjectType(sizeObj, AcpiObjectType.Integer); VisitField(defCreateField.sourceBuff, defCreateField.bitIndex.integer, 1, ((AcpiObject.Integer)(sizeObj.GetTarget())).Value, defCreateField.nameString.nodePath); }
public override void Visit(AmlParser.DefBuffer defBuffer) { defBuffer.bufferSize.integer.Accept(this); AcpiObject.AcpiObject bufferSizeObj = result; CheckObjectType(bufferSizeObj, AcpiObjectType.Integer); byte[] contents = new byte[((AcpiObject.Integer)(bufferSizeObj.GetTarget())).Value]; Array.Copy(defBuffer.byteList, contents, defBuffer.byteList.Length); result = new AcpiObject.Buffer(contents); }
public override void Visit(AmlParser.DefOpRegion defOpRegion) { AcpiObject.AcpiObject startIndexObj = LoadTimeEvaluate(defOpRegion.regionOffset.integer); AcpiObject.AcpiObject lengthObj = LoadTimeEvaluate(defOpRegion.regionLen.integer); CheckObjectType(lengthObj, AcpiObjectType.Integer); Node node = acpiNamespace.LookupNode(defOpRegion.nameString.nodePath, currentPath); node.Value = new AcpiObject.OperationRegion(loader.OperationRegionAccessor, (RegionSpace)defOpRegion.regionSpace.byteData, startIndexObj.GetAsInt().Value, ((AcpiObject.Integer)(lengthObj.GetTarget())).Value); }
public void VisitField(AmlParser.SourceBuff sourceBuff, TermArg indexTermArg, ulong bitIndexMultiplier, ulong bitSize, NodePath fieldName) { AcpiObject.AcpiObject indexObj = LoadTimeEvaluate(indexTermArg); CheckObjectType(indexObj, AcpiObjectType.Integer); ulong index = ((AcpiObject.Integer)(indexObj.GetTarget())).Value; ulong bitIndex = index * bitIndexMultiplier; AcpiObject.AcpiObject bufferObj = LoadTimeEvaluate(sourceBuff.buffer); CheckObjectType(bufferObj, AcpiObjectType.Buffer); Node node = acpiNamespace.LookupNode(fieldName, currentPath); node.Value = new BufferField((AcpiObject.Buffer)(bufferObj.GetTarget()), bitIndex, bitSize); }