Repository navigation
dos.library: the path packets ixemul.library sends, and Info() - #198
Merged
Merged
Conversation
…Port ixemul.library sends every path operation to dvp_Port and fails with ERROR_OBJECT_NOT_FOUND when it is NULL; locks and handles already name the port sidick#191 answers packets on. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
CREATE_DIR, DELETE_OBJECT, RENAME_OBJECT, SET_PROTECT, SET_DATE, SET_OWNER, MAKE_LINK, SET_FILE_SIZE, DISK_INFO and WAIT_CHAR, over the code of the matching dos.library calls; an unknown action now replies DOSFALSE, which no boolean caller mistakes for success. Fixes sidick#196. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 2026
Merged
1 task done
sidick
added a commit
that referenced
this pull request
Oct 23, 2026
Fills in the 0.13 changelog: ixemul.library's full path-based file I/O (GetDeviceProc's dvp_Port, the path packet actions, and Info()) from #197/#198, Supervisor()'s real exception frame unblocking nested library calls from #199, the dl_TimeReq clock() fix from #194, the remaining AllocDosObject types (DOS_STDPKT/DOS_CLI) from #187, and #200's new_lock leak fix. Also documents these in Supported-Libraries.md (expanded packet-action list, Supervisor's RTE-anywhere support, dl_TimeReq). Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #196. Stacked on #197 (
GetDeviceProcreturning the packet port), whose commit this branch includes: merge #197 first, or this one alone.With both, an ixemul.library 80.1 program runs a full round of file operations: #196's
fileio.cpasses all 21 checks (mkdir, open/create, read/write/lseek, fstat, ftruncate, O_APPEND, O_EXCL, ENOENT, rename, opendir/readdir, unlink, rmdir) on--cpu 68000and--cpu 68020, with and without--sanitize. Before: 20 of 21 failed.Changes
handle_fs_packetanswers the path actions ixemul sends, each over the code of the matching dos.library call, with the path resolved from the parent lock and BSTR name asACTION_LOCATE_OBJECTalready does (combine_lock_path):ACTION_CREATE_DIR,ACTION_DELETE_OBJECT,ACTION_RENAME_OBJECT,ACTION_MAKE_LINK(hard and soft):DosState::create_dir/delete_file/rename/make_link_*ACTION_SET_PROTECT,ACTION_SET_DATE: the work of theSetProtection/SetFileDatehandlers, moved intodosprotect::set_protectionanddossetfiledate::set_file_dateso both paths share itACTION_SET_OWNER: succeeds for an existing object (host volumes have no Amiga owner),ERROR_OBJECT_NOT_FOUNDotherwiseACTION_SET_FILE_SIZE:DosState::set_file_size, asACTION_SEEKdoesseekACTION_DISK_INFO: the sameInfoDataDoPktfillsACTION_WAIT_CHAR: no character, asWaitForCharRes1 = DOSFALSEinstead of-1, which a caller of a boolean action read as success (ixemul'smkdir()returned 0 without creating anything).dos.library/Info(), which ixemul calls when it resolves a path through/: fills the sameInfoData, returnsDOSTRUE.Test plan
ACTION_SET_FILE_SIZE(a directset_file_sizecall), plusInfo(); the unknown-action test now expectsDOSFALSEcargo test --workspace: all pass exceptexectask::tests::pending_host_break_folds_into_check_signal/_wait, which fail the same way on main in a full parallel run (see dos.library: GetDeviceProc returns the filesystem packet port in dvp_Port #197)cargo clippy --workspace --all-targets,cargo fmt --check: cleanfileio.c, built against the ixemul 80.1 SDK: 21/21 on 68000 and 68020, with and without--sanitize; ixemul programs: AllocDosObject(DOS_FILEHANDLE) and packet-level file I/O #186's hello programs still exit 3🤖 Generated with Claude Code