home *** CD-ROM | disk | FTP | other *** search
-
- ; DOS structures not needed for the casual DOS user
-
- IFND LIBRARIES_DOSEXTENS_I@
-
- LIBRARIES_DOSEXTENS_I@ = 1
-
- IFND EXEC_TYPES_I@
- INCLUDE "exec/types.i"
- ENDIF
- IFND EXEC_TASKS_I@
- INCLUDE "exec/tasks.i"
- ENDIF
- IFND EXEC_PORTS_I@
- INCLUDE "exec/ports.i"
- ENDIF
- IFND EXEC_LIBRARIES_I@
- INCLUDE "exec/libraries.i"
- ENDIF
-
- IFND LIBRARIES_DOS_I@
- INCLUDE "libraries/dos.i"
- ENDIF
-
-
- ; All DOS processes have this STRUCTure
- ; Create and DeviceProc returns pointer to the MsgPort in this STRUCTure
- ; Process_addr = DeviceProc(..) - TC_SIZE
-
- STRUCTURE Process,0
- STRUCT pr_Task,TC_SIZE
- STRUCT pr_MsgPort,MP_SIZE ; This is BPTR address from DOS functions
- WORD pr_Pad ; Remaining variables on 4 byte boundaries
- BPTR pr_SegList ; Array of seg lists used by this process
- LONG pr_StackSize ; Size of process stack in bytes
- APTR pr_GlobVec ; Global vector for this process (BCPL)
- LONG pr_TaskNum ; CLI task number of zero if not a CLI
- BPTR pr_StackBase ; Ptr to high memory end of process stack
- LONG pr_Result2 ; Value of secondary result from last call
- BPTR pr_CurrentDir ; Lock associated with current directory
- BPTR pr_CIS ; Current CLI Input Stream
- BPTR pr_COS ; Current CLI Output Stream
- APTR pr_ConsoleTask ; Console handler process for current window
- APTR pr_FileSystemTask ; File handler process for current drive
- BPTR pr_CLI ; pointer to ConsoleLineInterpreter
- APTR pr_ReturnAddr ; pointer to previous stack frame
- APTR pr_PktWait ; Function to be called when awaiting msg
- APTR pr_WindowPtr ; Window pointer for errors
- LABEL pr_SIZEOF ; Process
-
- ; The long word address (BPTR) of this STRUCTure is returned by
- ; Open() and other routines that return a file. You need only worry
- ; about this STRUCT to do async io's via PutMsg() instead of
- ; standard file system calls
-
- STRUCTURE FileHandle,0
- APTR fh_Link ; pointer to EXEC message
- APTR fh_Interactive ; Boolean; TRUE if interactive handle
- APTR fh_Type ; Port to do PutMsg() to
- LONG fh_Buf
- LONG fh_Pos
- LONG fh_End
- LONG fh_Funcs
- fh_Func1 EQU fh_Funcs
- LONG fh_Func2
- LONG fh_Func3
- LONG fh_Args
- fh_Arg1 EQU fh_Args
- LONG fh_Arg2
- LABEL fh_SIZEOF ; FileHandle
-
- ; This is the extension to EXEC Messages used by DOS
- STRUCTURE DosPacket,0
- APTR dp_Link ; pointer to EXEC message
- APTR dp_Port ; pointer to Reply port for the packet
- ; ; Must be filled in each send.
- LONG dp_Type ; See ACTION_... below and
- ; ; 'R' means Read, 'W' means Write to the file system
- LONG dp_Res1 ; For file system calls this is the result
- ; ; that would have been returned by the
- ; ; function, e.g. Write ('W') returns actual
- ; ; length written
- LONG dp_Res2 ; For file system calls this is what would
- ; ; have been returned by IoErr()
- LONG dp_Arg1
- ; Device packets common equivalents
- dp_Action EQU dp_Type
- dp_Status EQU dp_Res1
- dp_Status2 EQU dp_Res2
- dp_BufAddr EQU dp_Arg1
- LONG dp_Arg2
- LONG dp_Arg3
- LONG dp_Arg4
- LONG dp_Arg5
- LONG dp_Arg6
- LONG dp_Arg7
- LABEL dp_SIZEOF ; DosPacket
-
- ; A Packet does not require the Message to before it in memory, but
- ; for convenience it is useful to associate the two.
- ; Also see the function init_std_pkt for initializing this STRUCTure
-
- STRUCTURE StandardPacket,0
- STRUCT sp_Msg,MN_SIZE
- STRUCT sp_Pkt,dp_SIZEOF
- LABEL sp_SIZEOF ; StandardPacket
-
-
- ; Packet types
- ACTION_NIL EQU 0
- ACTION_GET_BLOCK EQU 2
- ACTION_SET_MAP EQU 4
- ACTION_DIE EQU 5
- ACTION_EVENT EQU 6
- ACTION_CURRENT_VOLUME EQU 7
- ACTION_LOCATE_OBJECT EQU 8
- ACTION_RENAME_DISK EQU 9
- ACTION_WRITE EQU 'W'
- ACTION_READ EQU 'R'
- ACTION_FREE_LOCK EQU 15
- ACTION_DELETE_OBJECT EQU 16
- ACTION_RENAME_OBJECT EQU 17
-
- ACTION_COPY_DIR EQU 19
- ACTION_WAIT_CHAR EQU 20
- ACTION_SET_PROTECT EQU 21
- ACTION_CREATE_DIR EQU 22
- ACTION_EXAMINE_OBJECT EQU 23
- ACTION_EXAMINE_NEXT EQU 24
- ACTION_DISK_INFO EQU 25
- ACTION_INFO EQU 26
-
- ACTION_SET_COMMENT EQU 28
- ACTION_PARENT EQU 29
- ACTION_TIMER EQU 30
- ACTION_INHIBIT EQU 31
- ACTION_DISK_TYPE EQU 32
- ACTION_DISK_CHANGE EQU 33
-
-
- ; DOS library node structure.
- ; This is the data at positive offsets from the library node.
- ; Negative offsets from the node is the jump table to DOS functions
- ; node = (STRUCT DosLibrary ;) OpenLibrary( "dos.library" .. )
-
- STRUCTURE DosLibrary,0
- STRUCT dl_lib,LIB_SIZE
- APTR dl_Root ; Pointer to RootNode, described below
- APTR dl_GV ; Pointer to BCPL global vector
- LONG dl_A2 ; Private register dump of DOS
- LONG dl_A5
- LONG dl_A6
- LABEL dl_SIZEOF ; DosLibrary
-
- ;
-
- STRUCTURE RootNode,0
- BPTR rn_TaskArray ; [0] is max number of CLI's
- ; ; [1] is APTR to process id of CLI 1
- ; ; [n] is APTR to process id of CLI n
- BPTR rn_ConsoleSegment ; SegList for the CLI
- STRUCT rn_Time,ds_SIZEOF ; Current time
- LONG rn_RestartSeg ; SegList for the disk validator process
- BPTR rn_Info ; Pointer ot the Info structure
- BPTR rn_FileHandlerSegment ; code for file handler
- LABEL rn_SIZEOF ; RootNode
-
- STRUCTURE DosInfo,0
- BPTR di_McName ; Network name of this machine currently 0
- BPTR di_DevInfo ; Device List
- BPTR di_Devices ; Currently zero
- BPTR di_Handlers ; Currently zero
- APTR di_NetHand ; Network handler processid currently zero
- LABEL di_SIZEOF ; DosInfo
-
- ; DOS Processes started from the CLI via RUN or NEWCLI have this additional
- ; set to data associated with them
-
- STRUCTURE CommandLineInterface,0
- LONG cli_Result2 ; Value of IoErr from last command
- BSTR cli_SetName ; Name of current directory
- BPTR cli_CommandDir ; Lock associated with command directory
- LONG cli_ReturnCode ; Return code from last command
- BSTR cli_CommandName ; Name of current command
- LONG cli_FailLevel ; Fail level (set by FAILAT)
- BSTR cli_Prompt ; Current prompt (set by PROMPT)
- BPTR cli_StandardInput ; Default (terminal) CLI input
- BPTR cli_CurrentInput ; Current CLI input
- BSTR cli_CommandFile ; Name of EXECUTE command file
- LONG cli_Interactive ; Boolean True if prompts required
- LONG cli_Background ; Boolean True if CLI created by RUN
- BPTR cli_CurrentOutput ; Current CLI output
- LONG cli_DefaultStack ; Stack size to be obtained in long words
- BPTR cli_StandardOutput ; Default (terminal) CLI output
- BPTR cli_Module ; SegList of currently loaded command
- LABEL cli_SIZEOF ; CommandLineInterface
-
-
- ;
- ; this structure needs some work. It should really be a union, because
- ; it can take on different valued depending on whether it is a device,
- ; an assigned directory, or a volume.
- ; For now, it reflects a volume.
- ;
- STRUCTURE DevList,0
- BPTR dl_Next ; bptr to next device list
- LONG dl_Type ; see DLT below
- APTR dl_Task ; ptr to handler task
- BPTR dl_Lock ; not for volumes
- STRUCT dl_VolumeDate,ds_SIZEOF ; creation date
- BPTR dl_LockList ; outstanding locks
- LONG dl_DiskType ; 'DOS', etc
- LONG dl_unused
- BSTR dl_Name ; bptr to bcpl name
- LABEL DevList_SIZEOF
-
- ; definitions for dl_Type
- DLT_DEVICE EQU 0
- DLT_DIRECTORY EQU 1
- DLT_VOLUME EQU 2
-
-
- ; a lock structure, as returned by Lock() or DupLock()
- STRUCTURE FileLock,0
- BPTR fl_Link ; bcpl pointer to next lock
- LONG fl_Key ; disk block number
- LONG fl_Access ; exclusive or shared
- APTR fl_Task ; handler task's port
- BPTR fl_Volume ; bptr to a DeviceList
- LABEL fl_SIZEOF
-
- ENDIF
- END
-