summaryrefslogtreecommitdiff
path: root/rtl/aros/doslibd.inc
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/aros/doslibd.inc')
-rw-r--r--rtl/aros/doslibd.inc1371
1 files changed, 1371 insertions, 0 deletions
diff --git a/rtl/aros/doslibd.inc b/rtl/aros/doslibd.inc
new file mode 100644
index 0000000000..8e01a3c23b
--- /dev/null
+++ b/rtl/aros/doslibd.inc
@@ -0,0 +1,1371 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ dos definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ AROS conversion
+ Copyright (c) 2011 Marcus Sackrow
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+
+{ * dos global definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ DOSNAME = 'dos.library';
+
+const // Checked OK 04.08.2011 ALB
+ DOSTRUE = -1;
+ DOSFALSE = 0;
+
+const // Checked OK 04.08.2011 ALB
+ MODE_OLDFILE = 1005;
+ MODE_NEWFILE = 1006;
+ MODE_READWRITE = 1004;
+
+const // Checked OK 04.08.2011 ALB
+ OFFSET_BEGINNING = -1;
+ OFFSET_CURRENT = 0;
+ OFFSET_END = 1;
+
+const // Checked OK 04.08.2011 ALB
+ BITSPERBYTE = 8;
+ BYTESPERLONG = 4;
+ BITSPERLONG = 32;
+ _MAXINT = $7FFFFFFF;
+ _MININT = $80000000;
+
+const // Checked OK 04.08.2011 ALB
+ SHARED_LOCK = -2;
+ ACCESS_READ = SHARED_LOCK;
+ EXCLUSIVE_LOCK = -1;
+ ACCESS_WRITE = EXCLUSIVE_LOCK;
+
+type // Checked OK 04.08.2011 ALB
+ PDateStamp = ^TDateStamp;
+ TDateStamp = record
+ ds_Days : LongInt;
+ ds_Minute: LongInt;
+ ds_Tick : LongInt;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ TICKS_PER_SECOND = 50;
+
+const // Checked OK 04.08.2011 ALB
+ MAXFILENAMELENGTH = 108;
+ MAXCOMMENTLENGTH = 80;
+
+type // Checked OK 04.08.2011 ALB
+ PFileInfoBlock = ^TFileInfoBlock;
+ TFileInfoBlock = record
+ fib_DiskKey : PtrUInt;
+ fib_DirEntryType: LongInt;
+ fib_FileName : array[0..MAXFILENAMELENGTH - 1] of char;
+ fib_Protection : LongInt;
+ fib_EntryType : LongInt;
+ fib_Size : LongInt;
+ fib_NumBlocks : LongInt;
+ fib_Date : TDateStamp;
+ fib_Comment : Array[0..MAXCOMMENTLENGTH - 1] Of char;
+
+ fib_OwnerUID : Word;
+ fib_OwnerGID : Word;
+
+ fib_Reserved : array[0..31] of char;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ FIBB_OTR_READ = 15;
+ FIBB_OTR_WRITE = 14;
+ FIBB_OTR_EXECUTE = 13;
+ FIBB_OTR_DELETE = 12;
+
+ FIBB_GRP_READ = 11;
+ FIBB_GRP_WRITE = 10;
+ FIBB_GRP_EXECUTE = 9;
+ FIBB_GRP_DELETE = 8;
+
+ FIBB_SCRIPT = 6; // File is a script (DOS or ARexx).
+ FIBB_PURE = 5; // Make program resident on execution.
+ FIBB_ARCHIVE = 4; // File was archived (not used by OS).
+ FIBB_READ = 3; // File is readable.
+ FIBB_WRITE = 2; // File is writable.
+ FIBB_EXECUTE = 1; // File is executable (no scripts!).
+ FIBB_DELETE = 0; // File is deleteable.
+
+const // Checked OK 04.08.2011 ALB
+ FIBF_OTR_READ = (1 shl FIBB_OTR_READ);
+ FIBF_OTR_WRITE = (1 shl FIBB_OTR_WRITE);
+ FIBF_OTR_EXECUTE = (1 shl FIBB_OTR_EXECUTE);
+ FIBF_OTR_DELETE = (1 shl FIBB_OTR_DELETE);
+
+ FIBF_GRP_READ = (1 shl FIBB_GRP_READ);
+ FIBF_GRP_WRITE = (1 shl FIBB_GRP_WRITE);
+ FIBF_GRP_EXECUTE = (1 shl FIBB_GRP_EXECUTE);
+ FIBF_GRP_DELETE = (1 shl FIBB_GRP_DELETE);
+
+ FIBF_SCRIPT = (1 shl FIBB_SCRIPT);
+ FIBF_PURE = (1 shl FIBB_PURE);
+ FIBF_ARCHIVE = (1 shl FIBB_ARCHIVE);
+ FIBF_READ = (1 shl FIBB_READ);
+ FIBF_WRITE = (1 shl FIBB_WRITE);
+ FIBF_EXECUTE = (1 shl FIBB_EXECUTE);
+ FIBF_DELETE = (1 shl FIBB_DELETE);
+
+const // Checked OK 04.08.2011 ALB
+ FAULT_MAX = 82;
+
+
+type // Checked OK 04.08.2011 ALB
+ BPTR = Pointer;
+ BSTR = Pointer;
+
+type // Checked OK 04.08.2011 ALB
+ PInfoData = ^TInfoData;
+ TInfoData = record
+ id_NumSoftErrors: LongInt; // Number of soft errors on device.
+ id_UnitNumber : LongInt; // Unit number of device.
+ id_DiskState : LongInt; // State the current volume is in (see below).
+ id_NumBlocks : LongInt; // Number of blocks on device.
+ id_NumBlocksUsed: LongInt; // Number of blocks in use.
+ id_BytesPerBlock: LongInt; // Bytes per block.
+ id_DiskType : LongInt; // Type of disk (see below).
+ id_VolumeNode : BPTR;
+ id_InUse : PtrUInt; // Set, if device is in use.
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ ID_WRITE_PROTECTED = 80;
+ ID_VALIDATING = 81;
+ ID_VALIDATED = 82;
+
+ ID_NO_DISK_PRESENT = -1;
+ ID_UNREADABLE_DISK = $42414400;
+ ID_DOS_DISK = $444F5300;
+ ID_FFS_DISK = $444F5301;
+ ID_INTER_DOS_DISK = $444F5302;
+ ID_INTER_FFS_DISK = $444F5303;
+ ID_FASTDIR_DOS_DISK = $444F5304;
+ ID_FASTDIR_FFS_DISK = $444F5305;
+ ID_LNFS_DOS_DISK = $444F5306;
+ ID_LNFS_FFS_DISK = $444F5307;
+ ID_NOT_REALLY_DOS = $4E444F53;
+ ID_KICKSTART_DISK = $4B49434B;
+ ID_MSDOS_DISK = $4d534400;
+ ID_SFS_BE_DISK = $53465330;
+ ID_SFS_LE_DISK = $73667330;
+
+const // Checked OK 04.08.2011 ALB
+ ERROR_UNKNOWN = 100;
+ ERROR_NO_FREE_STORE = 103;
+ ERROR_TASK_TABLE_FULL = 105;
+ ERROR_BAD_TEMPLATE = 114;
+ ERROR_BAD_NUMBER = 115;
+ ERROR_REQUIRED_ARG_MISSING = 116;
+ ERROR_KEY_NEEDS_ARG = 117;
+ ERROR_TOO_MANY_ARGS = 118;
+ ERROR_UNMATCHED_QUOTES = 119;
+ ERROR_LINE_TOO_LONG = 120;
+ ERROR_FILE_NOT_OBJECT = 121;
+ ERROR_INVALID_RESIDENT_LIBRARY = 122;
+ ERROR_NO_DEFAULT_DIR = 201;
+ ERROR_OBJECT_IN_USE = 202;
+ ERROR_OBJECT_EXISTS = 203;
+ ERROR_DIR_NOT_FOUND = 204;
+ ERROR_OBJECT_NOT_FOUND = 205;
+ ERROR_BAD_STREAM_NAME = 206;
+ ERROR_OBJECT_TOO_LARGE = 207;
+ ERROR_ACTION_NOT_KNOWN = 209;
+ ERROR_INVALID_COMPONENT_NAME = 210;
+ ERROR_INVALID_LOCK = 211;
+ ERROR_OBJECT_WRONG_TYPE = 212;
+ ERROR_DISK_NOT_VALIDATED = 213;
+ ERROR_DISK_WRITE_PROTECTED = 214;
+ ERROR_RENAME_ACROSS_DEVICES = 215;
+ ERROR_DIRECTORY_NOT_EMPTY = 216;
+ ERROR_TOO_MANY_LEVELS = 217;
+ ERROR_DEVICE_NOT_MOUNTED = 218;
+ ERROR_SEEK_ERROR = 219;
+ ERROR_COMMENT_TOO_BIG = 220;
+ ERROR_DISK_FULL = 221;
+ ERROR_DELETE_PROTECTED = 222;
+ ERROR_WRITE_PROTECTED = 223;
+ ERROR_READ_PROTECTED = 224;
+ ERROR_NOT_A_DOS_DISK = 225;
+ ERROR_NO_DISK = 226;
+ ERROR_NO_MORE_ENTRIES = 232;
+
+ ERROR_IS_SOFT_LINK = 233;
+ ERROR_OBJECT_LINKED = 234;
+ ERROR_BAD_HUNK = 235;
+ ERROR_NOT_IMPLEMENTED = 236;
+ ERROR_RECORD_NOT_LOCKED = 240;
+ ERROR_LOCK_COLLISION = 241;
+ ERROR_LOCK_TIMEOUT = 242;
+ ERROR_UNLOCK_ERROR = 243;
+
+const // Checked OK 04.08.2011 ALB
+ RETURN_OK = 0;
+ RETURN_WARN = 5;
+ RETURN_ERROR = 10;
+ RETURN_FAIL = 20;
+
+const // Checked OK 04.08.2011 ALB
+ SIGBREAKB_CTRL_C = 12;
+ SIGBREAKB_CTRL_D = 13;
+ SIGBREAKB_CTRL_E = 14;
+ SIGBREAKB_CTRL_F = 15;
+
+ SIGBREAKF_CTRL_C = (1 shl SIGBREAKB_CTRL_C);
+ SIGBREAKF_CTRL_D = (1 shl SIGBREAKB_CTRL_D);
+ SIGBREAKF_CTRL_E = (1 shl SIGBREAKB_CTRL_E);
+ SIGBREAKF_CTRL_F = (1 shl SIGBREAKB_CTRL_F);
+
+const // Checked OK 04.08.2011 ALB
+ LOCK_DIFFERENT = -1;
+ LOCK_SAME = 0;
+ LOCK_SAME_VOLUME = 1;
+
+const // Checked OK 04.08.2011 ALB
+ CHANGE_LOCK = 0;
+ CHANGE_FH = 1;
+
+const // Checked OK 04.08.2011 ALB
+ LINK_HARD = 0;
+ LINK_SOFT = 1;
+
+const // Checked OK 04.08.2011 ALB
+ ITEM_EQUAL = -2;
+ ITEM_ERROR = -1;
+ ITEM_NOTHING = 0;
+ ITEM_UNQUOTED = 1;
+ ITEM_QUOTED = 2;
+
+const // Checked OK 04.08.2011 ALB
+ DOS_FILEHANDLE = 0;
+ DOS_EXALLCONTROL = 1;
+ DOS_FIB = 2;
+ DOS_STDPKT = 3;
+ DOS_CLI = 4;
+ DOS_RDARGS = 5;
+
+
+
+{ * dos date/time definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ { * Required to avoid conflict with default types * }
+ _PDateTime = ^_TDateTime;
+ _TDateTime = record
+ dat_Stamp : TDateStamp;
+ dat_Format : Byte;
+ dat_Flags : Byte;
+ dat_StrDay : PByte;
+ dat_StrDate: PByte;
+ dat_StrTime: PByte;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ LEN_DATSTRING = 16;
+
+const // Checked OK 04.08.2011 ALB
+ DTB_SUBST = 0;
+ DTF_SUBST = (1 Shl DTB_SUBST);
+ DTB_FUTURE = 1;
+ DTF_FUTURE = (1 Shl DTB_FUTURE);
+
+const // Checked OK 04.08.2011 ALB
+ FORMAT_DOS = 0;
+ FORMAT_INT = 1;
+ FORMAT_USA = 2;
+ FORMAT_CDN = 3;
+ FORMAT_MAX = FORMAT_CDN;
+ FORMAT_DEF = 4;
+
+
+
+{ * dos extended structures definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PProcess = ^TProcess;
+ TProcess = record
+ pr_Task : TTask; // Embedded task structure
+ pr_MsgPort : TMsgPort; // Processes standard message-port. Used for various puposes.
+ pr_Pad : Word; // Private
+ pr_SegList : BPTR; // SegList array, used by this process.
+ pr_StackSize : LongInt; // StackSize of the current process.
+ pr_GlobVec : Pointer;
+ pr_TaskNum : LongInt; // CLI process number. This may be 0, in which case the process is not connected to a CLI.
+ pr_StackBase : BPTR; // Pointer to upper end of stack.
+ pr_Result2 : PtrInt; // Secondary return-value
+ pr_CurrentDir : BPTR; // Lock of the current directory
+ pr_CIS : BPTR; { BPTR }
+ pr_COS : BPTR; { BPTR }
+ pr_ConsoleTask : Pointer;
+ pr_FileSystemTask: Pointer;
+ pr_CLI : BPTR; { BPTR }
+ pr_ReturnAddr : Pointer;
+ pr_PktWait : Pointer;
+ pr_WindowPtr : Pointer;
+ pr_HomeDir : BPTR; { BPTR }
+ pr_Flags : LongInt;
+ pr_ExitCode : Pointer; { Procedure }
+ pr_ExitData : PtrUInt;
+ pr_Arguments : PChar;
+ pr_LocalVars : TMinList;
+ pr_ShellPrivate : DWord;
+ pr_CES : BPTR; { BPTR }
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ PRB_FREESEGLIST = 0;
+ PRF_FREESEGLIST = (1 shl PRB_FREESEGLIST);
+
+ PRB_FREECURRDIR = 1;
+ PRF_FREECURRDIR = (1 shl PRB_FREECURRDIR);
+
+ PRB_FREECLI = 2;
+ PRF_FREECLI = (1 shl PRB_FREECLI);
+
+ PRB_CLOSEINPUT = 3;
+ PRF_CLOSEINPUT = (1 shl PRB_CLOSEINPUT);
+
+ PRB_CLOSEOUTPUT = 4;
+ PRF_CLOSEOUTPUT = (1 shl PRB_CLOSEOUTPUT);
+
+ PRB_FREEARGS = 5;
+ PRF_FREEARGS = (1 shl PRB_FREEARGS);
+
+ PRB_CLOSEERROR = 6;
+ PRF_CLOSEERROR = (1 shl PRB_CLOSEERROR);
+
+ PRB_SYNCHRONOUS = 7;
+ PRF_SYNCHRONOUS = (1 shl PRB_SYNCHRONOUS);
+
+ PRB_WAITINGFORCHILD = 8; // This one is subject to change!
+ PRF_WAITINGFORCHILD = (1 shl PRB_WAITINGFORCHILD);
+
+ PRB_NOTIFYONDEATH = 9;
+ PRF_NOTIFYONDEATH = (1 shl PRB_NOTIFYONDEATH);
+
+type // Checked OK 04.08.2011 ALB
+ PFileHandle = ^TFileHandle;
+ TFileHandle = record
+ // The next three are used with packet-based filesystems
+ fh_Flags : DWord;
+ fh_Interactive: PMsgPort; // packet reply port // alias -> fh_Port
+ fh_Type : PMsgPort; // port to send packets to
+
+ fh_Buf : BPTR;
+ fh_Pos : LongInt;
+ fh_End : LongInt;
+
+ fh_Func1 : LongInt;
+ fh_Func2 : LongInt;
+ fh_Func3 : Pointer;
+ fh_Arg1 : PtrInt;
+ fh_Arg2 : Pointer;
+
+ { *** V39+ *** }
+ fh_Size : DWord;
+ fh_Buf2 : BPTR;
+ end;
+
+(* OBSOLETE *************************
+type
+ PDOSPacket = ^TDOSPacket;
+ TDOSPacket = record
+ dp_Link: PMessage;
+ dp_Port: PMsgPort;
+ case Byte of
+ 0 : ( dp_Action : Longint;
+ dp_Status : Longint;
+ dp_Status2: Longint;
+ dp_BufAddr: Longint;
+ );
+ 1 : ( dp_Type: Longint;
+ dp_Res1: Longint;
+ dp_Res2: Longint;
+ dp_Arg1: Longint;
+ dp_Arg2: Longint;
+ dp_Arg3: Longint;
+ dp_Arg4: Longint;
+ dp_Arg5: Longint;
+ dp_Arg6: Longint;
+ dp_Arg7: Longint;
+ );
+ end;
+
+type
+ PStandardPacket = ^TStandardPacket;
+ TStandardPacket = record
+ sp_Msg: TMessage;
+ sp_Pkt: TDOSPacket;
+ end;
+
+
+const
+ ACTION_NIL = 0;
+ ACTION_STARTUP = 0;
+ ACTION_GET_BLOCK = 2; { *** OBSOLETE *** }
+ ACTION_SET_MAP = 4;
+ ACTION_DIE = 5;
+ ACTION_EVENT = 6;
+ ACTION_CURRENT_VOLUME = 7;
+ ACTION_LOCATE_OBJECT = 8;
+ ACTION_RENAME_DISK = 9;
+ ACTION_WRITE = 'W';
+ ACTION_READ = 'R';
+ ACTION_FREE_LOCK = 15;
+ ACTION_DELETE_OBJECT = 16;
+ ACTION_RENAME_OBJECT = 17;
+ ACTION_MORE_CACHE = 18;
+ ACTION_COPY_DIR = 19;
+ ACTION_WAIT_CHAR = 20;
+ ACTION_SET_PROTECT = 21;
+ ACTION_CREATE_DIR = 22;
+ ACTION_EXAMINE_OBJECT = 23;
+ ACTION_EXAMINE_NEXT = 24;
+ ACTION_DISK_INFO = 25;
+ ACTION_INFO = 26;
+ ACTION_FLUSH = 27;
+ ACTION_SET_COMMENT = 28;
+ ACTION_PARENT = 29;
+ ACTION_TIMER = 30;
+ ACTION_INHIBIT = 31;
+ ACTION_DISK_TYPE = 32;
+ ACTION_DISK_CHANGE = 33;
+ ACTION_SET_DATE = 34;
+
+ ACTION_SAME_LOCK = 40;
+
+ ACTION_SCREEN_MODE = 994;
+
+ ACTION_CHANGE_SIGNAL = 995;
+
+ ACTION_READ_RETURN = 1001;
+ ACTION_WRITE_RETURN = 1002;
+ ACTION_SEEK = 1008;
+ ACTION_FINDUPDATE = 1004;
+ ACTION_FINDINPUT = 1005;
+ ACTION_FINDOUTPUT = 1006;
+ ACTION_END = 1007;
+
+ ACTION_FORMAT = 1020;
+ ACTION_MAKE_LINK = 1021;
+
+ ACTION_SET_FILE_SIZE = 1022;
+ ACTION_WRITE_PROTECT = 1023;
+
+ ACTION_READ_LINK = 1024;
+ ACTION_FH_FROM_LOCK = 1026;
+ ACTION_IS_FILESYSTEM = 1027;
+ ACTION_CHANGE_MODE = 1028;
+
+ ACTION_COPY_DIR_FH = 1030;
+ ACTION_PARENT_FH = 1031;
+ ACTION_EXAMINE_ALL = 1033;
+ ACTION_EXAMINE_FH = 1034;
+
+ ACTION_EXAMINE_ALL_END = 1035;
+ ACTION_SET_OWNER = 1036;
+
+ ACTION_LOCK_RECORD = 2008;
+ ACTION_FREE_RECORD = 2009;
+
+ ACTION_ADD_NOTIFY = 4097;
+ ACTION_REMOVE_NOTIFY = 4098;
+
+ ACTION_SERIALIZE_DISK = 4200;
+
+ ACTION_GET_DISK_FSSM = 4201;
+ ACTION_FREE_DISK_FSSM = 4202;
+
+*)
+
+type // Checked OK 04.08.2011 ALB
+ PErrorString = ^TErrorString;
+ TErrorString = record
+ estr_Nums: PLongInt;
+ estr_Strings: PChar;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PRootNode = ^TRootNode;
+ TRootNode = record
+ rn_TaskArray : BPTR; { BPTR }
+ rn_ConsoleSegment : BPTR; { BPTR }
+ rn_Time : TDateStamp;
+ rn_RestartSeg : Pointer;
+ rn_Info : BPTR; { BPTR }
+ rn_FileHandlerSegment: BPTR; { BPTR }
+ rn_CliList : TMinList;
+ rn_BootProc : PMsgPort;
+ rn_ShellSegment : BPTR; { BPTR }
+ rn_Flags : LongInt;
+ // Aros Special
+ rn_RootLock : TSignalSemaphore;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ // AROS Specific
+ PCLIInfo = ^TCLIInfo;
+ TCLIInfo = record
+ ci_Node: TNode;
+ ci_Process: PProcess;
+ end;
+
+
+type // Checked OK 05.08.2011 ALB
+ PDOSLibrary = ^TDOSLibrary;
+ TDOSLibrary = record
+ dl_Lib : TLibrary;
+ dl_Root : PRootNode;
+ {$ifdef AROS_BINCOMPAT}
+ dl_GV : Pointer;
+ dl_A2 : LongInt;
+ dl_A5 : LongInt;
+ dl_A6 : LongInt;
+ {$endif}
+ dl_Errors : PErrorString;
+ dl_TimeReq : PTimeRequest;
+ dl_UtilityBase : PLibrary;
+ dl_IntuitionBase: PLibrary;
+ // AROS Specific private Fields
+ dl_TimerBase : PDevice;
+ dl_TimerIO : TTimeRequest;
+ dl_DevInfo : BPTR; //PDosList;
+ dl_SysBase : PExecBase;
+ dl_SegList : BPTR;
+ dl_NulHandler : PDevice;
+ dl_NulLock : PUnit;
+ // LDDemon private Data
+ dl_LDObjectsListSigSem : TSignalSemaphore;
+ dl_LDObjectsList : TEList;
+ dl_LDHandler : TInterrupt;
+ dl_LDDemonPort : PMsgPort;
+ dl_LDDemonTask : PProcess;
+ dl_LDReturn : Cardinal;
+
+ // AROS-specific and private. Can go away in future
+ dl_SYSLock: BPTR;
+ // The flags are ORed with RootNode->rn_Flags. See below for definitions.
+ dl_Flags: Cardinal;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ RNB_WILDSTAR = 24;
+ RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
+
+type // Checked OK 04.08.2011 ALB
+ PDOSInfo = ^TDOSInfo;
+ TDOSInfo = record
+ di_McName : BPTR; { BPTR }
+ di_DevInfo : BPTR; { BPTR }
+ di_Devices : BPTR; { BPTR }
+ di_Handlers : BPTR; { BPTR }
+ di_NetHand : BPTR; // Alias di_ResList
+ di_DevLock : TSignalSemaphore;
+ di_EntryLock : TSignalSemaphore;
+ di_DeleteLock: TSignalSemaphore;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PSegment = ^TSegment;
+ TSegment = record
+ seg_Next : PSegment; // Pointer to next segment.
+ seg_UC : LongInt;
+ seg_Seg : BPTR; { BPTR }
+ seg_Name : Array[0..3] of char;
+ { * seg_Name continues * }
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ CMD_SYSTEM = -1;
+ CMD_INTERNAL = -2;
+ CMD_DISABLED = -999;
+
+type // Checked TODO 04.08.2011 ALB
+ PDeviceList = ^TDeviceList;
+ TDeviceList = record
+ dl_Next : PDeviceList; { BPTR }
+ dl_Type : LongInt;
+ dl_Task : PMsgPort;
+ dl_Lock : BPTR; { BPTR }
+ dl_VolumeDate: TDateStamp;
+ dl_LockList : BPTR; { BPTR }
+ dl_DiskType : LongInt;
+ dl_unused : LongInt;
+ // Padding Bytes?
+ dl_Name : BSTR; { BSTR }
+ // Missing DosListAROSExt
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PFileLock = ^TFileLock;
+ TFileLock = record
+ fl_Link : PFileLock; // (PFileLock) Pointer to next lock.
+ fl_Key : PtrUInt;
+ fl_Access: LongInt;
+ fl_Task : PMsgPort;
+ fl_Volume: PDeviceList; // (BPTR)
+ end;
+
+
+type // Checked OK 04.08.2011 ALB
+ PCommandLineInterface = ^TCommandLineInterface;
+ TCommandLineInterface = record
+ cli_Result2 : LongInt; // Secondary error code, set by last command.
+ cli_SetName : BSTR; // Name of the current directory.
+ cli_CommandDir : PFileLock; // Lock of the first directory in path.
+ cli_ReturnCode : LongInt; // Error code, the last command returned.
+ cli_CommandName : BSTR; // Name of the command that is currently executed.
+ cli_FailLevel : LongInt; // Fail-Level as set by the command "FailAt".
+ cli_Prompt : BSTR; // Current prompt in the CLI window.
+ cli_StandardInput : PFileLock; // Standard/Default input file.
+ cli_CurrentInput : PFileLock; // Current input file.
+ cli_CommandFile : BSTR; // Name of the file that is currently executed.
+ cli_Interactive : LongInt; // TRUE if the currently CLI is connected to a controlling terminal, otherwise FALSE.
+ cli_Background : LongInt; // FALSE if there is no controlling terminal, otherwise TRUE.
+ cli_CurrentOutput : PFileLock; // Current output file. }
+ cli_DefaultStack : LongInt; // Default stack size as set by the command "Stack"
+ cli_StandardOutput: PFileLock; // Standard/Default output file.
+ cli_Module : BPTR; // SegList of currently loaded command.
+ // Aros Specific Part
+ cli_Standard_Error: PFileLock; // Standard/Default Error file.
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ CLI_DEFAULTSTACK_UNIT = SizeOf(PtrUInt);
+
+type // Checked TODO 04.08.2011 ALB
+ PDevInfo = ^TDevInfo;
+ TDevInfo = record
+ dvi_Next : PDevInfo; { BPTR }
+ dvi_Type : LongInt;
+ dvi_Task : PMsgPort;
+ dvi_Lock : BPTR; { BPTR }
+ dvi_Handler : BSTR; { BSTR }
+ dvi_StackSize: LongInt;
+ dvi_Priority : LongInt;
+ dvi_Startup : BPTR;
+ dvi_NoAROS1 : BPTR; { BPTR }
+ dvi_NoAROS2 : BPTR; { BPTR }
+ dvi_Name : BSTR; { BSTR }
+ // missing Aros Extension... DosListAROSExt;
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PAssignList = ^TAssignList;
+ TAssignList = record
+ al_Next: PAssignList; // Pointer to next assign node.
+ al_Lock: PFileLock; // Lock of on of the directories.
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PDOSList = ^TDOSList;
+ TDOSList = record
+ dol_Next: BPTR; // PDOSList
+ dol_Type: LongInt;
+ dol_Task: PMsgPort;
+ dol_Lock: PFileLock; { BPTR }
+ case Byte of
+ 0: ( dol_handler : record
+ dol_Handler : BSTR; { BSTR }
+ dol_StackSize: LongInt;
+ dol_Priority : LongInt;
+ dol_Startup : BPTR;
+ dol_NoAROS1 : BPTR; { BPTR }
+ dol_NoAROS2 : BPTR; { BPTR }
+ dol_NoAROS3 : BPTR; { BPTR }
+ end;
+ );
+ 1: ( dol_volume : record
+ dol_VolumeDate: TDateStamp;
+ dol_LockList : BPTR; { BPTR }
+ dol_DiskType : LongInt;
+ dol_unused : BPTR;
+ end;
+ );
+ 2: ( dol_assign : record
+ dol_AssignName: PChar;
+ dol_List : PAssignList;
+ end;
+ );
+ 3: ( dol_Misc: array[0..23] of Byte;
+ dol_Name: BSTR;
+ );
+ // missing Aros Extension... DosListAROSExt;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ DLT_DEVICE = 0;
+ DLT_DIRECTORY = 1;
+ DLT_VOLUME = 2;
+ DLT_LATE = 3;
+ DLT_NONBINDING = 4;
+ DLT_PRIVATE = -1;
+
+
+type // Checked OK 04.08.2011 ALB
+ PDevProc = ^TDevProc;
+ TDevProc = record
+ dvp_Port : PMsgPort;
+ dvp_Lock : PFileLock; { BPTR }
+ dvp_Flags : DWord; // see below
+ dvp_DevNode: PDOSList; // Private
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ DVPB_UNLOCK = 0;
+ DVPF_UNLOCK = (1 shl DVPB_UNLOCK);
+
+ DVPB_ASSIGN = 1;
+ DVPF_ASSIGN = (1 shl DVPB_ASSIGN);
+
+const // Checked OK 04.08.2011 ALB
+ LDB_READ = 0;
+ LDF_READ = (1 shl LDB_READ);
+
+ LDB_WRITE = 1;
+ LDF_WRITE = (1 shl LDB_WRITE);
+
+ LDB_DEVICES = 2;
+ LDF_DEVICES = (1 shl LDB_DEVICES);
+
+ LDB_VOLUMES = 3;
+ LDF_VOLUMES = (1 shl LDB_VOLUMES);
+
+ LDB_ASSIGNS = 4;
+ LDF_ASSIGNS = (1 shl LDB_ASSIGNS);
+
+ LDB_ENTRY = 5;
+ LDF_ENTRY = (1 shl LDB_ENTRY);
+
+ LDB_DELETE = 6;
+ LDF_DELETE = (1 shl LDB_DELETE);
+
+ LDF_ALL = (LDF_DEVICES or LDF_VOLUMES or LDF_ASSIGNS);
+
+
+const // Checked OK 04.08.2011 ALB
+ REPORT_STREAM = 0;
+ REPORT_TASK = 1;
+ REPORT_LOCK = 2;
+ REPORT_VOLUME = 3;
+ REPORT_INSERT = 4;
+
+const // Checked OK 04.08.2011 ALB
+ ABORT_DISK_ERROR = 296;
+ ABORT_BUSY = 288;
+
+const // Checked OK 04.08.2011 ALB
+ RUN_EXECUTE = -1;
+ RUN_SYSTEM = -2;
+ RUN_SYSTEM_ASYNCH = -3;
+
+const // Checked OK 04.08.2011 ALB
+ ST_ROOT = 1;
+ ST_USERDIR = 2;
+ ST_SOFTLINK = 3;
+ ST_LINKDIR = 4;
+ ST_FILE = -3;
+ ST_LINKFILE = -4;
+ ST_PIPEFILE = -5;
+
+
+{ * dos asl definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PAChain = ^TAChain;
+ TAChain = record
+ an_Child : PAChain;
+ an_Parent: PAChain;
+ an_Lock : BPTR;
+ an_Info : TFileInfoBlock;
+ an_Flags : ShortInt;
+ an_String: array[0..0] of Char;
+ { * an_String continues * }
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PAnchorPath = ^TAnchorPath;
+ TAnchorPath = record
+ case Byte of // its not defined in AROS struct just by defines...
+ 0 : ( ap_First: PAChain;
+ ap_Last: PAChain;
+ ap_L1: LongInt;
+ ap_L2: LongInt;
+ ap_Length: ShortInt;
+ );
+ 1 : ( ap_Base: PAChain;
+ ap_Current: PAChain;
+ ap_BreakBits: LongInt;
+ ap_FoundBreak: LongInt;
+ ap_Flags: ShortInt;
+ ap_Reserved: ShortInt;
+ ap_Strlen: SmallInt;
+ ap_Info: TFileInfoBlock;
+ ap_Buf: array[0..0] of char;
+ { * an_Buf continues * }
+ );
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ // Please check for wildcards in supplied string.
+ APB_DOWILD = 0;
+ APF_DOWILD = (1 Shl APB_DOWILD);
+ // There is actually a wildcard in the supplied string. READ-ONLY
+ APB_ITSWILD = 1;
+ APF_ITSWILD = (1 Shl APB_ITSWILD);
+ // Set, if a directory is to be entered. Applications may clear this bit to prohibit the
+ // matching-functions from entering a directory.
+ APB_DODIR = 2;
+ APF_DODIR = (1 Shl APB_DODIR);
+ // Set, if directory was already searched. READ-ONLY
+ APB_DIDDIR = 3;
+ APF_DIDDIR = (1 Shl APB_DIDDIR);
+ // Set, if function was out of memory. READ-ONLY
+ APB_NOMEMERR = 4;
+ APF_NOMEMERR = (1 Shl APB_NOMEMERR);
+ // '.' may refer to the current directory (unix-style).
+ APB_DODOT = 5;
+ APF_DODOT = (1 Shl APB_DODOT);
+ // Directory changed since last call.
+ APB_DirChanged = 6;
+ APF_DirChanged = (1 Shl APB_DirChanged);
+ // Follow hardlinks, too.
+ APB_FollowHLinks = 7;
+ APF_FollowHLinks = (1 Shl APB_FollowHLinks);
+
+const // Checked OK 04.08.2011 ALB
+ DDB_PatternBit = 0;
+ DDF_PatternBit = (1 Shl DDB_PatternBit);
+
+ DDB_ExaminedBit = 1;
+ DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
+
+ DDB_Completed = 2;
+ DDF_Completed = (1 Shl DDB_Completed);
+
+ DDB_AllBit = 3;
+ DDF_AllBit = (1 Shl DDB_AllBit);
+
+ DDB_Single = 4;
+ DDF_Single = (1 Shl DDB_Single);
+
+const // Checked OK 04.08.2011 ALB
+ P_ANY = $80; // Matches everything ('#?' and '*')
+ P_SINGLE = $81; // Any character ('?')
+ P_ORSTART = $82; // Opening parenthesis for OR'ing ('(')
+ P_ORNEXT = $83; // Field delimiter for OR'ing ('|')
+ P_OREND = $84; // Closing parenthesis for OR'ing (')')
+ P_NOT = $85; // Inversion ('~')
+ P_NOTEND = $86; // Inversion end
+ P_NOTCLASS = $87; // Inversion class ('^')
+ P_CLASS = $88; // Class ('[' and ']')
+ P_REPBEG = $89; // Beginning of repetition ('[')
+ P_REPEND = $8A; // End of repetition (']')
+ P_STOP = $8B;
+
+const // Checked OK 04.08.2011 ALB
+ COMPLEX_BIT = 1;
+ EXAMINE_BIT = 2;
+
+const // Checked OK 04.08.2011 ALB
+ ERROR_BUFFER_OVERFLOW = 303;
+ ERROR_BREAK = 304;
+ ERROR_NOT_EXECUTABLE = 305;
+
+
+
+{ * dos hunk definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ HUNK_UNIT = 999;
+ HUNK_NAME = 1000;
+ HUNK_CODE = 1001;
+ HUNK_DATA = 1002;
+ HUNK_BSS = 1003;
+
+ HUNK_RELOC32 = 1004;
+ HUNK_ABSRELOC32 = HUNK_RELOC32;
+
+ HUNK_RELOC16 = 1005;
+ HUNK_RELRELOC16 = HUNK_RELOC16;
+
+ HUNK_RELOC8 = 1006;
+ HUNK_RELRELOC8 = HUNK_RELOC8;
+
+ HUNK_EXT = 1007;
+ HUNK_SYMBOL = 1008;
+ HUNK_DEBUG = 1009;
+ HUNK_END = 1010;
+ HUNK_HEADER = 1011;
+
+ HUNK_OVERLAY = 1013;
+ HUNK_BREAK = 1014;
+
+ HUNK_DREL32 = 1015;
+ HUNK_DREL16 = 1016;
+ HUNK_DREL8 = 1017;
+
+ HUNK_LIB = 1018;
+ HUNK_INDEX = 1019;
+
+ HUNK_RELOC32SHORT = 1020;
+
+ HUNK_RELRELOC32 = 1021;
+ HUNK_ABSRELOC16 = 1022;
+
+const // Checked OK 04.08.2011 ALB
+ HUNKB_ADVISORY = 29;
+ HUNKB_CHIP = 30;
+ HUNKB_FAST = 31;
+
+ HUNKF_ADVISORY = (1 shl HUNKB_ADVISORY);
+ HUNKF_CHIP = (1 shl HUNKB_CHIP);
+ HUNKF_FAST = (1 shl HUNKB_FAST);
+
+const // Checked OK 04.08.2011 ALB
+ EXT_SYMB = 0;
+ EXT_DEF = 1;
+ EXT_ABS = 2;
+
+ EXT_REF32 = 129;
+ EXT_ABSREF32 = EXT_REF32;
+
+ EXT_COMMON = 130;
+ EXT_ABSCOMMON = EXT_COMMON;
+
+ EXT_REF16 = 131;
+ EXT_RELREF16 = EXT_REF16;
+
+ EXT_REF8 = 132;
+ EXT_RELREF8 = EXT_REF8;
+
+ EXT_DEXT32 = 133;
+ EXT_DEXT16 = 134;
+ EXT_DEXT8 = 135;
+
+ EXT_RELREF32 = 136;
+ EXT_RELCOMMON = 137;
+
+ EXT_ABSREF16 = 138;
+
+ EXT_ABSREF8 = 139;
+
+
+
+{ * dos ExAll definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ ED_NAME = 1;
+ ED_TYPE = 2;
+ ED_SIZE = 3;
+ ED_PROTECTION = 4;
+ ED_DATE = 5;
+ ED_COMMENT = 6;
+ ED_OWNER = 7;
+
+
+type // Checked OK 04.08.2011 ALB
+ PExAllData = ^TExAllData;
+ TExAllData = record
+ ed_Next : PExAllData;
+ ed_Name : PChar;
+ ed_Type : LongInt;
+ ed_Size : Cardinal;
+ ed_Prot : Cardinal;
+ ed_Days : Cardinal;
+ ed_Mins : Cardinal;
+ ed_Ticks : Cardinal;
+ ed_Comment : PChar;
+ ed_OwnerUID: Word;
+ ed_OwnerGID: Word;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PExAllControl = ^TExAllControl;
+ TexAllControl = record
+ eac_Entries : Cardinal;
+ eac_LastKey : PtrUInt; // private
+ eac_MatchString: PChar;
+ eac_MatchFunc : PHook;
+ end;
+
+
+
+{ * dos record definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ REC_EXCLUSIVE = 0;
+ REC_EXCLUSIVE_IMMED = 1;
+ REC_SHARED = 2;
+ REC_SHARED_IMMED = 3;
+
+
+type // Checked OK 04.08.2011 ALB
+ PRecordLock = ^TRecordLock;
+ TRecordLock = record
+ rec_FH : PFileHandle;
+ rec_Offset: Cardinal;
+ rec_Length: Cardinal;
+ rec_Mode : Cardinal;
+ end;
+
+
+
+{ * dos tag definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ SYS_Dummy = (TAG_USER + 32);
+ SYS_Input = (SYS_Dummy + 1);
+ SYS_Output = (SYS_Dummy + 2);
+ SYS_Asynch = (SYS_Dummy + 3);
+ SYS_UserShell = (SYS_Dummy + 4);
+ SYS_CustomShell = (SYS_Dummy + 5);
+
+ { *** Aros Specific *** }
+ SYS_Error = (SYS_Dummy + 10);
+ SYS_ScriptInput = (SYS_Dummy + 11);
+ SYS_Background = (SYS_Dummy + 12);
+ SYS_CliNumPtr = (SYS_Dummy + 13);
+
+ SYS_DupStream = 1;
+
+const // Checked OK 04.08.2011 ALB
+ NP_Dummy = (TAG_USER + 1000);
+ NP_Seglist = (NP_Dummy + 1);
+ NP_FreeSeglist = (NP_Dummy + 2);
+ NP_Entry = (NP_Dummy + 3);
+ NP_Input = (NP_Dummy + 4);
+ NP_Output = (NP_Dummy + 5);
+ NP_CloseInput = (NP_Dummy + 6);
+ NP_CloseOutput = (NP_Dummy + 7);
+ NP_Error = (NP_Dummy + 8);
+ NP_CloseError = (NP_Dummy + 9);
+ NP_CurrentDir = (NP_Dummy + 10);
+ NP_StackSize = (NP_Dummy + 11);
+ NP_Name = (NP_Dummy + 12);
+ NP_Priority = (NP_Dummy + 13);
+ NP_ConsoleTask = (NP_Dummy + 14);
+ NP_WindowPtr = (NP_Dummy + 15);
+ NP_HomeDir = (NP_Dummy + 16);
+ NP_CopyVars = (NP_Dummy + 17);
+ NP_Cli = (NP_Dummy + 18);
+ NP_Path = (NP_Dummy + 19);
+ NP_CommandName = (NP_Dummy + 20);
+ NP_Arguments = (NP_Dummy + 21);
+
+ NP_NotifyOnDeath = (NP_Dummy + 22);
+ NP_Synchronous = (NP_Dummy + 23);
+ NP_ExitCode = (NP_Dummy + 24);
+ NP_ExitData = (NP_Dummy + 25);
+
+ { *** AROS Specific *** }
+ NP_UserData = (NP_Dummy + 26);
+
+const // Checked OK 04.08.2011 ALB
+ ADO_Dummy = (TAG_USER + 2000);
+ ADO_FH_Mode = (ADO_Dummy + 1);
+
+ ADO_DirLen = (ADO_Dummy + 2);
+ ADO_CommNameLen = (ADO_Dummy + 3);
+ ADO_CommFileLen = (ADO_Dummy + 4);
+ ADO_PromptLen = (ADO_Dummy + 5);
+
+
+
+{ * dos stdio definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ BUF_LINE = 0;
+ BUF_FULL = 1;
+ BUF_NONE = 2;
+
+const // Checked OK 04.08.2011 ALB
+ ENDSTREAMCH = -1;
+
+
+
+{ * dos env-var definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PLocalVar = ^TLocalVar;
+ TLocalVar = record
+ lv_Node : TNode;
+ lv_Flags: Word;
+ lv_Value: PChar;
+ lv_Len : Cardinal;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PScanVarsMsg = ^TScanVarsMsg;
+ TScanVarsMsg = record
+ sv_SVMSize: Cardinal; // Size of ScanVarsMsg structure
+ sv_Flags: Cardinal; // The flags parameter given to ScanVars()
+ sv_GDir: PChar; // Directory patch for global variables or empty string "\0" for local variables
+ sv_Name: PChar; // Name of the variable
+ sv_Var: PChar; // Pointer to the contents of the variable
+ sv_VarLen: Cardinal; // Size of the variable
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ LV_VAR = 0;
+ LV_ALIAS = 1;
+
+const // Checked OK 04.08.2011 ALB
+ LVB_IGNORE = 7;
+ LVF_IGNORE = (1 Shl LVB_IGNORE);
+
+ GVB_GLOBAL_ONLY = 8;
+ GVF_GLOBAL_ONLY = (1 Shl GVB_GLOBAL_ONLY);
+
+ GVB_LOCAL_ONLY = 9;
+ GVF_LOCAL_ONLY = (1 Shl GVB_LOCAL_ONLY);
+
+ GVB_BINARY_VAR = 10;
+ GVF_BINARY_VAR = (1 Shl GVB_BINARY_VAR);
+
+ GVB_DONT_NULL_TERM = 11;
+ GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
+
+ GVB_SAVE_VAR = 12;
+ GVF_SAVE_VAR = (1 Shl GVB_SAVE_VAR);
+
+
+
+{ * dos ReadArgs definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PCSource = ^TCSource;
+ TCSource = record
+ CS_Buffer: PChar;
+ CS_Length: LongInt;
+ CS_CurChr: LongInt;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PRDArgs = ^TRDArgs;
+ TRDArgs = record
+ RDA_Source : TCSource;
+ RDA_DAList : PtrUInt;
+ RDA_Buffer : PChar;
+ RDA_BufSiz : LongInt;
+ RDA_ExtHelp: PChar;
+ RDA_Flags : LongInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ RDAB_STDIN = 0;
+ RDAF_STDIN = (1 Shl RDAB_STDIN);
+
+ RDAB_NOALLOC = 1;
+ RDAF_NOALLOC = (1 Shl RDAB_NOALLOC);
+
+ RDAB_NOPROMPT = 2;
+ RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
+
+const // Checked OK 04.08.2011 ALB
+ MAX_TEMPLATE_ITEMS = 100;
+ MAX_MULTIARGS = 128;
+
+
+
+{ * dos filehandler definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PDosEnvec = ^TDosEnvec;
+ TDosEnvec = record
+ de_TableSize : PtrUInt;
+ de_SizeBlock : PtrUInt;
+ de_SecOrg : PtrUInt;
+ de_Surfaces : PtrUInt;
+ de_SectorPerBlock: PtrUInt;
+ de_BlocksPerTrack: PtrUInt;
+ de_Reserved : PtrUInt;
+ de_PreAlloc : PtrUInt;
+ de_Interleave : PtrUInt;
+ de_LowCyl : PtrUInt;
+ de_HighCyl : PtrUInt;
+ de_NumBuffers : PtrUInt;
+ de_BufMemType : PtrUInt;
+ de_MaxTransfer : PtrUInt;
+ de_Mask : PtrUInt;
+ de_BootPri : PtrInt;
+ de_DosType : PtrUInt;
+ de_Baud : PtrUInt;
+ de_Control : PtrUInt;
+ de_BootBlocks : PtrUInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ DE_TABLESIZE = 0;
+ DE_SIZEBLOCK = 1;
+ DE_BLOCKSIZE = 2;
+ DE_NUMHEADS = 3;
+ DE_SECSPERBLOCK = 4;
+ DE_BLKSPERTRACK = 5;
+ DE_RESERVEDBLKS = 6;
+ DE_PREFAC = 7;
+ DE_INTERLEAVE = 8;
+ DE_LOWCYL = 9;
+ DE_HIGHCYL = 10;
+ DE_UPPERCYL = DE_HIGHCYL;
+ DE_NUMBUFFERS = 11;
+ DE_BUFMEMTYPE = 12;
+ DE_MEMBUFTYPE = DE_BUFMEMTYPE;
+ DE_MAXTRANSFER = 13;
+ DE_MASK = 14;
+ DE_BOOTPRI = 15;
+ DE_DOSTYPE = 16;
+ DE_BAUD = 17;
+ DE_CONTROL = 18;
+ DE_BOOTBLOCKS = 19;
+
+
+type // Checked OK 04.08.2011 ALB
+ PFileSysStartupMsg = ^TFileSysStartupMsg;
+ TFileSysStartupMsg = record
+ fssm_Unit : PtrUInt;
+ fssm_Device : BSTR;
+ fssm_Environ: BPTR;
+ fssm_Flags : Cardinal;
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PDeviceNode = ^TDeviceNode;
+ TDeviceNode = record
+ dn_Next : PDeviceNode;
+ dn_Type : Cardinal;
+ dn_Task : PMsgPort;
+ dn_Lock : BPTR;
+ dn_Handler : BSTR;
+ dn_StackSize: Cardinal;
+ dn_Priority : LongInt;
+ dn_Startup : BPTR;
+ dn_SegList : BPTR;
+ dn_GlobalVec: BPTR;
+ dn_Name : BSTR;
+ // Missing Extension DosListAROSExt
+ end;
+
+{ * dos notification definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ NOTIFY_CLASS = $40000000;
+ NOTIFY_CODE = $1234;
+
+
+type // Checked OK 04.08.2011 ALB
+ PNotifyRequest = ^TNotifyRequest;
+ TNotifyRequest = record
+ nr_Name : PChar;
+ nr_FullName: PChar;
+ nr_UserData: Cardinal;
+ nr_Flags : Cardinal;
+ nr_stuff : record
+ case Byte of
+ 0 : ( nr_Msg : record
+ nr_Port: PMsgPort;
+ end );
+ 1 : ( nr_Signal : record
+ nr_Task : PTask;
+ nr_SignalNum: Byte;
+ nr_pad : array[0..2] of Byte;
+ end );
+ end;
+ nr_Reserved: array[0..3] of Cardinal;
+ nr_MsgCount: Cardinal;
+ nr_Handler : PMsgPort;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PNotifyMessage = ^TNotifyMessage;
+ TNotifyMessage = record
+ nm_ExecMessage: TMessage;
+ nm_Class : Cardinal;
+ nm_Code : Word;
+ nm_NReq : PNotifyRequest;
+ nm_DoNotTouch : PtrUInt;
+ nm_DoNotTouch2: PtrUInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ NRB_SEND_MESSAGE = 0;
+ NRB_SEND_SIGNAL = 1;
+ NRB_WAIT_REPLY = 3;
+ NRB_NOTIFY_INITIAL = 4;
+ NRB_MAGIC = 31;
+ NRF_SEND_MESSAGE = (1 shl NRB_SEND_MESSAGE);
+ NRF_SEND_SIGNAL = (1 shl NRB_SEND_SIGNAL);
+ NRF_WAIT_REPLY = (1 shl NRB_WAIT_REPLY);
+ NRF_NOTIFY_INITIAL = (1 shl NRB_NOTIFY_INITIAL);
+ NRF_MAGIC = (1 shl NRB_MAGIC);
+
+ NR_HANDLER_FLAGS = $ffff0000;
+
+
+
+