home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL2.DMS / in.adf / INCLUDE / dos / dosextens.h < prev    next >
Encoding:
Text File  |  1994-07-25  |  8.9 KB  |  411 lines

  1. {$if not def DOS_DOSEXTENS_H} CONST DOS_DOSEXTENS_H=0;
  2.  
  3. { *****************************************************************
  4.   ** KickPascal-Include-Datei "dos/dosextens.h" zu Kickstart 3.0 **
  5.   ***************************************************************** }
  6.  
  7. TYPE p_Process = ^Process;
  8. TYPE p_FileHandle = ^_FileHandle;
  9. TYPE p_DosPacket = ^DosPacket;
  10. TYPE p_StandardPacket = ^StandardPacket;
  11. TYPE p_ErrorString = ^ErrorString;
  12. TYPE p_RootNode = ^RootNode;
  13. TYPE p_DosLibrary = ^DosLibrary;
  14. TYPE p_CliProcList = ^CliProcList;
  15. TYPE p_Segment = ^Segment;
  16. TYPE p_DosInfo = ^DosInfo;
  17. TYPE p_CommandLineInterface = ^CommandLineInterface;
  18. TYPE P_DeviceList = ^DeviceList;
  19. TYPE p_DevInfo = ^DevInfo;
  20. TYPE p_AssignList = ^AssignList;
  21. TYPE p_DosList = ^DosList;
  22. TYPE p_DevProc = ^DevProc;
  23. TYPE p_FileLock = ^FileLock;
  24.  
  25. {$if not def EXEC_TASKS_H;incl "exec/tasks.h";endif}
  26. {$if not def EXEC_PORTS_H;incl "exec/ports.h";endif}
  27. {$if not def EXEC_LIBRARIES_H;incl "exec/libraries.h";endif}
  28. {$if not def EXEC_SEMAPHORES_H;incl "exec/semaphores.h";endif}
  29. {$if not def DEVICES_TIMER_H;incl "devices/timer.h";endif}
  30. {$if not def DOS_DOS_H;incl "dos/dos.h";endif}
  31.  
  32. TYPE Process = RECORD
  33.  pr_Task           : Task;
  34.  pr_MsgPort        : MsgPort;
  35.  pr_Pad            : Integer;
  36.  pr_SegList        : BPTR;
  37.  pr_StackSize      : Long;
  38.  pr_GlobVec        : Ptr;
  39.  pr_TaskNum        : LongInt;
  40.  pr_StackBase      : BPTR;
  41.  pr_Result2        : LongInt;
  42.  pr_CurrentDir     : BPTR;
  43.  pr_CIS            : BPTR;
  44.  pr_COS            : BPTR;
  45.  pr_ConsoleTask    : Ptr;
  46.  pr_FileSystemTask : Ptr;
  47.  pr_CLI            : BPTR;
  48.  pr_ReturnAddr     : Ptr;
  49.  pr_PktWait        : Ptr;
  50.  pr_WindowPtr      : Ptr;
  51.  { -- ab Kickstart 2.0 -- }
  52.  pr_HomeDir        : BPTR;
  53.  pr_Flags          : LongInt;
  54.  pr_ExitCode       : Ptr;
  55.  pr_ExitData       : LongInt;
  56.  pr_Arguments      : Str;
  57.  pr_LocalVars      : MinList;
  58.  pr_ShellPrivate   : Long;
  59.  pr_CES            : BPTR;
  60. END;
  61.  
  62. CONST
  63.  PRB_FREESEGLIST = 0;
  64.  PRF_FREESEGLIST = 1;
  65.  PRB_FREECURRDIR = 1;
  66.  PRF_FREECURRDIR = 2;
  67.  PRB_FREECLI     = 2;
  68.  PRF_FREECLI     = 4;
  69.  PRB_CLOSEINPUT  = 3;
  70.  PRF_CLOSEINPUT  = 8;
  71.  PRB_CLOSEOUTPUT = 4;
  72.  PRF_CLOSEOUTPUT = 16;
  73.  PRB_FREEARGS    = 5;
  74.  PRF_FREEARGS    = 32;
  75.  
  76. TYPE _FileHandle = RECORD
  77.  fh_Link  : p_Message;
  78.  fh_Port  : p_MsgPort;
  79.  fh_Type  : p_MsgPort;
  80.  fh_Buf   : LongInt;
  81.  fh_Pos   : LongInt;
  82.  fh_End   : LongInt;
  83.  fh_Func1 : LongInt; { auch fh_Func1 }
  84.  fh_Func2 : LongInt;
  85.  fh_Func3 : LongInt;
  86.  fh_Arg1  : LongInt; { auch fh_Args }
  87.  fh_Arg2  : LongInt;
  88. END;
  89.  
  90. TYPE DosPacket = RECORD
  91.  dp_Link : p_Message;
  92.  dp_Port : p_MsgPort;
  93.  dp_Type : LongInt; { auch dp_Action }
  94.  dp_Res1 : LongInt; { auch dp_Status }
  95.  dp_Res2 : LongInt; { auch dp_Status2 }
  96.  dp_Arg1 : LongInt; { auch dp_BufAddr }
  97.  dp_Arg2 : LongInt;
  98.  dp_Arg3 : LongInt;
  99.  dp_Arg4 : LongInt;
  100.  dp_Arg5 : LongInt;
  101.  dp_Arg6 : LongInt;
  102.  dp_Arg7 : LongInt;
  103. END;
  104.  
  105. TYPE StandardPacket = RECORD
  106.  sp_Msg : Message;
  107.  sp_Pkt : DosPacket;
  108. END;
  109.  
  110. CONST
  111.  ACTION_NIL            = 0;
  112.  ACTION_STARTUP        = 0;
  113.  ACTION_GET_BLOCK      = 2; { veraltet }
  114.  ACTION_SET_MAP        = 4;
  115.  ACTION_DIE            = 5;
  116.  ACTION_EVENT          = 6;
  117.  ACTION_CURRENT_VOLUME = 7;
  118.  ACTION_LOCATE_OBJECT  = 8;
  119.  ACTION_RENAME_DISK    = 9;
  120.  ACTION_WRITE          = "W";
  121.  ACTION_READ           = "R";
  122.  ACTION_FREE_LOCK      = 15;
  123.  ACTION_DELETE_OBJECT  = 16;
  124.  ACTION_RENAME_OBJECT  = 17;
  125.  ACTION_MORE_CACHE     = 18;
  126.  ACTION_COPY_DIR       = 19;
  127.  ACTION_WAIT_CHAR      = 20;
  128.  ACTION_SET_PROTECT    = 21;
  129.  ACTION_CREATE_DIR     = 22;
  130.  ACTION_EXAMINE_OBJECT = 23;
  131.  ACTION_EXAMINE_NEXT   = 24;
  132.  ACTION_DISK_INFO      = 25;
  133.  ACTION_INFO           = 26;
  134.  ACTION_FLUSH          = 27;
  135.  ACTION_SET_COMMENT    = 28;
  136.  ACTION_PARENT         = 29;
  137.  ACTION_TIMER          = 30;
  138.  ACTION_INHIBIT        = 31;
  139.  ACTION_DISK_TYPE      = 32;
  140.  ACTION_DISK_CHANGE    = 33;
  141.  ACTION_SET_DATE       = 34;
  142.  
  143.  ACTION_SCREEN_MODE    = 994;
  144.  
  145.  ACTION_READ_RETURN    = 1001;
  146.  ACTION_WRITE_RETURN   = 1002;
  147.  ACTION_SEEK           = 1008;
  148.  ACTION_FINDUPDATE     = 1004;
  149.  ACTION_FINDINPUT      = 1005;
  150.  ACTION_FINDOUTPUT     = 1006;
  151.  ACTION_END            = 1007;
  152.  ACTION_SET_FILE_SIZE  = 1022;
  153.  ACTION_WRITE_PROTECT  = 1023;
  154.  
  155.  ACTION_SAME_LOCK      = 40;
  156.  ACTION_CHANGE_SIGNAL  = 995;
  157.  ACTION_FORMAT         = 1020;
  158.  ACTION_MAKE_LINK      = 1021;
  159.  
  160.  ACTION_READ_LINK      = 1024;
  161.  ACTION_FH_FROM_LOCK   = 1026;
  162.  ACTION_IS_FILESYSTEM  = 1027;
  163.  ACTION_CHANGE_MODE    = 1028;
  164.  
  165.  ACTION_COPY_DIR_FH    = 1030;
  166.  ACTION_PARENT_FH      = 1031;
  167.  ACTION_EXAMINE_ALL    = 1033;
  168.  ACTION_EXAMINE_FH     = 1034;
  169.  
  170.  ACTION_LOCK_RECORD    = 2008;
  171.  ACTION_FREE_RECORD    = 2009;
  172.  
  173.  ACTION_ADD_NOTIFY     = 4097;
  174.  ACTION_REMOVE_NOTIFY  = 4098;
  175.  
  176. { -- neu in V39 -- }
  177.  ACTION_EXAMINE_ALL_END= 1035;
  178.  ACTION_SET_OWNER      = 1036;
  179.  
  180.  ACTION_SERIALIZE_DISK = 4200;
  181.  
  182.  
  183. TYPE ErrorString = RECORD
  184.  estr_Nums : ^LongInt;
  185.  estr_Strings : Str;
  186. END;
  187.  
  188.  
  189. TYPE RootNode = RECORD
  190.  rn_TaskArray          : BPTR;
  191.  rn_ConsoleSegment     : BPTR;
  192.  rn_Time               : DateStamp;
  193.  rn_RestartSeg         : LongInt;
  194.  rn_Info               : BPTR;
  195.  rn_FileHandlerSegment : BPTR;
  196.  rn_CliList            : MinList;
  197.  rn_BootProc           : p_MsgPort;
  198.  rn_ShellSegment       : BPTR;
  199.  rn_Flags              : LongInt;
  200. END;
  201.  
  202. TYPE DosLibrary = RECORD
  203.  dl_lib         : _Library;
  204.  dl_Root        : p_RootNode;
  205.  dl_GV          : Ptr;
  206.  dl_A2          : LongInt;
  207.  dl_A5          : LongInt;
  208.  dl_A6          : LongInt;
  209.  dl_Errors      : p_ErrorString;
  210.  dl_TimeReq     : p_timerequest;
  211.  dl_UtilityBase : p_Library;
  212. END;
  213.  
  214.  
  215. CONST
  216.  RNB_WILDSTAR = 24;
  217.  RNF_WILDSTAR = $10000000;
  218.  RNB_PRIVATE1 = 1;
  219.  RNF_PRIVATE1 = 2;
  220.  
  221. TYPE CliProcList = RECORD
  222.  cpl_Node  : MinNode;
  223.  cpl_First : LongInt;
  224.  cpl_Array : Ptr;
  225. END;
  226.  
  227. TYPE DosInfo = RECORD
  228.  di_McName    : BPTR; { auch di_ResList }
  229.  di_DevInfo   : BPTR;
  230.  di_Devices   : BPTR;
  231.  di_Handlers  : BPTR;
  232.  di_NetHand   : Ptr;
  233.  di_DevLock   : SignalSemaphore;
  234.  di_EntryLock : SignalSemaphore;
  235.  di_DeleteLock: SignalSemaphore;
  236. END;
  237.  
  238. TYPE Segment = RECORD
  239.  seg_Next : BPTR;
  240.  seg_UC   : Long;
  241.  seg_Seg  : BPTR;
  242.  seg_Name : ARRAY[0..3] OF char;
  243. END;
  244.  
  245. CONST
  246.  CMD_SYSTEM   = -1;
  247.  CMD_INTERNAL = -2;
  248.  CMD_DISABLED = -999;
  249.  
  250. TYPE CommandLineInterface = RECORD
  251.  cli_Result2        : LongInt;
  252.  cli_SetName        : BSTR;
  253.  cli_CommandDir     : BPTR;
  254.  cli_ReturnCode     : LongInt;
  255.  cli_CommandName    : BSTR;
  256.  cli_FailLevel      : LongInt;
  257.  cli_Prompt         : BSTR;
  258.  cli_StandardInput  : BPTR;
  259.  cli_CurrentInput   : BPTR;
  260.  cli_CommandFile    : BSTR;
  261.  cli_Interactive    : LongInt;
  262.  cli_Background     : LongInt;
  263.  cli_CurrentOutput  : BPTR;
  264.  cli_DefaultStack   : LongInt;
  265.  cli_StandardOutput : BPTR;
  266.  cli_Module         : BPTR;
  267. END;
  268.  
  269. TYPE DeviceList = RECORD
  270.  dl_Next       : BPTR;
  271.  dl_Type       : LongInt;
  272.  dl_Task       : p_MsgPort;
  273.  dl_Lock       : BPTR;
  274.  dl_VolumeDate : DateStamp;
  275.  dl_LockList   : BPTR;
  276.  dl_DiskType   : LongInt;
  277.  dl_unused     : LongInt;
  278.  dl_Name       : BSTR;
  279. END;
  280.  
  281. TYPE DevInfo = RECORD
  282.  dvi_Next      : BPTR;
  283.  dvi_Type      : LongInt;
  284.  dvi_Task      : Ptr;
  285.  dvi_Lock      : BPTR;
  286.  dvi_Handler   : BSTR;
  287.  dvi_StackSize : LongInt;
  288.  dvi_Priority  : LongInt;
  289.  dvi_Startup   : LongInt;
  290.  dvi_SegList   : BPTR;
  291.  dvi_GlobVec   : BPTR;
  292.  dvi_Name      : BSTR;
  293. END;
  294.  
  295. TYPE AssignList = RECORD
  296.  al_Next : p_AssignList;
  297.  al_Lock : BPTR;
  298. END;
  299.  
  300.  
  301. TYPE DosList = RECORD
  302.  dol_Next : BPTR;
  303.  dol_Type : LongInt;
  304.  dol_Task : p_MsgPort;
  305.  dol_Lock : BPTR;
  306.  dol_misc : RECORD
  307.  CASE Integer OF
  308.   0 : (
  309.        dol_handler   : RECORD
  310.        dol_Handler   : BSTR;
  311.        dol_StackSize : LongInt;
  312.        dol_Priority  : LongInt;
  313.        dol_Startup   : Long;
  314.        dol_SegList   : BPTR;
  315.        dol_GlobVec   : BPTR;
  316.        END
  317.       );
  318.   1 : (
  319.        dol_volume     : RECORD
  320.        dol_VolumeDate : DateStamp;
  321.        dol_LockList   : BPTR;
  322.        dol_DiskType   : LongInt;
  323.        END
  324.       );
  325.   2 : (
  326.        dol_assign     : RECORD
  327.        dol_AssignName : Str;
  328.        dol_List       : p_AssignList;
  329.        END
  330.       );
  331.   END;
  332.  
  333.  dol_Name : BSTR;
  334. END;
  335.  
  336.  
  337. CONST
  338.  DLT_DEVICE     = 0;
  339.  DLT_DIRECTORY  = 1;
  340.  DLT_VOLUME     = 2;
  341.  DLT_LATE       = 3;
  342.  DLT_NONBINDING = 4;
  343.  DLT_PRIVATE    = -1;
  344.  
  345. TYPE DevProc = RECORD
  346.  dvp_Port    : p_MsgPort;
  347.  dvp_Lock    : BPTR;
  348.  dvp_Flags   : Long;
  349.  dvp_DevNode : p_DosList;
  350. END;
  351.  
  352. CONST
  353.  DVPB_UNLOCK = 0;
  354.  DVPF_UNLOCK = $1;
  355.  DVPB_ASSIGN = 1;
  356.  DVPF_ASSIGN = $2;
  357.  
  358. CONST
  359.  LDB_DEVICES = 2;
  360.  LDF_DEVICES = $4;
  361.  LDB_VOLUMES = 3;
  362.  LDF_VOLUMES = $8;
  363.  LDB_ASSIGNS = 4;
  364.  LDF_ASSIGNS = $10;
  365.  LDB_ENTRY   = 5;
  366.  LDF_ENTRY   = $20;
  367.  LDB_DELETE  = 6;
  368.  LDF_DELETE  = $40;
  369.  
  370. CONST
  371.  LDB_READ  = 0;
  372.  LDF_READ  = $1;
  373.  LDB_WRITE = 1;
  374.  LDF_WRITE = $2;
  375.  
  376. CONST LDF_ALL = (LDF_DEVICES or LDF_VOLUMES or LDF_ASSIGNS);
  377.  
  378. TYPE FileLock = RECORD
  379.  fl_Link   : BPTR;
  380.  fl_Key    : LongInt;
  381.  fl_Access : LongInt;
  382.  fl_Task   : p_MsgPort;
  383.  fl_Volume : BPTR;
  384. END;
  385.  
  386. CONST
  387.  REPORT_STREAM = 0;
  388.  REPORT_TASK   = 1;
  389.  REPORT_LOCK   = 2;
  390.  REPORT_VOLUME = 3;
  391.  REPORT_INSERT = 4;
  392.  
  393. CONST
  394.  ABORT_DISK_ERROR = 296;
  395.  ABORT_BUSY       = 288;
  396.  
  397. CONST
  398.  RUN_EXECUTE       = -1;
  399.  RUN_SYSTEM        = -2;
  400.  RUN_SYSTEM_ASYNCH = -3;
  401.  
  402. CONST
  403.  ST_ROOT     =  1;
  404.  ST_USERDIR  =  2;
  405.  ST_SOFTLINK =  3;
  406.  ST_LINKDIR  =  4;
  407.  ST_FILE     = -3;
  408.  ST_LINKFILE = -4;
  409.  
  410. {$endif}
  411.