home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / cbm / nduk-v37.lha / V37 / include / dos / dosextens.i < prev    next >
Text File  |  1991-11-27  |  15KB  |  462 lines

  1.     IFND    DOS_DOSEXTENS_I
  2. DOS_DOSEXTENS_I    SET    1
  3. **
  4. **    $Filename: dos/dosextens.i $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 36.37 $
  7. **    $Date: 91/11/08 $
  8. **
  9. **    DOS structures not needed for the casual AmigaDOS user
  10. **
  11. **    (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. **
  14.  
  15.      IFND  EXEC_TYPES_I
  16.      INCLUDE "exec/types.i"
  17.      ENDC
  18.      IFND  EXEC_TASKS_I
  19.      INCLUDE "exec/tasks.i"
  20.      ENDC
  21.      IFND  EXEC_PORTS_I
  22.      INCLUDE "exec/ports.i"
  23.      ENDC
  24.      IFND  EXEC_LIBRARIES_I
  25.      INCLUDE "exec/libraries.i"
  26.      ENDC
  27.      IFND  EXEC_SEMAPHORES_I
  28.      INCLUDE "exec/semaphores.i"
  29.      ENDC
  30.      IFND  DEVICES_TIMER_I
  31.      INCLUDE "devices/timer.i"
  32.      ENDC
  33.  
  34.      IFND  DOS_DOS_I
  35.      INCLUDE "dos/dos.i"
  36.      ENDC
  37.  
  38.  
  39. * All DOS processes have this STRUCTure
  40. * Create and DeviceProc returns pointer to the MsgPort in this STRUCTure
  41. * Process_addr = DeviceProc(..) - TC_SIZE
  42.  
  43.  STRUCTURE Process,0
  44.     STRUCT  pr_Task,TC_SIZE
  45.     STRUCT  pr_MsgPort,MP_SIZE    * This is BPTR address from DOS functions
  46.     WORD    pr_Pad        * Remaining variables on 4 byte boundaries
  47.     BPTR    pr_SegList        * Array of seg lists used by this process
  48.     LONG    pr_StackSize    * Size of process stack in bytes
  49.     APTR    pr_GlobVec        * Global vector for this process (BCPL)
  50.     LONG    pr_TaskNum        * CLI task number of zero if not a CLI
  51.     BPTR    pr_StackBase    * Ptr to high memory end of process stack
  52.     LONG    pr_Result2        * Value of secondary result from last call
  53.     BPTR    pr_CurrentDir    * Lock associated with current directory
  54.     BPTR    pr_CIS        * Current CLI Input Stream
  55.     BPTR    pr_COS        * Current CLI Output Stream
  56.     APTR    pr_ConsoleTask    * Console handler process for current window
  57.     APTR    pr_FileSystemTask    * File handler process for current drive
  58.     BPTR    pr_CLI        * pointer to CommandLineInterface
  59.     APTR    pr_ReturnAddr    * pointer to previous stack frame
  60.     APTR    pr_PktWait        * Function to be called when awaiting msg
  61.     APTR    pr_WindowPtr    * Window pointer for errors
  62.  
  63. * following definitions are new with 2.0
  64.     BPTR    pr_HomeDir        * Home directory of executing program
  65.     LONG    pr_Flags        * flags telling dos about process
  66.     APTR    pr_ExitCode        * code to call on exit of program or NULL
  67.     LONG    pr_ExitData        * Passed as an argument to pr_ExitCode
  68.     APTR    pr_Arguments    * Arguments passed to the process at start
  69.     STRUCT  pr_LocalVars,MLH_SIZE * Local environment variables
  70.     APTR    pr_ShellPrivate    * for the use of the current shell
  71.     BPTR    pr_CES        * Error stream - if NULL, use pr_COS
  72.    LABEL   pr_SIZEOF        * Process
  73.  
  74. *
  75. * Flags for pr_Flags
  76. *
  77.     BITDEF PR,FREESEGLIST,0
  78.     BITDEF PR,FREECURRDIR,1
  79.     BITDEF PR,FREECLI,2
  80.     BITDEF PR,CLOSEINPUT,3
  81.     BITDEF PR,CLOSEOUTPUT,4
  82.     BITDEF PR,FREEARGS,5
  83.  
  84. * The long word address (BPTR) of this STRUCTure is returned by
  85. * Open() and other routines that return a file.     You need only worry
  86. * about this STRUCT to do async io's via PutMsg() instead of
  87. * standard file system calls
  88.  
  89.  STRUCTURE FileHandle,0
  90.    APTR      fh_Link        * pointer to EXEC message
  91.    APTR      fh_Interactive    * Boolean; TRUE if interactive handle
  92.    APTR      fh_Type        * Port to do PutMsg() to
  93.    LONG      fh_Buf
  94.    LONG      fh_Pos
  95.    LONG      fh_End
  96.    LONG      fh_Funcs
  97. fh_Func1 EQU fh_Funcs
  98.    LONG      fh_Func2
  99.    LONG      fh_Func3
  100.    LONG      fh_Args
  101. fh_Arg1 EQU fh_Args
  102.    LONG      fh_Arg2
  103.    LABEL  fh_SIZEOF * FileHandle
  104.  
  105. * This is the extension to EXEC Messages used by DOS
  106.  STRUCTURE DosPacket,0
  107.    APTR      dp_Link      * pointer to EXEC message
  108.    APTR      dp_Port      * pointer to Reply port for the packet
  109. *              * Must be filled in each send.
  110.    LONG      dp_Type      * See ACTION_... below and
  111. *              * 'R' means Read, 'W' means Write to the file system
  112.    LONG      dp_Res1      * For file system calls this is the result
  113. *              * that would have been returned by the
  114. *              * function, e.g. Write ('W') returns actual
  115. *              * length written
  116.    LONG      dp_Res2      * For file system calls this is what would
  117. *              * have been returned by IoErr()
  118.    LONG      dp_Arg1
  119. *  Device packets common equivalents
  120. dp_Action  EQU    dp_Type
  121. dp_Status  EQU    dp_Res1
  122. dp_Status2 EQU    dp_Res2
  123. dp_BufAddr EQU    dp_Arg1
  124.    LONG      dp_Arg2
  125.    LONG      dp_Arg3
  126.    LONG      dp_Arg4
  127.    LONG      dp_Arg5
  128.    LONG      dp_Arg6
  129.    LONG      dp_Arg7
  130.    LABEL  dp_SIZEOF * DosPacket
  131.  
  132. * A Packet does not require the Message to before it in memory, but
  133. * for convenience it is useful to associate the two.
  134. * Also see the function init_std_pkt for initializing this STRUCTure
  135.  
  136.  STRUCTURE StandardPacket,0
  137.    STRUCT sp_Msg,MN_SIZE
  138.    STRUCT sp_Pkt,dp_SIZEOF
  139.    LABEL  sp_SIZEOF * StandardPacket
  140.  
  141.  
  142. * Packet types
  143. ACTION_NIL        EQU    0
  144. ACTION_STARTUP        EQU    0
  145. ACTION_GET_BLOCK    EQU    2    ;OBSOLETE
  146. ACTION_SET_MAP        EQU    4
  147. ACTION_DIE        EQU    5
  148. ACTION_EVENT        EQU    6
  149. ACTION_CURRENT_VOLUME    EQU    7
  150. ACTION_LOCATE_OBJECT    EQU    8
  151. ACTION_RENAME_DISK    EQU    9
  152. ACTION_WRITE        EQU    'W'
  153. ACTION_READ        EQU    'R'
  154. ACTION_FREE_LOCK    EQU    15
  155. ACTION_DELETE_OBJECT    EQU    16
  156. ACTION_RENAME_OBJECT    EQU    17
  157. ACTION_MORE_CACHE    EQU    18
  158. ACTION_COPY_DIR        EQU    19
  159. ACTION_WAIT_CHAR    EQU    20
  160. ACTION_SET_PROTECT    EQU    21
  161. ACTION_CREATE_DIR    EQU    22
  162. ACTION_EXAMINE_OBJECT    EQU    23
  163. ACTION_EXAMINE_NEXT    EQU    24
  164. ACTION_DISK_INFO    EQU    25
  165. ACTION_INFO        EQU    26
  166. ACTION_FLUSH        EQU    27
  167. ACTION_SET_COMMENT    EQU    28
  168. ACTION_PARENT        EQU    29
  169. ACTION_TIMER        EQU    30
  170. ACTION_INHIBIT        EQU    31
  171. ACTION_DISK_TYPE    EQU    32
  172. ACTION_DISK_CHANGE    EQU    33
  173. ACTION_SET_DATE        EQU    34
  174.  
  175. ACTION_SCREEN_MODE    EQU    994
  176.  
  177. ACTION_READ_RETURN    EQU    1001
  178. ACTION_WRITE_RETURN    EQU    1002
  179. ACTION_SEEK        EQU    1008
  180. ACTION_FINDUPDATE    EQU    1004
  181. ACTION_FINDINPUT    EQU    1005
  182. ACTION_FINDOUTPUT    EQU    1006
  183. ACTION_END        EQU    1007
  184. ACTION_SET_FILE_SIZE    EQU    1022    ; fast file system only
  185. ACTION_WRITE_PROTECT    EQU    1023    ; fast file system only
  186.  
  187. * new 2.0 packets
  188. ACTION_SAME_LOCK    EQU    40
  189. ACTION_CHANGE_SIGNAL    EQU    995
  190. ACTION_FORMAT        EQU    1020
  191. ACTION_MAKE_LINK    EQU    1021
  192. *
  193. *
  194. ACTION_READ_LINK    EQU    1024
  195. ACTION_FH_FROM_LOCK    EQU    1026
  196. ACTION_IS_FILESYSTEM    EQU    1027
  197. ACTION_CHANGE_MODE    EQU    1028
  198. *
  199. ACTION_COPY_DIR_FH    EQU    1030
  200. ACTION_PARENT_FH    EQU    1031
  201. ACTION_EXAMINE_ALL    EQU    1033
  202. ACTION_EXAMINE_FH    EQU    1034
  203.  
  204. ACTION_LOCK_RECORD    EQU    2008
  205. ACTION_FREE_RECORD    EQU    2009
  206.  
  207. ACTION_ADD_NOTIFY    EQU    4097
  208. ACTION_REMOVE_NOTIFY    EQU    4098
  209.  
  210. * Tell a file system to serialize the current volume. This is typically
  211. * done by changing the creation date of the disk. This packet does not take
  212. * any arguments.  NOTE: be prepared to handle failure of this packet for
  213. * V37 ROM filesystems.
  214.  
  215. ACTION_SERIALIZE_DISK    EQU    4200
  216.    
  217. * A structure for holding error messages - stored as array with error == 0
  218. * for the last entry.
  219.  
  220.  STRUCTURE ErrorString,0
  221.     APTR   estr_Nums
  222.     APTR   estr_Strings
  223.         LABEL  ErrorString_SIZEOF
  224.  
  225. * DOS library node structure.
  226. * This is the data at positive offsets from the library node.
  227. * Negative offsets from the node is the jump table to DOS functions
  228. * node = (STRUCT DosLibrary *) OpenLibrary( "dos.library" .. )
  229.  
  230.  STRUCTURE DosLibrary,0
  231.     STRUCT  dl_lib,LIB_SIZE
  232.     APTR    dl_Root         * Pointer to RootNode, described below
  233.     APTR    dl_GV         * Pointer to BCPL global vector
  234.     LONG    dl_A2         * BCPL standard register values
  235.     LONG    dl_A5
  236.     LONG    dl_A6
  237.     APTR    dl_Errors         * PRIVATE pointer to array of error msgs
  238.     APTR    dl_TimeReq         * PRIVATE pointer to timer request 
  239.     APTR    dl_UtilityBase   * PRIVATE pointer to utility library base
  240.     APTR    dl_IntuitionBase * PRIVATE pointer to intuition library base
  241.     LABEL   dl_SIZEOF *     DosLibrary
  242.  
  243. *
  244.  
  245.  STRUCTURE RootNode,0
  246.     BPTR    rn_TaskArray       * [0] is max number of CLI's
  247. *                   * [1] is APTR to process id of CLI 1
  248. *                   * [n] is APTR to process id of CLI n
  249.     BPTR    rn_ConsoleSegment  * SegList for the CLI
  250.     STRUCT  rn_Time,ds_SIZEOF  * Current time
  251.     LONG    rn_RestartSeg      * SegList for the disk validator process
  252.     BPTR    rn_Info           * Pointer to the Info structure
  253.     BPTR    rn_FileHandlerSegment * code for file handler
  254.     STRUCT  rn_CliList,MLH_SIZE * new list of all CLI processes
  255. *                   * the first cpl_Array is also rn_TaskArray
  256.     APTR    rn_BootProc           * private! ptr to msgport of boot fs
  257.     BPTR    rn_ShellSegment    * seglist for Shell (for NewShell)
  258.     LONG    rn_Flags           * dos flags
  259.     LABEL   rn_SIZEOF