Skip to content

Releases: reinauer/ODFileSystem

ODFileSystem v0.4

22 Apr 04:05

Choose a tag to compare

This release is a focused AmigaDOS compatibility update for the
Amiga handler, aimed at fixing real boot and utility breakage seen
with the AmigaOS 3.2 CD image. With ODFileSystem v0.4 the
A4091 can successfully boot from the AmigaOS 3.2 CD.

Highlights

  • Publish a proper DOS device node as well as the volume node, and
    keep valid startup metadata attached to it.
  • Fix DupLockFromFH() handling so regular file handles can be
    duplicated correctly, not just directory handles.
  • Align the handler's lock layout with stock DOS filesystem
    expectations by reserving the two private words after
    struct FileLock.

Fixed

  • CD0: is now exposed through a proper DLT_DEVICE entry with a
    valid FileSysStartupMsg, which improves compatibility with DOS
    code that expects both a device node and a volume node.
  • ACTION_COPY_DIR_FH now duplicates file locks for ordinary files
    with SHARED_LOCK, which fixes callers that use
    DupLockFromFH() on real files such as C:Version.
  • ACTION_EXAMINE_OBJECT now updates the DOS-owned lock state used
    by examine and enumeration code, instead of overlapping it with
    handler-private metadata.
  • The lock wrapper now reserves the DOS-private space immediately
    after struct FileLock, matching stock filesystem layout and
    avoiding corruption of examine bookkeeping.
  • The path resolver documentation was corrected to match the stock
    DOS model where assign and device prefix resolution happens
    before the packet reaches the handler.

Tests

  • Added tests/integration/check_fh_packets.py to verify
    EXAMINE_FH, PARENT_FH, and COPY_DIR_FH against real files,
    including /C/Version from AmigaOS3.2CD.iso.
  • Extended the assign-prefix regression check so it reports success
    only after all matching cases have been exercised.
  • Wired the new file-handle packet regression into
    tests/integration/test_amifuse.sh.

Full Changelog: v0.3...v0.4

ODFileSystem v0.3

21 Apr 15:30

Choose a tag to compare

v0.3 is a focused bugfix release that improves AmigaDOS
compatibility when opening files through assigns.

Compared to v0.2, this release fixes a handler-side path
resolution bug where colon-prefixed names such as
LIBS:workbench.library could incorrectly reset lookup to the
volume root instead of staying relative to the resolved start lock.
In practice, this fixes failures seen while booting the
AmigaOS 3.2 CD, where the Version command could not locate
workbench.library.

What's Changed

  • Fix assign-prefixed lookups in the Amiga handler so paths like
    LIBS:workbench.library resolve relative to the supplied lock.
  • Restore compatibility with AmigaDOS code paths that use
    GetDeviceProc() or assign resolution before calling into the
    filesystem.
  • Add a new AmiFUSE integration regression test for opening both a
    plain leaf name and an assign-prefixed name from the same
    directory lock.
  • Run the new regression check as part of the integration test flow.

Full Changelog

  • platform/amiga: keep assign lookups on the start lock

Full Changelog:
v0.2...v0.3

ODFileSystem v0.2

18 Apr 04:18

Choose a tag to compare

Release notes

Highlights

Audio CDs now mount with distinct volume names derived from CDDB disc IDs, ancestry/identity handling in the core has been consolidated, and a Coverity-flagged buffer overrun in the Amiga CDDA mount path is fixed. A stack corruption issue was fixed that would make ODFileSystem crash with CDs with more than about four levels of directories.

Features

  • cdda/amiga: keep CDDA disc IDs in pure-audio volume names (1639317). Pure-audio discs now expose the CDDB disc id through the volume label so multiple audio CDs no longer all mount as "Audio CD". Mixed-mode discs continue to surface as the synthetic CDDA backend name. The pure-audio label is cached in cdda_context_t, carried through the backend, copied into the handler mount state, and used verbatim to build the DOS volume node name.

Improvements

  • odfs: centralize node identity comparison and simplify ancestry lookup (14db72f). Introduces odfs_node_matches_identity() in odfs/node.h, replacing repetitive field-by-field comparisons across mount and ancestry logic. The grandparent_out parameter of odfs_resolve_parent_node() is now optional, lowering stack usage for parent resolution in the Amiga handler.

Bug fixes

  • amiga: bound CDDA volume name copy (74804fb). The pure-audio handler previously copied the CDDA volume name using destination buffer sizes, but the source cdda_context_t field is only 32 bytes. The copy is now bounded to sizeof(ctx->volume_name), fixing the Coverity overrun warning in copy_pure_audio_volume_name().

Tests

  • Host-side CDDA naming coverage added (tests/unit/test_cdda.c).
  • Amiga handler test extended to verify NameFromLock(), Info(), and Examine() volume names (tests/amiga/test_handler.c).
  • New unit coverage for parent resolution with a NULL grandparent output (tests/unit/test_ancestry.c).

Full Changelog: v0.1...v0.2

ODFileSystem v0.1

18 Apr 04:01

Choose a tag to compare

Initial Release

This is the initial release of ODFileSystem, a brand new Amiga optical disk (CDs/DVDs/BlueRay) filesystem for the Amiga.

Files

  • ODFileSystem is the full featured production filesystem handler
  • ODFileSystem-rom is a stripped down filesystem handler to be integrated in ROMs (e.g. on A4091)
  • ODFileSystem-test is a version of ODFileSystem with serial debugging enabled. Try this if you have problems with ODFileSystem and report with the log.
  • ODFileSystem-rom-test is a version of ODFileSystem-rom with serial debugging enabled.

If you do not have a serial null modem cable at hand, you can also use Sashimi to grab the serial log from within AmigaOS

Contributors