bits-910 released with these changes:

  • acpi: Add decode for all resource descriptors from ACPI CRS and PRS methods.

  • Add ability to discover, decode and display the MP Table.

  • SMBIOS: Add SMBIOS decode and display to Explore menu.

  • ttypager: ttypager can now detect redirect status and output to the log file.

    When redirect.log() is active, text sent to ttypager will be directed to the log file first and then metered to the screen with no further outputs to the log file. When redirect.nolog() is active, text sent to ttypager will be directed to the log file first and then ttypager will exit with no text sent to the screen.

    ttypager module's ttypager method has been modified to check whether redirect's log() or logonly() context managers are active and then to direct all cached output to the log before metering text to the screen. This allows ttypager to be used when the logonly() and log() conext managers are actively limiting outputs.

    The redirect module now has a module-level status indicating when the log(), logonly(), or nolog() context managers are active.

  • acpi: Add get_object_info() to get information from an ACPI namespace object.

    acpi.get_object_info() accepts an ACPI namepath and returns decoded information using ACPICA's ACPIGetObjectInfo().

  • acpi: Add decode for software licensing-related tables MSDM and SLIC

  • menus: Discontinue deletion of imported Python modules used in menu entries.

    Deleting every module imported by Python menu entries impacts the interactive python interpreter environment.

    Only delete modules imported during BITS initialization, before the Python interpreter is available.

  • bits: Modify pause() method to only print the "Press any key..." message to the screen.

  • SMBIOS: Refactor SMBIOS class to move header fields into a separate class.

  • Bugfixes:

    • Make CPU frequency detection fail gracefully in the absence of APERF/MPERF
    • Fix Python reference leaks caused by Py_BuildValue "O" on a referenced object. Py_BuildValue's "O" type adds a reference to an object, while "N" expects an already-referenced object. Fix memory leaks caused by using "O" on an object that already has a reference.
    • SMBIOS: Fix the type of enumerated_type in SystemEnclosure, which is a bitfield, not a string.
    • P-state test now uses the one detected processor when no APIC table exists.
    • Only check for Turbo if 2 or more P-states exist.
    • PSD test now uses the new ACPI _PSD class.