Releases: reinauer/ODFileSystem
ODFileSystem v0.4
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 properDLT_DEVICEentry with a
validFileSysStartupMsg, which improves compatibility with DOS
code that expects both a device node and a volume node.ACTION_COPY_DIR_FHnow duplicates file locks for ordinary files
withSHARED_LOCK, which fixes callers that use
DupLockFromFH()on real files such asC:Version.ACTION_EXAMINE_OBJECTnow 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
afterstruct 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.pyto verify
EXAMINE_FH,PARENT_FH, andCOPY_DIR_FHagainst real files,
including/C/VersionfromAmigaOS3.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
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.libraryresolve 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
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
CDDAbackend name. The pure-audio label is cached incdda_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()inodfs/node.h, replacing repetitive field-by-field comparisons across mount and ancestry logic. Thegrandparent_outparameter ofodfs_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_tfield is only 32 bytes. The copy is now bounded tosizeof(ctx->volume_name), fixing the Coverity overrun warning incopy_pure_audio_volume_name().
Tests
- Host-side CDDA naming coverage added (
tests/unit/test_cdda.c). - Amiga handler test extended to verify
NameFromLock(),Info(), andExamine()volume names (tests/amiga/test_handler.c). - New unit coverage for parent resolution with a
NULLgrandparent output (tests/unit/test_ancestry.c).
Full Changelog: v0.1...v0.2
ODFileSystem v0.1
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