- Added strict architectural constraints to prevent modern AHCI controllers
or USB bridges from injecting forward-generation speed limits (Gen3/6.0 Gb/s)
into classic SATA Gen1/Gen2 physical disk layouts.
- Synchronized Word 76 capabilities parsing limits down to 1.5 Gb/s when
underlying firmware natively maps to transitional SATA 2.5/2.6 or older lines.
- Ensured perfect string parity with native camcontrol identify outputs
on legacy platforms such as FreeBSD 11.4.
- Migrated advanced ATA version tracking to the official libcam.so exported
'ata_version' interface, utilizing native kernel resolution matrices.
- Implemented SATA logical revision parsing mapping explicit bit boundaries
from camcontrol.c (0x0040 for 3.1, 0x0080 for 3.2, 0x0100 for 3.3).
- Integrated active signaling rate tracking via XPT_PATH_INQ bus evaluation,
enabling precise '(current: X.X Gb/s)' link speed mapping matching smartctl.
- Maintained clean userland fallback protections and universal descriptive
error logging to stderr across restricted permission environments.
- Replaced brittle Word 230 bitmasks with an advanced cross-verification matrix
between Word 80 (version_major) and Word 222 (transport_major) to properly
resolve exact ACS-3/ACS-4/ACS-5 and SATA 3.1/3.2/3.3 revisions layout.
- Fixed Advanced Format physical sector mapping (Word 106) by switching to the
compliant 0x4000/0x2000 bitmasks, successfully enabling 4096-byte layout
mapping for modern Western Digital, Samsung, Seagate, and Intel drives.
- Integrated comprehensive comments across new properties and macros in
include/bsdiskinfo.h and src/cli.c.
- Replaced newSVbool with boolSV inside modules/perl/bsdiskinfo.xs to support
legacy Perl versions (below 5.36) and avoid execution undefined symbol traps.
- Rewrote bitwise operations and math.tointeger in examples/tree_view.lua
using math.floor and modulo arithmetic for universal Lua 5.1/5.2/5.3/5.4
compliance.
Introduces an automated 12-byte ATA PASS-THROUGH (12) fallback chain inside
query_cam_properties. If a legacy controller (e.g., JMicron JMS539) silences
the modern 16-byte layout by returning an empty identity payload, the core
safely downgrades the command tracking to 12-byte mapping (0xA1). Additionally,
standardized temperature output parsing for Samsung/Toshiba drive limits.
Corrects the 16-byte ATA PASS-THROUGH (16) CDB array register mapping
indexes to align perfectly with the T10/SAT specification. Additionally,
relaxes the CAM status validation verification checks to safely accept
CAM_SCSI_STATUS_ERROR states containing successful SCSI CHECK CONDITION
descriptor responses.
Splits the unversioned library symlink creation into an independent target
and enforces modules_all to explicitly depend on the compiled binary object
(LIB_SOLINK). This eliminates linker failures during concurrent -j builds.
Implemented at the moment:
- complete Perl 5 XS binding library wrapping core standalone structures;
- automated ppport.h generation and ExtUtils::MakeMaker compilation path;
- native system tree mapping example utilizing BSD::Sysctl and strict
UTF-8 streams.
Implemented at the moment:
- complete Lua binding library using backward-compatible C API;
- dynamic ports-aware bmake workflow driven by pkg-config automation;
- standalone hardware tree mapping example utilizing lua-sysctl queries.
Implemented at the moment:
- advanced identity properties;
- read S.M.A.R.T. attributes;
- retrieve active mount points for device partitions;
- complete CLI utility with POSIX flags.