📄 changes.txt
字号:
----------------------------------------21 July 2006. Summary of changes for version 20060721:1) ACPI CA Core Subsystem:The full source code for the ASL test suite used to validate the iASL compiler and the ACPICA core subsystem is being released with the ACPICA source for the first time. The source is contained in a separate package and consists of over 1100 files that exercise all ASL/AML operators. The package should appear on the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor Suietov)Completed a new design and implementation for support of the ACPI Global Lock. On the OS side, the global lock is now treated as a standard AML mutex. Previously, multiple OS threads could "acquire" the global lock simultaneously. However, this could cause the BIOS to be starved out of the lock - especially in cases such as the Embedded Controller driver where there is a tight coupling between the OS and the BIOS.Implemented an optimization for the ACPI Global Lock interrupt mechanism. The Global Lock interrupt handler no longer queues the execution of a separate thread to signal the global lock semaphore. Instead, the semaphore is signaled directly from the interrupt handler.Implemented support within the AML interpreter for package objects that contain a larger AML length (package list length) than the package element count. In this case, the length of the package is truncated to match the package element count. Some BIOS code apparently modifies the package length on the fly, and this change supports this behavior. Provides compatibility with the MS AML interpreter. (With assistance from Fiodor Suietov)Implemented a temporary fix for the BankValue parameter of a Bank Field to support all constant values, now including the Zero and One opcodes. Evaluation of this parameter must eventually be converted to a full TermArg evaluation. A not-implemented error is now returned (temporarily) for non-constant values for this parameter.Fixed problem reports (Fiodor Suietov) integrated:- Fix for premature object deletion after CopyObject on Operation Region (BZ 350)Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.7K Code, 18.0K Data, 98.7K Total Debug Version: 160.9K Code, 65.1K Data, 226.0K Total Current Release: Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total Debug Version: 161.0K Code, 65.1K Data, 226.1K Total2) iASL Compiler/Disassembler and Tools:No changes for this release.----------------------------------------07 July 2006. Summary of changes for version 20060707:1) ACPI CA Core Subsystem:Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C compilers that do not allow the initialization of address pointers within packed structures - even though the hardware itself may support misaligned transfers. Some of the debug data structures are packed by default to minimize size.Added an error message for the case where AcpiOsGetThreadId() returns zero. A non-zero value is required by the core ACPICA code to ensure the proper operation of AML mutexes and recursive control methods.The DSDT is now the only ACPI table that determines whether the AML interpreter is in 32-bit or 64-bit mode. Not really a functional change, but the hooks for per-table 32/64 switching have been removed from the code. A clarification to the ACPI specification is forthcoming in ACPI 3.0B.Fixed a possible leak of an OwnerID in the error path of AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table OwnerID deletion to a single place in AcpiTbUninstallTable to correct possible leaks when using the AcpiTbDeleteTablesByType interface (with assistance from Lance Ortiz.)Fixed a problem with Serialized control methods where the semaphore associated with the method could be over-signaled after multiple method invocations.Fixed two issues with the locking of the internal namespace data structure. Both the Unload() operator and AcpiUnloadTable interface now lock the namespace during the namespace deletion associated with the table unload (with assistance from Linn Crosetto.)Fixed problem reports (Valery Podrezov) integrated:- Eliminate unnecessary memory allocation for CreateXxxxField (BZ 5426)Fixed problem reports (Fiodor Suietov) integrated:- Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)- On Address Space handler deletion, needless deactivation call (BZ 374)- AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ 375)- Possible memory leak, Notify sub-objects of Processor, Power, ThermalZone (BZ 376)- AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ 378)- Minimum Length of RSDT should be validated (BZ 379)- AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj has no Handler (BZ (380)- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type loaded (BZ 381)Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.5K Code, 17.8K Data, 98.3K Total Debug Version: 160.8K Code, 64.8K Data, 225.6K Total Current Release: Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total Debug Version: 161.0K Code, 65.1K Data, 226.1K Total2) iASL Compiler/Disassembler and Tools:Fixed problem reports:Compiler segfault when ASL contains a long (>1024) String declaration (BZ 436)----------------------------------------23 June 2006. Summary of changes for version 20060623:1) ACPI CA Core Subsystem:Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces. This allows the type to be customized to the host OS for improved efficiency (since a spinlock is usually a very small object.)Implemented support for "ignored" bits in the ACPI registers. According to the ACPI specification, these bits should be preserved when writing the registers via a read/modify/write cycle. There are 3 bits preserved in this manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].Implemented the initial deployment of new OSL mutex interfaces. Since some host operating systems have separate mutex and semaphore objects, this feature was requested. The base code now uses mutexes (and the new mutex interfaces) wherever a binary semaphore was used previously. However, for the current release, the mutex interfaces are defined as macros to map them to the existing semaphore interfaces. Therefore, no OSL changes are required at this time. (See acpiosxf.h)Fixed several problems with the support for the control method SyncLevel parameter. The SyncLevel now works according to the ACPI specification and in concert with the Mutex SyncLevel parameter, since the current SyncLevel is a property of the executing thread. Mutual exclusion for control methods is now implemented with a mutex instead of a semaphore.Fixed three instances of the use of the C shift operator in the bitfield support code (exfldio.c) to avoid the use of a shift value larger than the target data width. The behavior of C compilers is undefined in this case and can cause unpredictable results, and therefore the case must be detected and avoided. (Fiodor Suietov)Added an info message whenever an SSDT or OEM table is loaded dynamically via the Load() or LoadTable() ASL operators. This should improve debugging capability since it will show exactly what tables have been loaded (beyond the tables present in the RSDT/XSDT.)Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.0K Code, 17.6K Data, 97.6K Total Debug Version: 160.2K Code, 64.7K Data, 224.9K Total Current Release: Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total Debug Version: 160.8K Code, 64.8K Data, 225.6K Total2) iASL Compiler/Disassembler and Tools:No changes for this release.----------------------------------------08 June 2006. Summary of changes for version 20060608:1) ACPI CA Core Subsystem:Converted the locking mutex used for the ACPI hardware to a spinlock. This change should eliminate all problems caused by attempting to acquire a semaphore at interrupt level, and it means that all ACPICA external interfaces that directly access the ACPI hardware can be safely called from interrupt level. OSL code that implements the semaphore interfaces should be able to eliminate any workarounds for being called at interrupt level.Fixed a regression introduced in 20060526 where the ACPI device initialization could be prematurely aborted with an AE_NOT_FOUND if a device did not have an optional _INI method.Fixed an IndexField issue where a write to the Data Register should be limited in size to the AccessSize (width) of the IndexField itself. (BZ 433, Fiodor Suietov)Fixed problem reports (Valery Podrezov) integrated:- Allow store of ThermalZone objects to Debug object (BZ 5369/5370)Fixed problem reports (Fiodor Suietov) integrated:- AcpiGetTableHeader doesn't handle multiple instances correctly (BZ 364)Removed four global mutexes that were obsolete and were no longer being used.Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.0K Code, 17.7K Data, 97.7K Total Debug Version: 160.3K Code, 64.9K Data, 225.2K Total Current Release: Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total Debug Version: 160.2K Code, 64.7K Data, 224.9K Total2) iASL Compiler/Disassembler and Tools:Fixed a fault when using -g option (get tables from registry) on Windows machines.Fixed problem reports integrated:- Generate error if CreateField NumBits parameter is zero. (BZ 405)- Fault if Offset/Length in Field unit is very large (BZ 432, Fiodor Suietov)- Global table revision override (-r) is ignored (BZ 413)----------------------------------------26 May 2006. Summary of changes for version 20060526:1) ACPI CA Core Subsystem:Restructured, flattened, and simplified the internal interfaces for namespace object evaluation - resulting in smaller code, less CPU stack use, and fewer interfaces. (With assistance from Mikhail Kouzmich)Fixed a problem with the CopyObject operator where the first parameter was not typed correctly for the parser, interpreter, compiler, and disassembler. Caused various errors and unexpected behavior.Fixed a problem where a ShiftLeft or ShiftRight of more than 64 bits produced incorrect results with some C compilers. Since the behavior of C compilers when the shift value is larger than the datatype width is apparently not well defined, the interpreter now detects this condition and simply returns zero as expected in all such cases. (BZ 395)Fixed problem reports (Valery Podrezov) integrated:- Update String-to-Integer conversion to match ACPI 3.0A spec (BZ 5329)- Allow interpreter to handle nested method declarations (BZ 5361)Fixed problem reports (Fiodor Suietov) integrated:- AcpiTerminate doesn't free debug memory allocation list objects (BZ 355)- After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ 356)- AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ 357)- Resource Manager should return AE_TYPE for non-device objects (BZ 358)- Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)- Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData (BZ 360)- Incomplete cleanup branch in AcpiPsParseAml (BZ 361)- Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ 365)- Status of the Global Initialization Handler call not used (BZ 366)- Incorrect object parameter to Global Initialization Handler (BZ 367)Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 79.8K Code, 17.7K Data, 97.5K Total Debug Version: 160.5K Code, 65.1K Data, 225.6K Total Current Release: Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -