Merge ACPICA 20120620.
This commit is contained in:
commit
f38b0f210c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=237412
@ -1,3 +1,67 @@
|
||||
----------------------------------------
|
||||
20 June 2012. Summary of changes for version 20120620:
|
||||
|
||||
This release is available at https://www.acpica.org/downloads
|
||||
The ACPI 5.0 specification is available at www.acpi.info
|
||||
|
||||
1) ACPICA Kernel-resident Subsystem:
|
||||
|
||||
Implemented support to expand the "implicit notify" feature to allow multiple
|
||||
devices to be notified by a single GPE. This feature automatically generates a
|
||||
runtime device notification in the absence of a BIOS-provided GPE control
|
||||
method (_Lxx/_Exx) or a host-installed handler for the GPE. Implicit notify is
|
||||
provided by ACPICA for Windows compatibility, and is a workaround for BIOS AML
|
||||
code errors. See the description of the AcpiSetupGpeForWake interface in the
|
||||
APCICA reference. Bob Moore, Rafael Wysocki. ACPICA BZ 918.
|
||||
|
||||
Changed some comments and internal function names to simplify and ensure
|
||||
correctness of the Linux code translation. No functional changes.
|
||||
|
||||
Example Code and Data Size: These are the sizes for the OS-independent
|
||||
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
|
||||
version of the code includes the debug output trace mechanism and has a much
|
||||
larger code and data size.
|
||||
|
||||
Previous Release:
|
||||
Non-Debug Version: 93.0K Code, 25.1K Data, 118.1K Total
|
||||
Debug Version: 172.7K Code, 73.6K Data, 246.3K Total
|
||||
Current Release:
|
||||
Non-Debug Version: 93.1K Code, 25.1K Data, 118.2K Total
|
||||
Debug Version: 172.9K Code, 73.6K Data, 246.5K Total
|
||||
|
||||
|
||||
2) iASL Compiler/Disassembler and Tools:
|
||||
|
||||
Disassembler: Added support to emit short, commented descriptions for the ACPI
|
||||
predefined names in order to improve the readability of the disassembled
|
||||
output. ACPICA BZ 959. Changes include:
|
||||
1) Emit descriptions for all standard predefined names (_INI, _STA, _PRW,
|
||||
etc.)
|
||||
2) Emit generic descriptions for the special names (_Exx, _Qxx, etc.)
|
||||
3) Emit descriptions for the resource descriptor names (_MIN, _LEN, etc.)
|
||||
|
||||
AcpiSrc: Fixed several long-standing Linux code translation issues. Argument
|
||||
descriptions in function headers are now translated properly to lower case and
|
||||
underscores. ACPICA BZ 961. Also fixes translation problems such as these:
|
||||
(old -> new)
|
||||
i_aSL -> iASL
|
||||
00-7_f -> 00-7F
|
||||
16_k -> 16K
|
||||
local_fADT -> local_FADT
|
||||
execute_oSI -> execute_OSI
|
||||
|
||||
iASL: Fixed a problem where null bytes were inadvertently emitted into some
|
||||
listing files.
|
||||
|
||||
iASL: Added the existing debug options to the standard help screen. There are
|
||||
no longer two different help screens. ACPICA BZ 957.
|
||||
|
||||
AcpiHelp: Fixed some typos in the various predefined name descriptions. Also
|
||||
expand some of the descriptions where appropriate.
|
||||
|
||||
iASL: Fixed the -ot option (display compile times/statistics). Was not working
|
||||
properly for standard output; only worked for the debug file case.
|
||||
|
||||
----------------------------------------
|
||||
18 May 2012. Summary of changes for version 20120518:
|
||||
|
||||
|
323
sys/contrib/dev/acpica/common/ahpredef.c
Normal file
323
sys/contrib/dev/acpica/common/ahpredef.c
Normal file
@ -0,0 +1,323 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: ahpredef - Table of all known ACPI predefined names
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2012, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include <contrib/dev/acpica/include/acpi.h>
|
||||
#include <contrib/dev/acpica/include/accommon.h>
|
||||
|
||||
/*
|
||||
* iASL only needs a partial table (short descriptions only).
|
||||
* AcpiHelp needs the full table.
|
||||
*/
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
#define AH_PREDEF(Name, ShortDesc, LongDesc) {Name, ShortDesc}
|
||||
#else
|
||||
#define AH_PREDEF(Name, ShortDesc, LongDesc) {Name, ShortDesc, LongDesc}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Predefined ACPI names, with short description and return value.
|
||||
* This table was extracted directly from the ACPI specification.
|
||||
*/
|
||||
const AH_PREDEFINED_NAME AslPredefinedInfo[] =
|
||||
{
|
||||
AH_PREDEF ("_ACx", "Active Cooling", "Returns the active cooling policy threshold values"),
|
||||
AH_PREDEF ("_ADR", "Address", "Returns the address of a device on its parent bus"),
|
||||
AH_PREDEF ("_AEI", "ACPI Event Interrupts", "Returns a list of GPIO events to be used as ACPI events"),
|
||||
AH_PREDEF ("_ALC", "Ambient Light Chromaticity", "Returns the ambient light color chromaticity"),
|
||||
AH_PREDEF ("_ALI", "Ambient Light Illuminance", "Returns the ambient light brightness"),
|
||||
AH_PREDEF ("_ALN", "Alignment", "Base alignment, Resource Descriptor field"),
|
||||
AH_PREDEF ("_ALP", "Ambient Light Polling", "Returns the ambient light sensor polling frequency"),
|
||||
AH_PREDEF ("_ALR", "Ambient Light Response", "Returns the ambient light brightness to display brightness mappings"),
|
||||
AH_PREDEF ("_ALT", "Ambient Light Temperature", "Returns the ambient light color temperature"),
|
||||
AH_PREDEF ("_ALx", "Active List", "Returns a list of active cooling device objects"),
|
||||
AH_PREDEF ("_ART", "Active Cooling Relationship Table", "Returns thermal relationship information between platform devices and fan devices"),
|
||||
AH_PREDEF ("_ASI", "Address Space Id", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_ASZ", "Access Size", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_ATT", "Type-Specific Attribute", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_BAS", "Base Address", "Range base address, Resource Descriptor field"),
|
||||
AH_PREDEF ("_BBN", "BIOS Bus Number", "Returns the PCI bus number returned by the BIOS"),
|
||||
AH_PREDEF ("_BCL", "Brightness Control Levels", "Returns a list of supported brightness control levels"),
|
||||
AH_PREDEF ("_BCM", "Brightness Control Method", "Sets the brightness level of the display device"),
|
||||
AH_PREDEF ("_BCT", "Battery Charge Time", "Returns time remaining to complete charging battery"),
|
||||
AH_PREDEF ("_BDN", "BIOS Dock Name", "Returns the Dock ID returned by the BIOS"),
|
||||
AH_PREDEF ("_BFS", "Back From Sleep", "Inform AML of a wake event"),
|
||||
AH_PREDEF ("_BIF", "Battery Information", "Returns a Control Method Battery information block"),
|
||||
AH_PREDEF ("_BIX", "Battery Information Extended", "Returns a Control Method Battery extended information block"),
|
||||
AH_PREDEF ("_BLT", "Battery Level Threshold", "Set battery level threshold preferences"),
|
||||
AH_PREDEF ("_BM_", "Bus Master", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_BMA", "Battery Measurement Averaging Interval", "Sets battery measurement averaging interval"),
|
||||
AH_PREDEF ("_BMC", "Battery Maintenance Control", "Sets battery maintenance and control features"),
|
||||
AH_PREDEF ("_BMD", "Battery Maintenance Data", "Returns battery maintenance, control, and state data"),
|
||||
AH_PREDEF ("_BMS", "Battery Measurement Sampling Time", "Sets the battery measurement sampling time"),
|
||||
AH_PREDEF ("_BQC", "Brightness Query Current", "Returns the current display brightness level"),
|
||||
AH_PREDEF ("_BST", "Battery Status", "Returns a Control Method Battery status block"),
|
||||
AH_PREDEF ("_BTM", "Battery Time", "Returns the battery runtime"),
|
||||
AH_PREDEF ("_BTP", "Battery Trip Point", "Sets a Control Method Battery trip point"),
|
||||
AH_PREDEF ("_CBA", "Configuration Base Address", "Sets the base address for a PCI Express host bridge"),
|
||||
AH_PREDEF ("_CDM", "Clock Domain", "Returns a logical processor's clock domain identifier"),
|
||||
AH_PREDEF ("_CID", "Compatible ID", "Returns a device's Plug and Play Compatible ID list"),
|
||||
AH_PREDEF ("_CLS", "Class Code", "Returns PCI class code and subclass"),
|
||||
AH_PREDEF ("_CPC", "Continuous Performance Control", "Returns a list of performance control interfaces"),
|
||||
AH_PREDEF ("_CRS", "Current Resource Settings", "Returns the current resource settings for a device"),
|
||||
AH_PREDEF ("_CRT", "Critical Temperature", "Returns the shutdown critical temperature"),
|
||||
AH_PREDEF ("_CSD", "C-State Dependencies", "Returns a list of C-state dependencies"),
|
||||
AH_PREDEF ("_CST", "C-States", "Returns a list of supported C-states"),
|
||||
AH_PREDEF ("_CWS", "Clear Wake Alarm Status", "Clear the status of wake alarms"),
|
||||
AH_PREDEF ("_DBT", "Debounce Timeout", "Timeout value, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DCK", "Dock Present", "Sets docking isolation. Presence indicates device is a docking station"),
|
||||
AH_PREDEF ("_DCS", "Display Current Status", "Returns status of the display output device"),
|
||||
AH_PREDEF ("_DDC", "Display Data Current", "Returns the EDID for the display output device"),
|
||||
AH_PREDEF ("_DDN", "DOS Device Name", "Returns a device logical name"),
|
||||
AH_PREDEF ("_DEC", "Decode", "Device decoding type, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DEP", "Dependencies", "Returns a list of operation region dependencies"),
|
||||
AH_PREDEF ("_DGS", "Display Graphics State", "Return the current state of the output device"),
|
||||
AH_PREDEF ("_DIS", "Disable Device", "Disables a device"),
|
||||
AH_PREDEF ("_DLM", "Device Lock Mutex", "Defines mutex for OS/AML sharing"),
|
||||
AH_PREDEF ("_DMA", "Direct Memory Access", "Returns a device's current resources for DMA transactions"),
|
||||
AH_PREDEF ("_DOD", "Display Output Devices", "Enumerate all devices attached to the display adapter"),
|
||||
AH_PREDEF ("_DOS", "Disable Output Switching", "Sets the display output switching mode"),
|
||||
AH_PREDEF ("_DPL", "Device Selection Polarity", "Polarity of Device Selection signal, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DRS", "Drive Strength", "Drive Strength setting for GPIO connection, Resource Descriptor field"),
|
||||
AH_PREDEF ("_DSM", "Device-Specific Method", "Executes device-specific functions"),
|
||||
AH_PREDEF ("_DSS", "Device Set State", "Sets the display device state"),
|
||||
AH_PREDEF ("_DSW", "Device Sleep Wake", "Sets the sleep and wake transition states for a device"),
|
||||
AH_PREDEF ("_DTI", "Device Temperature Indication", "Conveys native device temperature to the platform"),
|
||||
AH_PREDEF ("_Exx", "Edge-Triggered GPE", "Method executed as a result of a general-purpose event"),
|
||||
AH_PREDEF ("_EC_", "Embedded Controller", "returns EC offset and query information"),
|
||||
AH_PREDEF ("_EDL", "Eject Device List", "Returns a list of devices that are dependent on a device (docking)"),
|
||||
AH_PREDEF ("_EJD", "Ejection Dependent Device", "Returns the name of dependent (parent) device (docking)"),
|
||||
AH_PREDEF ("_EJx", "Eject Device", "Begin or cancel a device ejection request (docking)"),
|
||||
AH_PREDEF ("_END", "Endianness", "Endian orientation, Resource Descriptor field"),
|
||||
AH_PREDEF ("_EVT", "Event", "Event method for GPIO events"),
|
||||
AH_PREDEF ("_FDE", "Floppy Disk Enumerate", "Returns floppy disk configuration information"),
|
||||
AH_PREDEF ("_FDI", "Floppy Drive Information", "Returns a floppy drive information block"),
|
||||
AH_PREDEF ("_FDM", "Floppy Drive Mode", "Sets a floppy drive speed"),
|
||||
AH_PREDEF ("_FIF", "Fan Information", "Returns fan device information"),
|
||||
AH_PREDEF ("_FIX", "Fixed Register Resource Provider", "Returns a list of devices that implement FADT register blocks"),
|
||||
AH_PREDEF ("_FLC", "Flow Control", "Flow control, Resource Descriptor field"),
|
||||
AH_PREDEF ("_FPS", "Fan Performance States", "Returns a list of supported fan performance states"),
|
||||
AH_PREDEF ("_FSL", "Fan Set Level", "Control method that sets the fan device's speed level (performance state)"),
|
||||
AH_PREDEF ("_FST", "Fan Status", "Returns current status information for a fan device"),
|
||||
AH_PREDEF ("_GAI", "Get Averaging Interval", "Returns the power meter averaging interval"),
|
||||
AH_PREDEF ("_GCP", "Get Capabilities", "Get device time capabilities"),
|
||||
AH_PREDEF ("_GHL", "Get Hardware Limit", "Returns the hardware limit enforced by the power meter"),
|
||||
AH_PREDEF ("_GL_", "Global Lock", "OS-defined Global Lock mutex object"),
|
||||
AH_PREDEF ("_GLK", "Get Global Lock Requirement", "Returns a device's Global Lock requirement for device access"),
|
||||
AH_PREDEF ("_GPD", "Get Post Data", "Returns the value of the VGA device that will be posted at boot"),
|
||||
AH_PREDEF ("_GPE", "General Purpose Events", "Predefined scope (\\_GPE) or SCI number for EC"),
|
||||
AH_PREDEF ("_GRA", "Granularity", "Address space granularity, Resource Descriptor field"),
|
||||
AH_PREDEF ("_GRT", "Get Real Time", "Returns current time-of-day from a time/alarm device"),
|
||||
AH_PREDEF ("_GSB", "Global System Interrupt Base", "Returns the GSB for a I/O APIC device"),
|
||||
AH_PREDEF ("_GTF", "Get Task File", "Returns a list of ATA commands to restore a drive to default state"),
|
||||
AH_PREDEF ("_GTM", "Get Timing Mode", "Returns a list of IDE controller timing information"),
|
||||
AH_PREDEF ("_GTS", "Going To Sleep", "Inform AML of pending sleep"),
|
||||
AH_PREDEF ("_GWS", "Get Wake Status", "Return status of wake alarms"),
|
||||
AH_PREDEF ("_HE_", "High-Edge", "Interrupt triggering, Resource Descriptor field"),
|
||||
AH_PREDEF ("_HID", "Hardware ID", "Returns a device's Plug and Play Hardware ID"),
|
||||
AH_PREDEF ("_HOT", "Hot Temperature", "Returns the critical temperature for sleep (entry to S4)"),
|
||||
AH_PREDEF ("_HPP", "Hot Plug Parameters", "Returns a list of hot-plug information for a PCI device"),
|
||||
AH_PREDEF ("_HPX", "Hot Plug Parameter Extensions", "Returns a list of hot-plug information for a PCI device. Supersedes _HPP"),
|
||||
AH_PREDEF ("_HRV", "Hardware Revision", "Returns a hardware revision value"),
|
||||
AH_PREDEF ("_IFT", "IPMI Interface Type", "See the Intelligent Platform Management Interface Specification"),
|
||||
AH_PREDEF ("_INI", "Initialize", "Performs device specific initialization"),
|
||||
AH_PREDEF ("_INT", "Interrupts", "Interrupt mask bits, Resource Descriptor field"),
|
||||
AH_PREDEF ("_IOR", "I/O Restriction", "Restriction type, Resource Descriptor field"),
|
||||
AH_PREDEF ("_IRC", "Inrush Current", "Presence indicates that a device has a significant inrush current draw"),
|
||||
AH_PREDEF ("_Lxx", "Level-Triggered GPE", "Control method executed as a result of a general-purpose event"),
|
||||
AH_PREDEF ("_LCK", "Lock Device", "Locks or unlocks a device (docking)"),
|
||||
AH_PREDEF ("_LEN", "Length", "Range length, Resource Descriptor field"),
|
||||
AH_PREDEF ("_LID", "Lid Status", "Returns the open/closed status of the lid on a mobile system"),
|
||||
AH_PREDEF ("_LIN", "Lines In Use", "Handshake lines, Resource Descriptor field"),
|
||||
AH_PREDEF ("_LL_", "Low Level", "Interrupt polarity, Resource Descriptor field"),
|
||||
AH_PREDEF ("_MAF", "Maximum Address Fixed", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_MAT", "Multiple APIC Table Entry", "Returns a list of MADT APIC structure entries"),
|
||||
AH_PREDEF ("_MAX", "Maximum Base Address", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_MBM", "Memory Bandwidth Monitoring Data", "Returns bandwidth monitoring data for a memory device"),
|
||||
AH_PREDEF ("_MEM", "Memory Attributes", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_MIF", "Minimum Address Fixed", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_MIN", "Minimum Base Address", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_MLS", "Multiple Language String", "Returns a device description in multiple languages"),
|
||||
AH_PREDEF ("_MOD", "Mode", "Interrupt mode, Resource Descriptor field"),
|
||||
AH_PREDEF ("_MSG", "Message", "Sets the system message waiting status indicator"),
|
||||
AH_PREDEF ("_MSM", "Memory Set Monitoring", "Sets bandwidth monitoring parameters for a memory device"),
|
||||
AH_PREDEF ("_MTP", "Memory Type", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_NTT", "Notification Temperature Threshold", "Returns a threshold for device temperature change that requires platform notification"),
|
||||
AH_PREDEF ("_OFF", "Power Off", "Sets a power resource to the off state"),
|
||||
AH_PREDEF ("_ON_", "Power On", "Sets a power resource to the on state"),
|
||||
AH_PREDEF ("_OS_", "Operating System", "Returns a string that identifies the operating system"),
|
||||
AH_PREDEF ("_OSC", "Operating System Capabilities", "Inform AML of host features and capabilities"),
|
||||
AH_PREDEF ("_OSI", "Operating System Interfaces", "Returns supported interfaces, behaviors, and features"),
|
||||
AH_PREDEF ("_OST", "OSPM Status Indication", "Inform AML of event processing status"),
|
||||
AH_PREDEF ("_PAI", "Power Averaging Interval", "Sets the averaging interval for a power meter"),
|
||||
AH_PREDEF ("_PAR", "Parity", "Parity bits, Resource Descriptor field"),
|
||||
AH_PREDEF ("_PCL", "Power Consumer List", "Returns a list of devices powered by a power source"),
|
||||
AH_PREDEF ("_PCT", "Performance Control", "Returns processor performance control and status registers"),
|
||||
AH_PREDEF ("_PDC", "Processor Driver Capabilities", "Inform AML of processor driver capabilities"),
|
||||
AH_PREDEF ("_PDL", "P-state Depth Limit", "Returns the lowest available performance P-state"),
|
||||
AH_PREDEF ("_PHA", "Clock Phase", "Clock phase, Resource Descriptor field"),
|
||||
AH_PREDEF ("_PIC", "Interrupt Model", "Inform AML of the interrupt model in use"),
|
||||
AH_PREDEF ("_PIF", "Power Source Information", "Returns a Power Source information block"),
|
||||
AH_PREDEF ("_PIN", "Pin List", "Pin list, Resource Descriptor field"),
|
||||
AH_PREDEF ("_PLD", "Physical Device Location", "Returns a device's physical location information"),
|
||||
AH_PREDEF ("_PMC", "Power Meter Capabilities", "Returns a list of Power Meter capabilities info"),
|
||||
AH_PREDEF ("_PMD", "Power Metered Devices", "Returns a list of devices that are measured by the power meter device"),
|
||||
AH_PREDEF ("_PMM", "Power Meter Measurement", "Returns the current value of the Power Meter"),
|
||||
AH_PREDEF ("_POL", "Polarity", "Interrupt polarity, Resource Descriptor field"),
|
||||
AH_PREDEF ("_PPC", "Performance Present Capabilites", "Returns a list of the performance states currently supported by the platform"),
|
||||
AH_PREDEF ("_PPE", "Polling for Platform Error", "Returns the polling interval to retrieve Corrected Platform Error information"),
|
||||
AH_PREDEF ("_PPI", "Pin Configuration", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_PR", "Processor", "Predefined scope for processor objects"),
|
||||
AH_PREDEF ("_PR0", "Power Resources for D0", "Returns a list of dependent power resources to enter state D0 (fully on)"),
|
||||
AH_PREDEF ("_PR1", "Power Resources for D1", "Returns a list of dependent power resources to enter state D1"),
|
||||
AH_PREDEF ("_PR2", "Power Resources for D2", "Returns a list of dependent power resources to enter state D2"),
|
||||
AH_PREDEF ("_PR3", "Power Resources for D3hot", "Returns a list of dependent power resources to enter state D3hot"),
|
||||
AH_PREDEF ("_PRE", "Power Resources for Enumeration", "Returns a list of dependent power resources to enumerate devices on a bus"),
|
||||
AH_PREDEF ("_PRL", "Power Source Redundancy List", "Returns a list of power source devices in the same redundancy grouping"),
|
||||
AH_PREDEF ("_PRS", "Possible Resource Settings", "Returns a list of a device's possible resource settings"),
|
||||
AH_PREDEF ("_PRT", "PCI Routing Table", "Returns a list of PCI interrupt mappings"),
|
||||
AH_PREDEF ("_PRW", "Power Resources for Wake", "Returns a list of dependent power resources for waking"),
|
||||
AH_PREDEF ("_PS0", "Power State 0", "Sets a device's power state to D0 (device fully on)"),
|
||||
AH_PREDEF ("_PS1", "Power State 1", "Sets a device's power state to D1"),
|
||||
AH_PREDEF ("_PS2", "Power State 2", "Sets a device's power state to D2"),
|
||||
AH_PREDEF ("_PS3", "Power State 3", "Sets a device's power state to D3 (device off)"),
|
||||
AH_PREDEF ("_PSC", "Power State Current", "Returns a device's current power state"),
|
||||
AH_PREDEF ("_PSD", "Power State Dependencies", "Returns processor P-State dependencies"),
|
||||
AH_PREDEF ("_PSE", "Power State for Enumeration", "Put a bus into enumeration power mode"),
|
||||
AH_PREDEF ("_PSL", "Passive List", "Returns a list of passive cooling device objects"),
|
||||
AH_PREDEF ("_PSR", "Power Source", "Returns the power source device currently in use"),
|
||||
AH_PREDEF ("_PSS", "Performance Supported States", "Returns a list of supported processor performance states"),
|
||||
AH_PREDEF ("_PSV", "Passive Temperature", "Returns the passive trip point temperature"),
|
||||
AH_PREDEF ("_PSW", "Power State Wake", "Sets a device's wake function"),
|
||||
AH_PREDEF ("_PTC", "Processor Throttling Control", "Returns throttling control and status registers"),
|
||||
AH_PREDEF ("_PTP", "Power Trip Points", "Sets trip points for the Power Meter device"),
|
||||
AH_PREDEF ("_PTS", "Prepare To Sleep", "Inform the platform of an impending sleep transition"),
|
||||
AH_PREDEF ("_PUR", "Processor Utilization Request", "Returns the number of processors that the platform would like to idle"),
|
||||
AH_PREDEF ("_PXM", "Device Proximity", "Returns a device's proximity domain identifier"),
|
||||
AH_PREDEF ("_Qxx", "EC Query", "Embedded Controller query and SMBus Alarm control method"),
|
||||
AH_PREDEF ("_RBO", "Register Bit Offset", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_RBW", "Register Bit Width", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_REG", "Region Availability", "Inform AML code of an operation region availability change"),
|
||||
AH_PREDEF ("_REV", "Supported ACPI Revision", "Returns the revision of the ACPI specification that is implemented"),
|
||||
AH_PREDEF ("_RMV", "Removal Status", "Returns a device's removal ability status (docking)"),
|
||||
AH_PREDEF ("_RNG", "Range", "Memory range type, Resource Descriptor field"),
|
||||
AH_PREDEF ("_ROM", "Read-Only Memory", "Returns a copy of the ROM data for a display device"),
|
||||
AH_PREDEF ("_RT_", "Resource Type", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_RTV", "Relative Temperature Values", "Returns temperature value information"),
|
||||
AH_PREDEF ("_RW_", "Read-Write Status", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_RXL", "Receive Buffer Size", "Serial channel buffer, Resource Descriptor field"),
|
||||
AH_PREDEF ("_S0_", "S0 System State", "Returns values to enter the system into the S0 state"),
|
||||
AH_PREDEF ("_S1_", "S1 System State", "Returns values to enter the system into the S1 state"),
|
||||
AH_PREDEF ("_S2_", "S2 System State", "Returns values to enter the system into the S2 state"),
|
||||
AH_PREDEF ("_S3_", "S3 System State", "Returns values to enter the system into the S3 state"),
|
||||
AH_PREDEF ("_S4_", "S4 System State", "Returns values to enter the system into the S4 state"),
|
||||
AH_PREDEF ("_S5_", "S5 System State", "Returns values to enter the system into the S5 state"),
|
||||
AH_PREDEF ("_S1D", "S1 Device State", "Returns the highest D-state supported by a device when in the S1 state"),
|
||||
AH_PREDEF ("_S2D", "S2 Device State", "Returns the highest D-state supported by a device when in the S2 state"),
|
||||
AH_PREDEF ("_S3D", "S3 Device State", "Returns the highest D-state supported by a device when in the S3 state"),
|
||||
AH_PREDEF ("_S4D", "S4 Device State", "Returns the highest D-state supported by a device when in the S4 state"),
|
||||
AH_PREDEF ("_S0W", "S0 Device Wake State", "Returns the lowest D-state that the device can wake itself from S0"),
|
||||
AH_PREDEF ("_S1W", "S1 Device Wake State", "Returns the lowest D-state for this device that can wake the system from S1"),
|
||||
AH_PREDEF ("_S2W", "S2 Device Wake State", "Returns the lowest D-state for this device that can wake the system from S2"),
|
||||
AH_PREDEF ("_S3W", "S3 Device Wake State", "Returns the lowest D-state for this device that can wake the system from S3"),
|
||||
AH_PREDEF ("_S4W", "S4 Device Wake State", "Returns the lowest D-state for this device that can wake the system from S4"),
|
||||
AH_PREDEF ("_SB_", "System Bus", "Predefined scope for device and bus objects"),
|
||||
AH_PREDEF ("_SBS", "Smart Battery Subsystem", "Returns the subsystem configuration"),
|
||||
AH_PREDEF ("_SCP", "Set Cooling Policy", "Sets the cooling policy (active or passive)"),
|
||||
AH_PREDEF ("_SDD", "Set Device Data", "Sets data for a SATA device"),
|
||||
AH_PREDEF ("_SEG", "PCI Segment", "Returns a device's PCI Segment Group number"),
|
||||
AH_PREDEF ("_SHL", "Set Hardware Limit", "Sets the hardware limit enforced by the Power Meter"),
|
||||
AH_PREDEF ("_SHR", "Sharable", "Interrupt share status, Resource Descriptor field"),
|
||||
AH_PREDEF ("_SI_", "System Indicators", "Predefined scope"),
|
||||
AH_PREDEF ("_SIZ", "Size", "DMA transfer size, Resource Descriptor field"),
|
||||
AH_PREDEF ("_SLI", "System Locality Information", "Returns a list of NUMA system localities"),
|
||||
AH_PREDEF ("_SLV", "Slave Mode", "Mode setting, Resource Descriptor field"),
|
||||
AH_PREDEF ("_SPD", "Set Post Device", "Sets which video device will be posted at boot"),
|
||||
AH_PREDEF ("_SPE", "Speed", "Connection speed, Resource Descriptor field"),
|
||||
AH_PREDEF ("_SRS", "Set Resource Settings", "Sets a device's resource allocation"),
|
||||
AH_PREDEF ("_SRT", "Set Real Time", "Sets the current time for a time/alarm device"),
|
||||
AH_PREDEF ("_SRV", "IPMI Spec Revision", "See the Intelligent Platform Management Interface Specification"),
|
||||
AH_PREDEF ("_SST", "System Status", "Sets the system status indicator"),
|
||||
AH_PREDEF ("_STA", "Status", "Returns the current status of a Device or Power Resource"),
|
||||
AH_PREDEF ("_STB", "Stop Bits", "Serial channel stop bits, Resource Descriptor field"),
|
||||
AH_PREDEF ("_STM", "Set Timing Mode", "Sets an IDE controller transfer timings"),
|
||||
AH_PREDEF ("_STP", "Set Expired Timer Wake Policy", "Sets expired timer policies of the wake alarm device"),
|
||||
AH_PREDEF ("_STR", "Description String", "Returns a device's description string"),
|
||||
AH_PREDEF ("_STV", "Set Timer Value", "Set timer values of the wake alarm device"),
|
||||
AH_PREDEF ("_SUB", "Subsystem ID", "Returns the subsystem ID for a device"),
|
||||
AH_PREDEF ("_SUN", "Slot User Number", "Returns the slot unique ID number"),
|
||||
AH_PREDEF ("_SWS", "System Wake Source", "Returns the source event that caused the system to wake"),
|
||||
AH_PREDEF ("_T_x", "Emitted by ASL Compiler", "Reserved for use by ASL compilers"),
|
||||
AH_PREDEF ("_TC1", "Thermal Constant 1", "Returns TC1 for the passive cooling formula"),
|
||||
AH_PREDEF ("_TC2", "Thermal Constant 2", "Returns TC2 for the passive cooling formula"),
|
||||
AH_PREDEF ("_TDL", "T-State Depth Limit", "Returns the _TSS entry number of the lowest power throttling state"),
|
||||
AH_PREDEF ("_TIP", "Expired Timer Wake Policy", "Returns timer policies of the wake alarm device"),
|
||||
AH_PREDEF ("_TIV", "Timer Values", "Returns remaining time of the wake alarm device"),
|
||||
AH_PREDEF ("_TMP", "Temperature", "Returns a thermal zone's current temperature"),
|
||||
AH_PREDEF ("_TPC", "Throttling Present Capabilities", "Returns the current number of supported throttling states"),
|
||||
AH_PREDEF ("_TPT", "Trip Point Temperature", "Inform AML that a device's embedded temperature sensor has crossed a temperature trip point"),
|
||||
AH_PREDEF ("_TRA", "Translation", "Address translation offset, Resource Descriptor field"),
|
||||
AH_PREDEF ("_TRS", "Translation Sparse", "Sparse/dense flag, Resource Descriptor field"),
|
||||
AH_PREDEF ("_TRT", "Thermal Relationship Table", "Returns thermal relationships between platform devices"),
|
||||
AH_PREDEF ("_TSD", "Throttling State Dependencies", "Returns a list of T-state dependencies"),
|
||||
AH_PREDEF ("_TSF", "Type-Specific Flags", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_TSP", "Thermal Sampling Period", "Returns the thermal sampling period for passive cooling"),
|
||||
AH_PREDEF ("_TSS", "Throttling Supported States", "Returns supported throttling state information"),
|
||||
AH_PREDEF ("_TST", "Temperature Sensor Threshold", "Returns the minimum separation for a device's temperature trip points"),
|
||||
AH_PREDEF ("_TTP", "Translation Type", "Translation/static flag, Resource Descriptor field"),
|
||||
AH_PREDEF ("_TTS", "Transition To State", "Inform AML of an S-state transition"),
|
||||
AH_PREDEF ("_TXL", "Transmit Buffer Size", "Serial Channel buffer, Resource Descriptor field"),
|
||||
AH_PREDEF ("_TYP", "Type", "DMA channel type (speed), Resource Descriptor field"),
|
||||
AH_PREDEF ("_TZ_", "Thermal Zone", "Predefined scope: ACPI 1.0"),
|
||||
AH_PREDEF ("_TZD", "Thermal Zone Devices", "Returns a list of device names associated with a Thermal Zone"),
|
||||
AH_PREDEF ("_TZM", "Thermal Zone Member", "Returns a reference to the thermal zone of which a device is a member"),
|
||||
AH_PREDEF ("_TZP", "Thermal Zone Polling", "Returns a Thermal zone's polling frequency"),
|
||||
AH_PREDEF ("_UID", "Unique ID", "Return a device's unique persistent ID"),
|
||||
AH_PREDEF ("_UPC", "USB Port Capabilities", "Returns a list of USB port capabilities"),
|
||||
AH_PREDEF ("_UPD", "User Presence Detect", "Returns user detection information"),
|
||||
AH_PREDEF ("_UPP", "User Presence Polling", "Returns the recommended user presence polling interval"),
|
||||
AH_PREDEF ("_VEN", "Vendor Data", "Resource Descriptor field"),
|
||||
AH_PREDEF ("_VPO", "Video Post Options", "Returns the implemented video post options"),
|
||||
AH_PREDEF ("_WAK", "Wake", "Inform AML that the system has just awakened"),
|
||||
AH_PREDEF ("_Wxx", "Wake Event", "Method executed as a result of a wake event"),
|
||||
AH_PREDEF (NULL, NULL, NULL)
|
||||
};
|
@ -221,8 +221,10 @@ AcpiDmNormalizeParentPrefix (
|
||||
*/
|
||||
ACPI_STRCAT (Fullpath, ParentPath);
|
||||
|
||||
/* Add dot separator (don't need dot if parent fullpath is a single "\") */
|
||||
|
||||
/*
|
||||
* Add dot separator
|
||||
* (don't need dot if parent fullpath is a single backslash)
|
||||
*/
|
||||
if (ParentPath[1])
|
||||
{
|
||||
ACPI_STRCAT (Fullpath, ".");
|
||||
|
@ -73,6 +73,7 @@ AcpiDmGetResourceTag (
|
||||
|
||||
static char *
|
||||
AcpiGetTagPathname (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_NAMESPACE_NODE *BufferNode,
|
||||
ACPI_NAMESPACE_NODE *ResourceNode,
|
||||
UINT32 BitIndex);
|
||||
@ -443,7 +444,6 @@ AcpiDmCheckResourceReference (
|
||||
ACPI_NAMESPACE_NODE *BufferNode;
|
||||
ACPI_NAMESPACE_NODE *ResourceNode;
|
||||
const ACPI_OPCODE_INFO *OpInfo;
|
||||
char *Pathname;
|
||||
UINT32 BitIndex;
|
||||
|
||||
|
||||
@ -519,14 +519,7 @@ AcpiDmCheckResourceReference (
|
||||
|
||||
/* Translate the Index to a resource tag pathname */
|
||||
|
||||
Pathname = AcpiGetTagPathname (BufferNode, ResourceNode, BitIndex);
|
||||
if (Pathname)
|
||||
{
|
||||
/* Complete the conversion of the Index to a symbol */
|
||||
|
||||
IndexOp->Common.AmlOpcode = AML_INT_NAMEPATH_OP;
|
||||
IndexOp->Common.Value.String = Pathname;
|
||||
}
|
||||
AcpiGetTagPathname (IndexOp, BufferNode, ResourceNode, BitIndex);
|
||||
}
|
||||
|
||||
|
||||
@ -597,6 +590,7 @@ AcpiDmGetResourceNode (
|
||||
|
||||
static char *
|
||||
AcpiGetTagPathname (
|
||||
ACPI_PARSE_OBJECT *IndexOp,
|
||||
ACPI_NAMESPACE_NODE *BufferNode,
|
||||
ACPI_NAMESPACE_NODE *ResourceNode,
|
||||
UINT32 BitIndex)
|
||||
@ -689,6 +683,15 @@ AcpiGetTagPathname (
|
||||
|
||||
AcpiNsInternalizeName (Pathname, &InternalPath);
|
||||
ACPI_FREE (Pathname);
|
||||
|
||||
/* Update the Op with the symbol */
|
||||
|
||||
AcpiPsInitOp (IndexOp, AML_INT_NAMEPATH_OP);
|
||||
IndexOp->Common.Value.String = InternalPath;
|
||||
|
||||
/* We will need the tag later. Cheat by putting it in the Node field */
|
||||
|
||||
IndexOp->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Tag);
|
||||
return (InternalPath);
|
||||
}
|
||||
|
||||
|
@ -67,6 +67,10 @@ FlConsumeNewComment (
|
||||
FILE *Handle,
|
||||
ASL_FILE_STATUS *Status);
|
||||
|
||||
static void
|
||||
CmDumpAllEvents (
|
||||
void);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@ -717,29 +721,39 @@ CmDoOutputFiles (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: CmDumpEvent
|
||||
* FUNCTION: CmDumpAllEvents
|
||||
*
|
||||
* PARAMETERS: Event - A compiler event struct
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Dump a compiler event struct
|
||||
* DESCRIPTION: Dump all compiler events
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void
|
||||
CmDumpEvent (
|
||||
ASL_EVENT_INFO *Event)
|
||||
CmDumpAllEvents (
|
||||
void)
|
||||
{
|
||||
ASL_EVENT_INFO *Event;
|
||||
UINT32 Delta;
|
||||
UINT32 USec;
|
||||
UINT32 MSec;
|
||||
UINT32 i;
|
||||
|
||||
if (!Event->Valid)
|
||||
|
||||
Event = AslGbl_Events;
|
||||
|
||||
DbgPrint (ASL_DEBUG_OUTPUT, "\n\nElapsed time for major events\n\n");
|
||||
if (Gbl_CompileTimesFlag)
|
||||
{
|
||||
return;
|
||||
printf ("\nElapsed time for major events\n\n");
|
||||
}
|
||||
|
||||
for (i = 0; i < AslGbl_NextEvent; i++)
|
||||
{
|
||||
if (Event->Valid)
|
||||
{
|
||||
/* Delta will be in 100-nanosecond units */
|
||||
|
||||
Delta = (UINT32) (Event->EndTime - Event->StartTime);
|
||||
@ -756,6 +770,16 @@ CmDumpEvent (
|
||||
|
||||
DbgPrint (ASL_DEBUG_OUTPUT, "%8u usec %8u msec - %s\n",
|
||||
USec, MSec, Event->EventName);
|
||||
|
||||
if (Gbl_CompileTimesFlag)
|
||||
{
|
||||
printf ("%8u usec %8u msec - %s\n",
|
||||
USec, MSec, Event->EventName);
|
||||
}
|
||||
}
|
||||
|
||||
Event++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -786,20 +810,12 @@ CmCleanupAndExit (
|
||||
AePrintErrorLog (ASL_FILE_STDOUT);
|
||||
}
|
||||
|
||||
DbgPrint (ASL_DEBUG_OUTPUT, "\n\nElapsed time for major events\n\n");
|
||||
for (i = 0; i < AslGbl_NextEvent; i++)
|
||||
{
|
||||
CmDumpEvent (&AslGbl_Events[i]);
|
||||
}
|
||||
/* Emit compile times if enabled */
|
||||
|
||||
CmDumpAllEvents ();
|
||||
|
||||
if (Gbl_CompileTimesFlag)
|
||||
{
|
||||
printf ("\nElapsed time for major events\n\n");
|
||||
for (i = 0; i < AslGbl_NextEvent; i++)
|
||||
{
|
||||
CmDumpEvent (&AslGbl_Events[i]);
|
||||
}
|
||||
|
||||
printf ("\nMiscellaneous compile statistics\n\n");
|
||||
printf ("%11u : %s\n", TotalParseNodes, "Parse nodes");
|
||||
printf ("%11u : %s\n", Gbl_NsLookupCount, "Namespace searches");
|
||||
|
@ -754,7 +754,7 @@ FlOpenInputFile (
|
||||
|
||||
/* Open the input ASL file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_INPUT, InputFilename, "r");
|
||||
FlOpenFile (ASL_FILE_INPUT, InputFilename, "rt");
|
||||
AslCompilerin = Gbl_Files[ASL_FILE_INPUT].Handle;
|
||||
|
||||
return (AE_OK);
|
||||
@ -838,7 +838,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the hex file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_HEX_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_HEX_OUTPUT, Filename, "w+t");
|
||||
|
||||
AslCompilerSignon (ASL_FILE_HEX_OUTPUT);
|
||||
AslCompilerFileHeader (ASL_FILE_HEX_OUTPUT);
|
||||
@ -889,7 +889,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the listing file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_LISTING_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_LISTING_OUTPUT, Filename, "w+t");
|
||||
|
||||
AslCompilerSignon (ASL_FILE_LISTING_OUTPUT);
|
||||
AslCompilerFileHeader (ASL_FILE_LISTING_OUTPUT);
|
||||
@ -907,7 +907,7 @@ FlOpenMiscOutputFiles (
|
||||
return (AE_ERROR);
|
||||
}
|
||||
|
||||
FlOpenFile (ASL_FILE_PREPROCESSOR, Filename, "w+b");
|
||||
FlOpenFile (ASL_FILE_PREPROCESSOR, Filename, "w+t");
|
||||
}
|
||||
|
||||
/* All done for data table compiler */
|
||||
@ -952,7 +952,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the assembly code source file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_ASM_SOURCE_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_ASM_SOURCE_OUTPUT, Filename, "w+t");
|
||||
|
||||
AslCompilerSignon (ASL_FILE_ASM_SOURCE_OUTPUT);
|
||||
AslCompilerFileHeader (ASL_FILE_ASM_SOURCE_OUTPUT);
|
||||
@ -972,7 +972,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the C code source file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_C_SOURCE_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_C_SOURCE_OUTPUT, Filename, "w+t");
|
||||
|
||||
FlPrintFile (ASL_FILE_C_SOURCE_OUTPUT, "/*\n");
|
||||
AslCompilerSignon (ASL_FILE_C_SOURCE_OUTPUT);
|
||||
@ -993,7 +993,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the assembly include file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_ASM_INCLUDE_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_ASM_INCLUDE_OUTPUT, Filename, "w+t");
|
||||
|
||||
AslCompilerSignon (ASL_FILE_ASM_INCLUDE_OUTPUT);
|
||||
AslCompilerFileHeader (ASL_FILE_ASM_INCLUDE_OUTPUT);
|
||||
@ -1013,7 +1013,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the C include file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_C_INCLUDE_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_C_INCLUDE_OUTPUT, Filename, "w+t");
|
||||
|
||||
FlPrintFile (ASL_FILE_C_INCLUDE_OUTPUT, "/*\n");
|
||||
AslCompilerSignon (ASL_FILE_C_INCLUDE_OUTPUT);
|
||||
@ -1034,7 +1034,7 @@ FlOpenMiscOutputFiles (
|
||||
|
||||
/* Open the namespace file, text mode */
|
||||
|
||||
FlOpenFile (ASL_FILE_NAMESPACE_OUTPUT, Filename, "w+");
|
||||
FlOpenFile (ASL_FILE_NAMESPACE_OUTPUT, Filename, "w+t");
|
||||
|
||||
AslCompilerSignon (ASL_FILE_NAMESPACE_OUTPUT);
|
||||
AslCompilerFileHeader (ASL_FILE_NAMESPACE_OUTPUT);
|
||||
|
@ -1098,7 +1098,7 @@ LkNamespaceLocateBegin (
|
||||
|
||||
if (Message)
|
||||
{
|
||||
sprintf (MsgBuffer, "Tag: %u bit%s, Field: %u bit%s",
|
||||
sprintf (MsgBuffer, "Size mismatch, Tag: %u bit%s, Field: %u bit%s",
|
||||
TagBitLength, (TagBitLength > 1) ? "s" : "",
|
||||
FieldBitLength, (FieldBitLength > 1) ? "s" : "");
|
||||
|
||||
|
@ -63,7 +63,7 @@ Options (
|
||||
void);
|
||||
|
||||
static void
|
||||
HelpMessage (
|
||||
FilenameHelp (
|
||||
void);
|
||||
|
||||
static void
|
||||
@ -170,27 +170,36 @@ Options (
|
||||
ACPI_OPTION ("-g", "Get ACPI tables and write to files (*.dat)");
|
||||
|
||||
printf ("\nHelp:\n");
|
||||
ACPI_OPTION ("-h", "Additional help and compiler debug options");
|
||||
ACPI_OPTION ("-h", "This message");
|
||||
ACPI_OPTION ("-hc", "Display operators allowed in constant expressions");
|
||||
ACPI_OPTION ("-hf", "Display help for output filename generation");
|
||||
ACPI_OPTION ("-hr", "Display ACPI reserved method names");
|
||||
ACPI_OPTION ("-ht", "Display currently supported ACPI table names");
|
||||
|
||||
printf ("\nDebug Options:\n");
|
||||
ACPI_OPTION ("-bf -bt", "Create debug file (full or parse tree only) (*.txt)");
|
||||
ACPI_OPTION ("-f", "Ignore errors, force creation of AML output file(s)");
|
||||
ACPI_OPTION ("-n", "Parse only, no output generation");
|
||||
ACPI_OPTION ("-ot", "Display compile times and statistics");
|
||||
ACPI_OPTION ("-x <level>", "Set debug level for trace output");
|
||||
ACPI_OPTION ("-z", "Do not insert new compiler ID for DataTables");
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: HelpMessage
|
||||
* FUNCTION: FilenameHelp
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Display help message
|
||||
* DESCRIPTION: Display help message for output filename generation
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void
|
||||
HelpMessage (
|
||||
FilenameHelp (
|
||||
void)
|
||||
{
|
||||
|
||||
@ -202,17 +211,6 @@ HelpMessage (
|
||||
printf (" 2) The prefix of the AMLFileName in the ASL Definition Block\n");
|
||||
printf (" 3) The prefix of the input filename\n");
|
||||
printf ("\n");
|
||||
|
||||
Options ();
|
||||
|
||||
printf ("\nCompiler/Disassembler Debug Options:\n");
|
||||
ACPI_OPTION ("-bb -bp -bt", "Create compiler debug/trace file (*.txt)");
|
||||
ACPI_OPTION ("", "Types: Parse/Tree/Both");
|
||||
ACPI_OPTION ("-f", "Ignore errors, force creation of AML output file(s)");
|
||||
ACPI_OPTION ("-n", "Parse only, no output generation");
|
||||
ACPI_OPTION ("-ot", "Display compile times");
|
||||
ACPI_OPTION ("-x <level>", "Set debug level for trace output");
|
||||
ACPI_OPTION ("-z", "Do not insert new compiler ID for DataTables");
|
||||
}
|
||||
|
||||
|
||||
@ -430,13 +428,7 @@ AslDoOptions (
|
||||
case 'b': /* Debug output options */
|
||||
switch (AcpiGbl_Optarg[0])
|
||||
{
|
||||
case 'b':
|
||||
AslCompilerdebug = 1; /* same as yydebug */
|
||||
DtParserdebug = 1;
|
||||
PrParserdebug = 1;
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
case 'f':
|
||||
AslCompilerdebug = 1; /* same as yydebug */
|
||||
DtParserdebug = 1;
|
||||
PrParserdebug = 1;
|
||||
@ -530,13 +522,17 @@ AslDoOptions (
|
||||
switch (AcpiGbl_Optarg[0])
|
||||
{
|
||||
case '^':
|
||||
HelpMessage ();
|
||||
Usage ();
|
||||
exit (0);
|
||||
|
||||
case 'c':
|
||||
UtDisplayConstantOpcodes ();
|
||||
exit (0);
|
||||
|
||||
case 'f':
|
||||
FilenameHelp ();
|
||||
exit (0);
|
||||
|
||||
case 'r':
|
||||
/* reserved names */
|
||||
|
||||
|
@ -92,19 +92,23 @@ static void
|
||||
AslDoLineDirective (
|
||||
void)
|
||||
{
|
||||
char c;
|
||||
int c;
|
||||
char *Token;
|
||||
UINT32 LineNumber;
|
||||
char *Filename;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
/* Eat the entire line that contains the #line directive */
|
||||
|
||||
while ((c = (char) input()) != '\n' && c != EOF)
|
||||
Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
|
||||
|
||||
while ((c = input()) != '\n' && c != EOF)
|
||||
{
|
||||
AslInsertLineBuffer (c);
|
||||
*Gbl_LineBufPtr = c;
|
||||
Gbl_LineBufPtr++;
|
||||
}
|
||||
AslInsertLineBuffer (0);
|
||||
*Gbl_LineBufPtr = 0;
|
||||
|
||||
/* First argument is the actual line number */
|
||||
|
||||
@ -114,10 +118,23 @@ AslDoLineDirective (
|
||||
goto ResetAndExit;
|
||||
}
|
||||
|
||||
/* Convert line number. Subtract one to handle _this_ line */
|
||||
/* First argument is the line number */
|
||||
|
||||
LineNumber = (UINT32) UtDoConstant (Token);
|
||||
FlSetLineNumber (LineNumber - 1);
|
||||
|
||||
/* Emit the appropriate number of newlines */
|
||||
|
||||
Gbl_CurrentColumn = 0;
|
||||
if (LineNumber > Gbl_CurrentLineNumber)
|
||||
{
|
||||
for (i = 0; i < (LineNumber - Gbl_CurrentLineNumber); i++)
|
||||
{
|
||||
FlWriteFile (ASL_FILE_SOURCE_OUTPUT, "\n", 1);
|
||||
Gbl_CurrentColumn++;
|
||||
}
|
||||
}
|
||||
|
||||
FlSetLineNumber (LineNumber);
|
||||
|
||||
/* Second argument is the optional filename (in double quotes) */
|
||||
|
||||
@ -132,7 +149,12 @@ AslDoLineDirective (
|
||||
/* Third argument is not supported at this time */
|
||||
|
||||
ResetAndExit:
|
||||
AslResetCurrentLineBuffer ();
|
||||
|
||||
/* Reset globals for a new line */
|
||||
|
||||
Gbl_CurrentLineOffset += Gbl_CurrentColumn;
|
||||
Gbl_CurrentColumn = 0;
|
||||
Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
|
||||
}
|
||||
|
||||
|
||||
@ -408,8 +430,8 @@ static char
|
||||
AslDoComment (
|
||||
void)
|
||||
{
|
||||
char c;
|
||||
char c1 = 0;
|
||||
int c;
|
||||
int c1 = 0;
|
||||
|
||||
|
||||
AslInsertLineBuffer ('/');
|
||||
@ -419,7 +441,7 @@ loop:
|
||||
|
||||
/* Eat chars until end-of-comment */
|
||||
|
||||
while ((c = (char) input()) != '*' && c != EOF)
|
||||
while ((c = input()) != '*' && c != EOF)
|
||||
{
|
||||
AslInsertLineBuffer (c);
|
||||
c1 = c;
|
||||
@ -446,7 +468,7 @@ loop:
|
||||
|
||||
AslInsertLineBuffer (c);
|
||||
|
||||
if ((c1 = (char) input()) != '/' && c1 != EOF)
|
||||
if ((c1 = input()) != '/' && c1 != EOF)
|
||||
{
|
||||
unput(c1);
|
||||
goto loop;
|
||||
@ -489,13 +511,13 @@ static char
|
||||
AslDoCommentType2 (
|
||||
void)
|
||||
{
|
||||
char c;
|
||||
int c;
|
||||
|
||||
|
||||
AslInsertLineBuffer ('/');
|
||||
AslInsertLineBuffer ('/');
|
||||
|
||||
while ((c = (char) input()) != '\n' && c != EOF)
|
||||
while ((c = input()) != '\n' && c != EOF)
|
||||
{
|
||||
AslInsertLineBuffer (c);
|
||||
}
|
||||
@ -531,7 +553,7 @@ AslDoStringLiteral (
|
||||
char *StringBuffer = MsgBuffer;
|
||||
char *EndBuffer = MsgBuffer + ASL_MSG_BUFFER_SIZE;
|
||||
char *CleanString;
|
||||
char StringChar;
|
||||
int StringChar;
|
||||
UINT32 State = ASL_NORMAL_CHAR;
|
||||
UINT32 i = 0;
|
||||
UINT8 Digit;
|
||||
@ -544,7 +566,7 @@ AslDoStringLiteral (
|
||||
* source line buffer.
|
||||
*/
|
||||
AslInsertLineBuffer ('\"');
|
||||
while ((StringChar = (char) input()) != EOF)
|
||||
while ((StringChar = input()) != EOF)
|
||||
{
|
||||
AslInsertLineBuffer (StringChar);
|
||||
|
||||
|
@ -139,7 +139,7 @@ UtDisplaySupportedTables (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiPsDisplayConstantOpcodes
|
||||
* FUNCTION: UtDisplayConstantOpcodes
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
@ -213,7 +213,7 @@ UtLocalCalloc (
|
||||
*
|
||||
* PARAMETERS: Name - Ascii name of this event
|
||||
*
|
||||
* RETURN: Event - Event number (integer index)
|
||||
* RETURN: Event number (integer index)
|
||||
*
|
||||
* DESCRIPTION: Saves the current time with this event
|
||||
*
|
||||
@ -304,7 +304,8 @@ UtHexCharToValue (
|
||||
* FUNCTION: UtConvertByteToHex
|
||||
*
|
||||
* PARAMETERS: RawByte - Binary data
|
||||
* Buffer - Pointer to where the hex bytes will be stored
|
||||
* Buffer - Pointer to where the hex bytes will be
|
||||
* stored
|
||||
*
|
||||
* RETURN: Ascii hex byte is stored in Buffer.
|
||||
*
|
||||
@ -332,7 +333,8 @@ UtConvertByteToHex (
|
||||
* FUNCTION: UtConvertByteToAsmHex
|
||||
*
|
||||
* PARAMETERS: RawByte - Binary data
|
||||
* Buffer - Pointer to where the hex bytes will be stored
|
||||
* Buffer - Pointer to where the hex bytes will be
|
||||
* stored
|
||||
*
|
||||
* RETURN: Ascii hex byte is stored in Buffer.
|
||||
*
|
||||
@ -438,7 +440,7 @@ UtPrintFormattedName (
|
||||
*
|
||||
* FUNCTION: UtSetParseOpName
|
||||
*
|
||||
* PARAMETERS: Op
|
||||
* PARAMETERS: Op - Parse op to be named.
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
@ -571,7 +573,7 @@ UtDisplaySummary (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: UtDisplaySummary
|
||||
* FUNCTION: UtCheckIntegerRange
|
||||
*
|
||||
* PARAMETERS: Op - Integer parse node
|
||||
* LowValue - Smallest allowed value
|
||||
@ -858,7 +860,7 @@ UtAttachNamepathToOwner (
|
||||
*
|
||||
* RETURN: Converted Integer
|
||||
*
|
||||
* DESCRIPTION: Convert a string to an integer. With error checking.
|
||||
* DESCRIPTION: Convert a string to an integer, with error checking.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -890,8 +892,8 @@ UtDoConstant (
|
||||
* FUNCTION: UtStrtoul64
|
||||
*
|
||||
* PARAMETERS: String - Null terminated string
|
||||
* Terminater - Where a pointer to the terminating byte is
|
||||
* returned
|
||||
* Terminater - Where a pointer to the terminating byte
|
||||
* is returned
|
||||
* Base - Radix of the string
|
||||
*
|
||||
* RETURN: Converted value
|
||||
@ -1072,5 +1074,3 @@ UtStrtoul64 (
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
|
@ -226,7 +226,7 @@ DtCreateAllTemplates (
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the "special ACPI tables:
|
||||
* Create the special ACPI tables:
|
||||
* 1) DSDT/SSDT are AML tables, not data tables
|
||||
* 2) FACS and RSDP have non-standard headers
|
||||
*/
|
||||
|
@ -792,10 +792,12 @@ AcpiDbDisplayGpes (
|
||||
ACPI_GPE_EVENT_INFO *GpeEventInfo;
|
||||
ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
|
||||
char *GpeType;
|
||||
ACPI_GPE_NOTIFY_INFO *Notify;
|
||||
UINT32 GpeIndex;
|
||||
UINT32 Block = 0;
|
||||
UINT32 i;
|
||||
UINT32 j;
|
||||
UINT32 Count;
|
||||
char Buffer[80];
|
||||
ACPI_BUFFER RetBuf;
|
||||
ACPI_STATUS Status;
|
||||
@ -916,7 +918,14 @@ AcpiDbDisplayGpes (
|
||||
AcpiOsPrintf ("Handler");
|
||||
break;
|
||||
case ACPI_GPE_DISPATCH_NOTIFY:
|
||||
AcpiOsPrintf ("Notify");
|
||||
Count = 0;
|
||||
Notify = GpeEventInfo->Dispatch.NotifyList;
|
||||
while (Notify)
|
||||
{
|
||||
Count++;
|
||||
Notify = Notify->Next;
|
||||
}
|
||||
AcpiOsPrintf ("Implicit Notify on %u devices", Count);
|
||||
break;
|
||||
default:
|
||||
AcpiOsPrintf ("UNKNOWN: %X",
|
||||
|
@ -872,8 +872,8 @@ AcpiDbMethodThread (
|
||||
|
||||
if (Info->InitArgs)
|
||||
{
|
||||
AcpiDbUInt32ToHexString (Info->NumCreated, Info->IndexOfThreadStr);
|
||||
AcpiDbUInt32ToHexString ((UINT32) AcpiOsGetThreadId (), Info->IdOfThreadStr);
|
||||
AcpiDbUint32ToHexString (Info->NumCreated, Info->IndexOfThreadStr);
|
||||
AcpiDbUint32ToHexString ((UINT32) AcpiOsGetThreadId (), Info->IdOfThreadStr);
|
||||
}
|
||||
|
||||
if (Info->Threads && (Info->NumCreated < Info->NumThreads))
|
||||
@ -1063,7 +1063,7 @@ AcpiDbCreateExecutionThreads (
|
||||
AcpiGbl_DbMethodInfo.ArgTypes[1] = ACPI_TYPE_INTEGER;
|
||||
AcpiGbl_DbMethodInfo.ArgTypes[2] = ACPI_TYPE_INTEGER;
|
||||
|
||||
AcpiDbUInt32ToHexString (NumThreads, AcpiGbl_DbMethodInfo.NumThreadsStr);
|
||||
AcpiDbUint32ToHexString (NumThreads, AcpiGbl_DbMethodInfo.NumThreadsStr);
|
||||
|
||||
AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo);
|
||||
|
||||
|
@ -360,7 +360,7 @@ AcpiDbLocalNsLookup (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDbUInt32ToHexString
|
||||
* FUNCTION: AcpiDbUint32ToHexString
|
||||
*
|
||||
* PARAMETERS: Value - The value to be converted to string
|
||||
* Buffer - Buffer for result (not less than 11 bytes)
|
||||
@ -375,7 +375,7 @@ AcpiDbLocalNsLookup (
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDbUInt32ToHexString (
|
||||
AcpiDbUint32ToHexString (
|
||||
UINT32 Value,
|
||||
char *Buffer)
|
||||
{
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include <contrib/dev/acpica/include/acparser.h>
|
||||
#include <contrib/dev/acpica/include/amlcode.h>
|
||||
#include <contrib/dev/acpica/include/acdisasm.h>
|
||||
#include <contrib/dev/acpica/include/acnamesp.h>
|
||||
|
||||
#ifdef ACPI_DISASSEMBLER
|
||||
|
||||
@ -59,6 +60,218 @@ AcpiDmMatchKeyword (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmPredefinedDescription
|
||||
*
|
||||
* PARAMETERS: Op - Name() parse object
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Emit a description comment for a predefined ACPI name.
|
||||
* Used for iASL compiler only.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDmPredefinedDescription (
|
||||
ACPI_PARSE_OBJECT *Op)
|
||||
{
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
const AH_PREDEFINED_NAME *Info;
|
||||
char *NameString;
|
||||
int LastCharIsDigit;
|
||||
int LastCharsAreHex;
|
||||
|
||||
|
||||
if (!Op)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Ensure that the comment field is emitted only once */
|
||||
|
||||
if (Op->Common.DisasmFlags & ACPI_PARSEOP_PREDEF_CHECKED)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Op->Common.DisasmFlags |= ACPI_PARSEOP_PREDEF_CHECKED;
|
||||
|
||||
/* Predefined name must start with an underscore */
|
||||
|
||||
NameString = ACPI_CAST_PTR (char, &Op->Named.Name);
|
||||
if (NameString[0] != '_')
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for the special ACPI names:
|
||||
* _ACd, _ALd, _EJd, _Exx, _Lxx, _Qxx, _Wxx, _T_a
|
||||
* (where d=decimal_digit, x=hex_digit, a=anything)
|
||||
*
|
||||
* Convert these to the generic name for table lookup.
|
||||
* Note: NameString is guaranteed to be upper case here.
|
||||
*/
|
||||
LastCharIsDigit =
|
||||
(ACPI_IS_DIGIT (NameString[3])); /* d */
|
||||
LastCharsAreHex =
|
||||
(ACPI_IS_XDIGIT (NameString[2]) && /* xx */
|
||||
ACPI_IS_XDIGIT (NameString[3]));
|
||||
|
||||
switch (NameString[1])
|
||||
{
|
||||
case 'A':
|
||||
if ((NameString[2] == 'C') && (LastCharIsDigit))
|
||||
{
|
||||
NameString = "_ACx";
|
||||
}
|
||||
else if ((NameString[2] == 'L') && (LastCharIsDigit))
|
||||
{
|
||||
NameString = "_ALx";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
if ((NameString[2] == 'J') && (LastCharIsDigit))
|
||||
{
|
||||
NameString = "_EJx";
|
||||
}
|
||||
else if (LastCharsAreHex)
|
||||
{
|
||||
NameString = "_Exx";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
if (LastCharsAreHex)
|
||||
{
|
||||
NameString = "_Lxx";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'Q':
|
||||
if (LastCharsAreHex)
|
||||
{
|
||||
NameString = "_Qxx";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
if (NameString[2] == '_')
|
||||
{
|
||||
NameString = "_T_x";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'W':
|
||||
if (LastCharsAreHex)
|
||||
{
|
||||
NameString = "_Wxx";
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Match the name in the info table */
|
||||
|
||||
for (Info = AslPredefinedInfo; Info->Name; Info++)
|
||||
{
|
||||
if (ACPI_COMPARE_NAME (NameString, Info->Name))
|
||||
{
|
||||
AcpiOsPrintf (" // %4.4s: %s",
|
||||
NameString, ACPI_CAST_PTR (char, Info->Description));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmFieldPredefinedDescription
|
||||
*
|
||||
* PARAMETERS: Op - Parse object
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Emit a description comment for a resource descriptor tag
|
||||
* (which is a predefined ACPI name.) Used for iASL compiler only.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDmFieldPredefinedDescription (
|
||||
ACPI_PARSE_OBJECT *Op)
|
||||
{
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
ACPI_PARSE_OBJECT *IndexOp;
|
||||
char *Tag;
|
||||
const ACPI_OPCODE_INFO *OpInfo;
|
||||
const AH_PREDEFINED_NAME *Info;
|
||||
|
||||
|
||||
if (!Op)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Ensure that the comment field is emitted only once */
|
||||
|
||||
if (Op->Common.DisasmFlags & ACPI_PARSEOP_PREDEF_CHECKED)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Op->Common.DisasmFlags |= ACPI_PARSEOP_PREDEF_CHECKED;
|
||||
|
||||
/*
|
||||
* Op must be one of the Create* operators: CreateField, CreateBitField,
|
||||
* CreateByteField, CreateWordField, CreateDwordField, CreateQwordField
|
||||
*/
|
||||
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
|
||||
if (!(OpInfo->Flags & AML_CREATE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Second argument is the Index argument */
|
||||
|
||||
IndexOp = Op->Common.Value.Arg;
|
||||
IndexOp = IndexOp->Common.Next;
|
||||
|
||||
/* Index argument must be a namepath */
|
||||
|
||||
if (IndexOp->Common.AmlOpcode != AML_INT_NAMEPATH_OP)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Major cheat: We previously put the Tag ptr in the Node field */
|
||||
|
||||
Tag = ACPI_CAST_PTR (char, IndexOp->Common.Node);
|
||||
|
||||
/* Match the name in the info table */
|
||||
|
||||
for (Info = AslPredefinedInfo; Info->Name; Info++)
|
||||
{
|
||||
if (ACPI_COMPARE_NAME (Tag, Info->Name))
|
||||
{
|
||||
AcpiOsPrintf (" // %4.4s: %s", Tag,
|
||||
ACPI_CAST_PTR (char, Info->Description));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDmMethodFlags
|
||||
|
@ -533,6 +533,10 @@ AcpiDmDescendingOp (
|
||||
|
||||
AcpiDmMethodFlags (Op);
|
||||
AcpiOsPrintf (")");
|
||||
|
||||
/* Emit description comment for Method() with a predefined ACPI name */
|
||||
|
||||
AcpiDmPredefinedDescription (Op);
|
||||
break;
|
||||
|
||||
|
||||
@ -603,7 +607,8 @@ AcpiDmDescendingOp (
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("*** Unhandled named opcode %X\n", Op->Common.AmlOpcode);
|
||||
AcpiOsPrintf ("*** Unhandled named opcode %X\n",
|
||||
Op->Common.AmlOpcode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -644,7 +649,8 @@ AcpiDmDescendingOp (
|
||||
NextOp = NextOp->Common.Next;
|
||||
|
||||
Info->Flags = ACPI_PARSEOP_PARAMLIST;
|
||||
AcpiDmWalkParseTree (NextOp, AcpiDmDescendingOp, AcpiDmAscendingOp, Info);
|
||||
AcpiDmWalkParseTree (NextOp, AcpiDmDescendingOp,
|
||||
AcpiDmAscendingOp, Info);
|
||||
Info->Flags = 0;
|
||||
Info->Level = Level;
|
||||
|
||||
@ -691,7 +697,13 @@ AcpiDmDescendingOp (
|
||||
*/
|
||||
NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
|
||||
NextOp = NextOp->Common.Next;
|
||||
AcpiOsPrintf (")\n");
|
||||
AcpiOsPrintf (")");
|
||||
|
||||
/* Emit description comment for Name() with a predefined ACPI name */
|
||||
|
||||
AcpiDmPredefinedDescription (Op->Asl.Parent);
|
||||
|
||||
AcpiOsPrintf ("\n");
|
||||
AcpiDmIndent (Info->Level);
|
||||
AcpiOsPrintf ("{\n");
|
||||
return (AE_OK);
|
||||
@ -719,7 +731,7 @@ AcpiDmDescendingOp (
|
||||
|
||||
case AML_PACKAGE_OP:
|
||||
|
||||
/* The next op is the size or predicate parameter */
|
||||
/* The next op is the size parameter */
|
||||
|
||||
NextOp = AcpiPsGetDepthNext (NULL, Op);
|
||||
if (NextOp)
|
||||
@ -772,6 +784,7 @@ AcpiDmAscendingOp (
|
||||
void *Context)
|
||||
{
|
||||
ACPI_OP_WALK_INFO *Info = Context;
|
||||
ACPI_PARSE_OBJECT *ParentOp;
|
||||
|
||||
|
||||
if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
|
||||
@ -797,6 +810,19 @@ AcpiDmAscendingOp (
|
||||
|
||||
AcpiOsPrintf (")");
|
||||
|
||||
if (Op->Common.AmlOpcode == AML_NAME_OP)
|
||||
{
|
||||
/* Emit description comment for Name() with a predefined ACPI name */
|
||||
|
||||
AcpiDmPredefinedDescription (Op);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* For Create* operators, attempt to emit resource tag description */
|
||||
|
||||
AcpiDmFieldPredefinedDescription (Op);
|
||||
}
|
||||
|
||||
/* Could be a nested operator, check if comma required */
|
||||
|
||||
if (!AcpiDmCommaIfListMember (Op))
|
||||
@ -911,7 +937,20 @@ AcpiDmAscendingOp (
|
||||
*/
|
||||
if (Op->Common.Next)
|
||||
{
|
||||
AcpiOsPrintf (")\n");
|
||||
AcpiOsPrintf (")");
|
||||
|
||||
/* Emit description comment for Name() with a predefined ACPI name */
|
||||
|
||||
ParentOp = Op->Common.Parent;
|
||||
if (ParentOp)
|
||||
{
|
||||
ParentOp = ParentOp->Common.Parent;
|
||||
if (ParentOp && ParentOp->Asl.AmlOpcode == AML_NAME_OP)
|
||||
{
|
||||
AcpiDmPredefinedDescription (ParentOp);
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("\n");
|
||||
AcpiDmIndent (Level - 1);
|
||||
AcpiOsPrintf ("{\n");
|
||||
}
|
||||
|
@ -152,8 +152,8 @@ AcpiDsCreateExternalRegion (
|
||||
* CreateBitFieldOp,
|
||||
* CreateByteFieldOp,
|
||||
* CreateWordFieldOp,
|
||||
* CreateDWordFieldOp,
|
||||
* CreateQWordFieldOp,
|
||||
* CreateDwordFieldOp,
|
||||
* CreateQwordFieldOp,
|
||||
* CreateFieldOp (all of which define a field in a buffer)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
@ -523,18 +523,18 @@ AcpiDsEvalTableRegionOperands (
|
||||
|
||||
|
||||
/*
|
||||
* This is where we evaluate the SignatureString and OemIDString
|
||||
* and OemTableIDString of the DataTableRegion declaration
|
||||
* This is where we evaluate the Signature string, OemId string,
|
||||
* and OemTableId string of the Data Table Region declaration
|
||||
*/
|
||||
Node = Op->Common.Node;
|
||||
|
||||
/* NextOp points to SignatureString op */
|
||||
/* NextOp points to Signature string op */
|
||||
|
||||
NextOp = Op->Common.Value.Arg;
|
||||
|
||||
/*
|
||||
* Evaluate/create the SignatureString and OemIDString
|
||||
* and OemTableIDString operands
|
||||
* Evaluate/create the Signature string, OemId string,
|
||||
* and OemTableId string operands
|
||||
*/
|
||||
Status = AcpiDsCreateOperands (WalkState, NextOp);
|
||||
if (ACPI_FAILURE (Status))
|
||||
@ -543,8 +543,8 @@ AcpiDsEvalTableRegionOperands (
|
||||
}
|
||||
|
||||
/*
|
||||
* Resolve the SignatureString and OemIDString
|
||||
* and OemTableIDString operands
|
||||
* Resolve the Signature string, OemId string,
|
||||
* and OemTableId string operands
|
||||
*/
|
||||
Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
|
||||
ACPI_WALK_OPERANDS, WalkState);
|
||||
|
@ -518,6 +518,7 @@ AcpiEvAsynchExecuteGpeMethod (
|
||||
ACPI_STATUS Status;
|
||||
ACPI_GPE_EVENT_INFO *LocalGpeEventInfo;
|
||||
ACPI_EVALUATE_INFO *Info;
|
||||
ACPI_GPE_NOTIFY_INFO *Notify;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE (EvAsynchExecuteGpeMethod);
|
||||
@ -573,10 +574,18 @@ AcpiEvAsynchExecuteGpeMethod (
|
||||
* completes. The notify handlers are NOT invoked synchronously
|
||||
* from this thread -- because handlers may in turn run other
|
||||
* control methods.
|
||||
*
|
||||
* June 2012: Expand implicit notify mechanism to support
|
||||
* notifies on multiple device objects.
|
||||
*/
|
||||
Status = AcpiEvQueueNotifyRequest (
|
||||
LocalGpeEventInfo->Dispatch.DeviceNode,
|
||||
Notify = LocalGpeEventInfo->Dispatch.NotifyList;
|
||||
while (ACPI_SUCCESS (Status) && Notify)
|
||||
{
|
||||
Status = AcpiEvQueueNotifyRequest (Notify->DeviceNode,
|
||||
ACPI_NOTIFY_DEVICE_WAKE);
|
||||
|
||||
Notify = Notify->Next;
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_GPE_DISPATCH_METHOD:
|
||||
|
@ -391,6 +391,8 @@ AcpiEvDeleteGpeHandlers (
|
||||
void *Context)
|
||||
{
|
||||
ACPI_GPE_EVENT_INFO *GpeEventInfo;
|
||||
ACPI_GPE_NOTIFY_INFO *Notify;
|
||||
ACPI_GPE_NOTIFY_INFO *Next;
|
||||
UINT32 i;
|
||||
UINT32 j;
|
||||
|
||||
@ -412,10 +414,27 @@ AcpiEvDeleteGpeHandlers (
|
||||
if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_HANDLER)
|
||||
{
|
||||
/* Delete an installed handler block */
|
||||
|
||||
ACPI_FREE (GpeEventInfo->Dispatch.Handler);
|
||||
GpeEventInfo->Dispatch.Handler = NULL;
|
||||
GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK;
|
||||
}
|
||||
else if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NOTIFY)
|
||||
{
|
||||
/* Delete the implicit notification device list */
|
||||
|
||||
Notify = GpeEventInfo->Dispatch.NotifyList;
|
||||
while (Notify)
|
||||
{
|
||||
Next = Notify->Next;
|
||||
ACPI_FREE (Notify);
|
||||
Notify = Next;
|
||||
}
|
||||
GpeEventInfo->Dispatch.NotifyList = NULL;
|
||||
GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -295,9 +295,10 @@ AcpiSetupGpeForWake (
|
||||
ACPI_HANDLE GpeDevice,
|
||||
UINT32 GpeNumber)
|
||||
{
|
||||
ACPI_STATUS Status = AE_BAD_PARAMETER;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_GPE_EVENT_INFO *GpeEventInfo;
|
||||
ACPI_NAMESPACE_NODE *DeviceNode;
|
||||
ACPI_GPE_NOTIFY_INFO *Notify;
|
||||
ACPI_CPU_FLAGS Flags;
|
||||
|
||||
|
||||
@ -338,26 +339,69 @@ AcpiSetupGpeForWake (
|
||||
/* Ensure that we have a valid GPE number */
|
||||
|
||||
GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
|
||||
if (GpeEventInfo)
|
||||
if (!GpeEventInfo)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there is no method or handler for this GPE, then the
|
||||
* WakeDevice will be notified whenever this GPE fires (aka
|
||||
* "implicit notify") Note: The GPE is assumed to be
|
||||
* WakeDevice will be notified whenever this GPE fires. This is
|
||||
* known as an "implicit notify". Note: The GPE is assumed to be
|
||||
* level-triggered (for windows compatibility).
|
||||
*/
|
||||
if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NONE)
|
||||
{
|
||||
/*
|
||||
* This is the first device for implicit notify on this GPE.
|
||||
* Just set the flags here, and enter the NOTIFY block below.
|
||||
*/
|
||||
GpeEventInfo->Flags =
|
||||
(ACPI_GPE_DISPATCH_NOTIFY | ACPI_GPE_LEVEL_TRIGGERED);
|
||||
GpeEventInfo->Dispatch.DeviceNode = DeviceNode;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we already have an implicit notify on this GPE, add
|
||||
* this device to the notify list.
|
||||
*/
|
||||
if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NOTIFY)
|
||||
{
|
||||
/* Ensure that the device is not already in the list */
|
||||
|
||||
Notify = GpeEventInfo->Dispatch.NotifyList;
|
||||
while (Notify)
|
||||
{
|
||||
if (Notify->DeviceNode == DeviceNode)
|
||||
{
|
||||
Status = AE_ALREADY_EXISTS;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
Notify = Notify->Next;
|
||||
}
|
||||
|
||||
/* Add this device to the notify list for this GPE */
|
||||
|
||||
Notify = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_NOTIFY_INFO));
|
||||
if (!Notify)
|
||||
{
|
||||
Status = AE_NO_MEMORY;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Notify->DeviceNode = DeviceNode;
|
||||
Notify->Next = GpeEventInfo->Dispatch.NotifyList;
|
||||
GpeEventInfo->Dispatch.NotifyList = Notify;
|
||||
}
|
||||
|
||||
/* Mark the GPE as a possible wake event */
|
||||
|
||||
GpeEventInfo->Flags |= ACPI_GPE_CAN_WAKE;
|
||||
Status = AE_OK;
|
||||
}
|
||||
|
||||
UnlockAndExit:
|
||||
AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ AcpiExLoadTableOp (
|
||||
ACPI_FUNCTION_TRACE (ExLoadTableOp);
|
||||
|
||||
|
||||
/* Validate lengths for the SignatureString, OEMIDString, OEMTableID */
|
||||
/* Validate lengths for the Signature, OemId, and OemTableId strings */
|
||||
|
||||
if ((Operand[0]->String.Length > ACPI_NAME_SIZE) ||
|
||||
(Operand[1]->String.Length > ACPI_OEM_ID_SIZE) ||
|
||||
|
@ -53,6 +53,7 @@
|
||||
ACPI_MODULE_NAME ("utmisc")
|
||||
|
||||
|
||||
#if defined ACPI_ASL_COMPILER || defined ACPI_EXEC_APP
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: UtConvertBackslashes
|
||||
@ -86,6 +87,7 @@ UtConvertBackslashes (
|
||||
Pathname++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
@ -1330,5 +1332,3 @@ AcpiUtWalkPackageTree (
|
||||
|
||||
return_ACPI_STATUS (AE_AML_INTERNAL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -405,7 +405,7 @@ AcpiDbLocalNsLookup (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AcpiDbUInt32ToHexString (
|
||||
AcpiDbUint32ToHexString (
|
||||
UINT32 Value,
|
||||
char *Buffer);
|
||||
|
||||
|
@ -518,6 +518,14 @@ void
|
||||
AcpiDmMethodFlags (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmPredefinedDescription (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmFieldPredefinedDescription (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmFieldFlags (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
@ -479,4 +479,14 @@ ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects;
|
||||
|
||||
#endif /* ACPI_DEBUGGER */
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Info/help support
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
extern const AH_PREDEFINED_NAME AslPredefinedInfo[];
|
||||
|
||||
|
||||
#endif /* __ACGLOBAL_H__ */
|
||||
|
@ -462,6 +462,15 @@ typedef struct acpi_gpe_handler_info
|
||||
|
||||
} ACPI_GPE_HANDLER_INFO;
|
||||
|
||||
/* Notify info for implicit notify, multiple device objects */
|
||||
|
||||
typedef struct acpi_gpe_notify_info
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *DeviceNode; /* Device to be notified */
|
||||
struct acpi_gpe_notify_info *Next;
|
||||
|
||||
} ACPI_GPE_NOTIFY_INFO;
|
||||
|
||||
/*
|
||||
* GPE dispatch info. At any time, the GPE can have at most one type
|
||||
* of dispatch - Method, Handler, or Implicit Notify.
|
||||
@ -469,8 +478,8 @@ typedef struct acpi_gpe_handler_info
|
||||
typedef union acpi_gpe_dispatch_info
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level */
|
||||
struct acpi_gpe_handler_info *Handler; /* Installed GPE handler */
|
||||
ACPI_NAMESPACE_NODE *DeviceNode; /* Parent _PRW device for implicit notify */
|
||||
ACPI_GPE_HANDLER_INFO *Handler; /* Installed GPE handler */
|
||||
ACPI_GPE_NOTIFY_INFO *NotifyList; /* List of _PRW devices for implicit notifies */
|
||||
|
||||
} ACPI_GPE_DISPATCH_INFO;
|
||||
|
||||
@ -480,7 +489,7 @@ typedef union acpi_gpe_dispatch_info
|
||||
*/
|
||||
typedef struct acpi_gpe_event_info
|
||||
{
|
||||
union acpi_gpe_dispatch_info Dispatch; /* Either Method or Handler */
|
||||
union acpi_gpe_dispatch_info Dispatch; /* Either Method, Handler, or NotifyList */
|
||||
struct acpi_gpe_register_info *RegisterInfo; /* Backpointer to register info */
|
||||
UINT8 Flags; /* Misc info about this GPE */
|
||||
UINT8 GpeNumber; /* This GPE */
|
||||
@ -960,6 +969,7 @@ typedef struct acpi_parse_state
|
||||
#define ACPI_PARSEOP_IGNORE 0x01
|
||||
#define ACPI_PARSEOP_PARAMLIST 0x02
|
||||
#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04
|
||||
#define ACPI_PARSEOP_PREDEF_CHECKED 0x08
|
||||
#define ACPI_PARSEOP_SPECIAL 0x10
|
||||
|
||||
|
||||
@ -1311,4 +1321,20 @@ typedef struct acpi_debug_mem_block
|
||||
#define ACPI_NUM_MEM_LISTS 2
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Info/help support
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
typedef struct ah_predefined_name
|
||||
{
|
||||
char *Name;
|
||||
char *Description;
|
||||
#ifndef ACPI_ASL_COMPILER
|
||||
char *Action;
|
||||
#endif
|
||||
|
||||
} AH_PREDEFINED_NAME;
|
||||
|
||||
#endif /* __ACLOCAL_H__ */
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20120518
|
||||
#define ACPI_CA_VERSION 0x20120620
|
||||
|
||||
#include <contrib/dev/acpica/include/acconfig.h>
|
||||
#include <contrib/dev/acpica/include/actypes.h>
|
||||
|
@ -429,7 +429,7 @@ AcpiUtDumpBuffer (
|
||||
UINT8 *Buffer,
|
||||
UINT32 Count,
|
||||
UINT32 Display,
|
||||
UINT32 componentId);
|
||||
UINT32 ComponentId);
|
||||
|
||||
void
|
||||
AcpiUtDumpBuffer2 (
|
||||
|
@ -4,8 +4,8 @@ PROG= iasl
|
||||
SRCS= adfile.c adisasm.c adwalk.c
|
||||
|
||||
# common
|
||||
SRCS+= dmextern.c dmrestag.c dmtable.c dmtbdump.c dmtbinfo.c \
|
||||
getopt.c
|
||||
SRCS+= ahpredef.c dmextern.c dmrestag.c dmtable.c dmtbdump.c \
|
||||
dmtbinfo.c getopt.c
|
||||
|
||||
# compiler
|
||||
SRCS+= aslanalyze.c aslbtypes.c aslcodegen.c aslcompile.c \
|
||||
|
Loading…
Reference in New Issue
Block a user