Iasl: acpi source Language Optimizing Compiler and Disassembler



Download 357.69 Kb.
Page2/8
Date conversion29.04.2016
Size357.69 Kb.
1   2   3   4   5   6   7   8

1Introduction


The iASL compiler/disassembler is a fully-featured translator for the ACPI Source Language (ASL) and ACPI binary data tables. As part of the Intel ACPI Component Architecture, the Intel ASL compiler implements translation for the ACPI Source Language (ASL) to the ACPI Machine Language (AML). The disassembler feature will disassemble compiled AML code back to (near-original) ASL source code.

The major features of the iASL compiler include:



  • Full support for the ACPI 5.1 Specification including ASL grammar elements and operators.

  • Extensive compiler syntax and semantic error checking, especially in the area of control methods. This reduces the number of errors that are not discovered until the AML code is actually interpreted (i.e., the compile-time error checking reduces the number of run-time errors.)

  • An integrated preprocessor provides C-compatible preprocessor directives and conditional compilation directives such as #define, #if, #ifdef, #else, etc.

  • Multiple types of output files. Besides binary ACPI tables, output options include formatted listing files with intermixed source, several types of AML files, and error messages.

  • Automatic detection and compilation of either ASL source code or ACPI data table source code.

  • Portable code (ANSI C) and source code availability allows the compiler to be easily ported and run on multiple execution platforms.

  • Support for integration with the Microsoft Visual C++ (or similar) development environments.

  • Disassembly of all ACPI tables, including tables that contain AML (DSDT, SSDT) as well as ACPI “data” tables such as the FADT, MADT, SRAT, etc.

  • Support for compilation of non-AML data tables such as the FADT, MADT, SRAT, etc.

  • Support for ASL language extensions that support symbolic math/logical operators and expressions.

1.1Document Structure


This document consists of these major sections:

Introduction: Contains a brief overview of the iASL compiler/disassembler, document structure, related reference documents, and definition of terms used throughout the document

Compile/Disassembler Overview: Compiler subsystems, inputs, outputs, and supported system environments.

ASL-AML Subsystem: Describes the ASL compiler and the AML disassembler.

ACPI Data Table Subsystem: Describes the Data Table compiler and the Data Table disassembler.

Compiler/Disassembler Operation: Guide for compiler options and general operation, including output examples.

Generating iASL from Source Code: Instructions for building the iASL compiler from the open-source package.

1.2Reference Documents


ACPI documents are available at:

http://uefi.org/specifications/

Advanced Configuration and Power Interface Specification, Revision 1.0, December 1, 1996

Advanced Configuration and Power Interface Specification, Revision 1.0a, July 1, 1998

Advanced Configuration and Power Interface Specification, Revision 1.0b, February 8, 1999

Advanced Configuration and Power Interface Specification, Revision 2.0, July 27, 2000

Advanced Configuration and Power Interface Specification, Revision 2.0a, March 32, 2002

Advanced Configuration and Power Interface Specification, Revision 2.0b, October 11, 2002

Advanced Configuration and Power Interface Specification, Revision 2.0c, August 23, 2003

Advanced Configuration and Power Interface Specification, Revision 3.0, September 2, 2004

Advanced Configuration and Power Interface Specification, Revision 3.0a, December 30, 2005

Advanced Configuration and Power Interface Specification, Revision 3.0b, October 10, 2006

Advanced Configuration and Power Interface Specification, Revision 4.0, June 16, 2009

Advanced Configuration and Power Interface Specification, Revision 4.0a, April 5, 2010

Advanced Configuration and Power Interface Specification, Revision 5.0, December, 6, 2011

Advanced Configuration and Power Interface Specification, Revision 5.0a, November, 13, 2013

Advanced Configuration and Power Interface Specification, Revision 5.1, July 2014

Advanced Configuration and Power Interface Specification, Revision 6.0, April 2015

ACPICA documents are available at:



https://www.acpica.org/documentation/

ACPI Component Architecture User Guide and Programmer Reference

iASL: ACPI Source Language Optimizing Compiler and Disassembler User Guide

ACPICA and iASL source code is available at:



https://www.acpica.org/downloads/

iASL Windows binaries are available at:



https://www.acpica.org/downloads/binary-tools

1.3Document History


May 2012: Add preprocessor support.

June 2012: Update command line options and descriptions.

January 2013: Add –in flag to ignore ASL/AML NoOp operators/opcodes.

August 2013: Add –fe option for the disassembler.

December 2013: Add –ve option to display compilation errors only, no warnings or remarks.

September 2014: Add –lm option to generate a hardware mapfile.

November 2014: Add support for C-style math/logical operators and expressions. Added new debug option to prune ASL namespace hierarchy tree.

May 2015: Add the #includebuffer preprocessor directive.


1.4Definition of Terms


ACPI: Advanced Configuration and Power Interface. An open standard for device configuration and power management.

ACPICA: ACPI Component Architecture. An open-source implementation of ACPI that is hosted on many different operating systems.

ACPI Data Table: Any ACPI table that does not contain AML byte code but is instead simply a structure of static packed binary data. In practice, any ACPI table other than DSDTs or SSDTs.

ACPI Table: Generic reference to any of the ACPI-related tables (both AML and Data Tables) that are presented by the BIOS for consumption by the host operating system.

AML: ACPI Machine Language. A byte code language to be executed by an ACPI/AML interpreter within the host operating system. Created by translation of ASL code via an ASL compiler. Defined by the ACPI specification.

ASL: ACPI Source Language. A higher level language that corresponds to the low level AML byte code language. ASL source code is translated into AML byte code by an ASL compiler. Defined by the ACPI specification

Binary ACPI Table: An ACPI table that contains either raw AML byte code, or a packed ACPI Data Table

Data Table Language: A simple language developed to describe the individual fields within an ACPI Data Table. It is used by both the compiler and disassembler portions of the iASL Data Table Subsystem.

Disassembler: In the ACPI context, a tool that will either convert AML byte code back to the original ASL code, or will convert an ACPI Data Table into a format that is human-readable.

Hex Table: A table containing data that is in a format suitable for translation via an Assembler, C compiler, or ASL compiler.
1   2   3   4   5   6   7   8


The database is protected by copyright ©essaydocs.org 2016
send message

    Main page