DOS Packet Reference¶
The RKM (2024 edition by Thomas Richter) documents the complete set of AmigaDOS packets in §14. This article is a comprehensive reference organized by function. Packets are the internal IPC mechanism between dos.library and filesystem handlers.
File packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_FINDINPUT |
Open(MODE_OLDFILE) |
Open for shared read |
ACTION_FINDOUTPUT |
Open(MODE_NEWFILE) |
Open for exclusive write |
ACTION_FINDUPDATE |
Open(MODE_READWRITE) |
Open for shared read+write |
ACTION_FH_FROM_LOCK |
OpenFromLock() |
Open from existing lock |
ACTION_END |
Close() |
Close file handle |
ACTION_READ |
Read() |
Read bytes |
ACTION_WRITE |
Write() |
Write bytes |
ACTION_SEEK |
Seek() |
Move file pointer |
ACTION_SET_FILE_SIZE |
SetFileSize() (V36) |
Truncate/extend |
ACTION_LOCK_RECORD |
LockRecord() |
Lock byte range |
ACTION_FREE_RECORD |
UnLockRecord() |
Unlock byte range |
Lock packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_LOCATE_OBJECT |
Lock() |
Obtain a lock |
ACTION_COPY_DIR |
DupLock() |
Duplicate lock (shared) |
ACTION_PARENT |
ParentDir() |
Parent directory lock |
ACTION_COPY_DIR_FH |
DupLockFromFH() (V36) |
Lock from file handle |
ACTION_PARENT_FH |
ParentOfFH() (V36) |
Parent from file handle |
ACTION_CREATE_DIR |
CreateDir() |
Create directory |
ACTION_SAME_LOCK |
SameLock() |
Compare two locks |
ACTION_CHANGE_MODE |
ChangeMode() |
Change lock/FH access mode |
ACTION_FREE_LOCK |
UnLock() |
Release lock |
Examine packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_EXAMINE_OBJECT |
Examine() |
Examine locked object |
ACTION_EXAMINE_NEXT |
ExNext() |
Iterate directory |
ACTION_EXAMINE_ALL |
ExAll() (V36) |
Bulk directory read |
ACTION_EXAMINE_ALL_END |
ExAllEnd() (V39) |
Abort ExAll scan |
ACTION_EXAMINE_FH |
ExamineFH() (V36) |
Examine from file handle |
Link packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_MAKE_LINK |
MakeLink() |
Create hard or soft link |
ACTION_READ_LINK |
ReadLink() |
Resolve soft link |
MakeLink() with LINK_HARD creates a hard link (same filesystem only). With LINK_SOFT creates a soft link (cross-filesystem, stores a string path).
Metadata packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_RENAME_OBJECT |
Rename() |
Rename or move |
ACTION_DELETE_OBJECT |
DeleteFile() |
Delete file/directory |
ACTION_SET_PROTECT |
SetProtection() |
Set protection bits |
ACTION_SET_COMMENT |
SetComment() |
Set file comment |
ACTION_SET_DATE |
SetFileDate() |
Set modification date |
ACTION_SET_OWNER |
SetOwner() (V39) |
Set UID/GID |
Notification packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_NOTIFY |
StartNotify() |
Register file change notification |
ACTION_NOTIFY_MORE |
EndNotify() |
Cancel notification |
Volume packets¶
| Packet | DOS API | Purpose |
|---|---|---|
ACTION_CURRENT_VOLUME |
(internal) | Determine inserted volume |
ACTION_INFO |
Info() |
Volume info from lock |
ACTION_DISK_INFO |
Info() |
Volume info (system) |
ACTION_RELABEL |
Relabel() |
Rename volume |
ACTION_FORMAT |
Format() |
Format disk |
ACTION_SERIALIZE_DISK |
(internal) | Make disk unique |
ACTION_WRITE_PROTECT |
(internal) | Toggle write protect |
Handler control packets¶
| Packet | Purpose |
|---|---|
ACTION_MORE_CACHE |
Adjust filesystem cache buffers |
ACTION_INHIBIT |
Inhibit/uninhibit filesystem (format uses this) |
ACTION_IS_FILESYSTEM |
Check if handler is a real filesystem |
ACTION_FLUSH |
Write out all pending modifications |
ACTION_DIE |
Shutdown handler (rarely supported) |
ACTION_NOP |
No operation (keep-alive / ping) |
Console/interactive packets¶
| Packet | Purpose |
|---|---|
ACTION_WAIT_CHAR |
Wait for input available |
ACTION_SET_MODE |
Set line buffer mode |
ACTION_SCREEN_MODE |
Get IORequest and window pointer from console |
Packet communication pattern¶
Application → dos.library → SendPkt() → Handler's MsgPort
↓
Handler processes
↓
Application ← dos.library ← ReplyPkt() ← Handler returns
DoPkt()— synchronous (blocks until reply)SendPkt()— asynchronous (returns immediately, useWaitPkt())AbortPkt()— attempt to cancel (buggy pre-V37, may not work)
For the async serialization rule (multiple packets on the same file handle must be serialized), see DOS Packets.
See Also¶
- dos.library Reference
- DOS Packets — async serialization rule
- BPTR, BSTR, and BCPL Legacy
Sources: Thomas Richter, "Rom Kernel Reference Manual: AmigaDOS" (2024 edition), §14.
Raw: raw/rkm/rkm-amigados-extract.md; raw/rkm/rkm-dos-book.md
Updated: 2026-08-08