Skip to content

v0.2.9

Latest
Compare
Choose a tag to compare
@DarkMatterCore DarkMatterCore released this 24 Feb 09:04
  • lib:
    • Implement a callback-based population system, which can be used as an alternative to the event-based system that has been available up until now. For more information, please read the How to use section from the README.
    • Add a reimplementation of libnx's usbHsEpPostBuffer(), called usbHsFsRequestEndpointDataXfer(), which calls usbHsEpPostBufferAsync() with a hardcoded timeout value of 10 seconds (using the USB_POSTBUFFER_TIMEOUT define).
    • Port log handler QoL improvements from nxdumptool.
    • Log result codes in unpadded hexadecimal notation.
    • Reorganize UsbHsFsMountFlags enum.
    • SCSI INQUIRY strings now have prevalence over USB device descriptor strings, which affects the manufacturer, product_name and serial_number strings from UsbHsFsDevice elements.
    • Add LIB_ASSERT macro and update all static assertions throughout the codebase to use it.
    • Use NX_IGNORE_ARG macro where needed throughout the codebase.
    • SCSI driver:
      • Reorganize structs and enums.
      • Add missing comments/references.
      • Add ScsiInquiryVitalProductDataPageCode enum and rework usbHsFsScsiSendInquiryCommand() to make it possible to request Vital Product Data pages from attached LUNs.
      • Update ScsiInquiryStandardData struct to also retrieve serial number data from attached LUNs.
      • Add ScsiInquiryUnitSerialNumberPageHeader struct.
      • Update usbHsFsScsiStartDriveLogicalUnit() to make it read serial number information from the Unit Serial Number VPD page. Fallbacks to the serial number returned by the standard SCSI Inquiry command if not available.
      • Overhaul usbHsFsScsiTransferCommand() to make it handle both unexpected CSWs and CSW data residue values in a better way.
  • fs-libs: remove all build scripts for both NTFS-3G and lwext4, as well as the fs-libs Makefile target. Please use the now available devkitPro pacman packages switch-ntfs-3g and switch-lwext4. The How to install section of the README has been updated to reflect this change.
  • fat: calls to ftruncate() on FAT filesystems now restore the current file position after truncation.

P.S.: remember to remove previous installations of NTFS-3G and lwext4 *before* installing the official devkitPro pacman packages by running:

sudo (dkp-)pacman -R switch-libntfs-3g switch-lwext4

Resources from this release:

  • libusbhsfs_0.2.9-main-b1ff881-src.tar.bz2: full libusbhsfs source code.
  • libusbhsfs_0.2.9-main-b1ff881_ISC.tar.bz2: ISC licensed build of libusbhsfs. Only offers support for FAT filesystems (FAT12, FAT16, FAT32, exFAT).
  • libusbhsfs_0.2.9-main-b1ff881_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 with debugging enabled.