v0.2.3
- Improvements to the USB manager:
- Refactored USB control request functions to work with libnx USB datatypes instead of drive / logical unit contexts.
- Implemented
GET_DESCRIPTOR
control requests for configuration and string descriptors.
- Improvements to the BOT driver:
- If
usbHsEpPostBuffer()
fails, only the endpoint the library is currently working with will be cleared. Furthermore, the result from this operation no longer affects the return code. - If
usbHsFsRequestPostBuffer()
fails, the library now tries to retrieve a CSW right away - if it succeeds, a Request Sense command will be issued immediately to the block device. - Mode Sense (6) / Mode Sense (10) command success is no longer mandatory in
usbHsFsScsiStartDriveLogicalUnit()
. - SPC standard version is now validated.
- If
- Improvements to the PKGBUILD scripts for NTFS-3G and lwext4:
- Made it possible to build and install all three libraries using the Makefile - for more information, please refer to the How to install section from the README.
- Proper library path is now forced while building NTFS-3G. Fixes issues in some Linux systems. Thanks to sigmaboy for the correction.
- Other minor improvements.
- Library API changes:
- Added
vid
andpid
fields toUsbHsFsDevice
. Useful if the application needs to implement a device filter on its own. vendor_id
,product_id
andproduct_revision
fields inUsbHsFsDevice
have been replaced withmanufacturer
,product_name
andserial_number
fields, which represent UTF-8 conversions of string descriptors referenced by the USB device descriptor.- Strings from SCP INQUIRY data are still used as a fallback method for
manufacturer
andproduct_name
fields if the USB device descriptor holds no references to string descriptors.
- Strings from SCP INQUIRY data are still used as a fallback method for
- Added
- Miscellaneous changes:
- Renamed
ff_rename()
from FatFs to avoid issues fix conflicts in applications linked against FFmpeg. Thanks to Cpasjuste for letting us know. - The
has_journal
flag from the superblock in EXT filesystems is now verified before calling journal-related functions. - EXT filesystem version is now retrieved only once, while mounting the volume.
- The
AtmosphereHasService
sm API extension available in Atmosphère and Atmosphère-based CFWs is now being used to check if a specific service is running.- HOS 12.0.x / AMS 0.19.x support is provided by using TIPC serialization to dispatch the IPC request, if needed.
- Improved logfile code and simplified binary data logging throughout the codebase.
- Renamed
- Changes under the hood (currently unused, but may change in the future):
- Implemented SYNCHRONIZE CACHE (10) and SYNCHRONIZE CACHE (16) SCP commands.
- Modified drive and logical unit contexts to prepare for UASP support.
- Added extra code to handle USB Attached SCSI Protocol (UASP) interface descriptors under both USB 2.0 and 3.0 modes.
Resources from this release:
libusbhsfs_0.2.3-main-c5d8e12-src.tar.bz2
: full libusbhsfs source code.libusbhsfs_0.2.3-main-c5d8e12_ISC.tar.bz2
: ISC licensed build of libusbhsfs. Only offers support for FAT filesystems (FAT12, FAT16, FAT32, exFAT).libusbhsfs_0.2.3-main-c5d8e12_GPLv2.tar.bz2
: GPLv2+ licensed build of libusbhsfs. Offers support for FAT filesystems (FAT12, FAT16, FAT32, exFAT), NTFS and EXT filesystems (EXT2, EXT3, EXT4). Applications using this build must also be linked against NTFS-3G and lwext4 - please check the README for further information.
Both ISC and GPLv2+ archives also hold the example test application NRO linked against that version of the library.