Skip to content

ODFileSystem v0.4

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Apr 04:05
· 1 commit to main since this release

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