| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371 | {    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 AnsiChar;    fib_Protection  : LongInt;    fib_EntryType   : LongInt;    fib_Size        : LongInt;    fib_NumBlocks   : LongInt;    fib_Date        : TDateStamp;    fib_Comment     : Array[0..MAXCOMMENTLENGTH - 1] Of AnsiChar;    fib_OwnerUID    : Word;    fib_OwnerGID    : Word;    fib_Reserved    : array[0..31] of AnsiChar;  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 = PtrInt;  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     : PAnsiChar;    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: LongInt;   // 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      : PtrInt;    // SIPTR    fh_Func2      : PtrInt;    // SIPTR    fh_Func3      : PtrInt;    // SIPTR    fh_Arg1       : PtrInt;    // SIPTR    fh_Arg2       : PtrInt;    // SIPTR    { *** V39+ *** }    fh_BufSize    : DWord;    fh_OrigBuf    : 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: PAnsiChar;  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 AnsiChar;    { * 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    : BPTR;    // 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_SegList  : BPTR; { BPTR }    dvi_GlobalVec: BPTR; { BPTR } // aka dvi_GlobVec    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: PAnsiChar;           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 AnsiChar;    { * 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..255] of AnsiChar;          { * 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    : PAnsiChar;    ed_Type    : LongInt;    ed_Size    : Cardinal;    ed_Prot    : Cardinal;    ed_Days    : Cardinal;    ed_Mins    : Cardinal;    ed_Ticks   : Cardinal;    ed_Comment : PAnsiChar;    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: PAnsiChar;    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: PAnsiChar;    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: PAnsiChar;        // Directory patch for global variables or empty string "\0" for local variables    sv_Name: PAnsiChar;        // Name of the variable    sv_Var: PAnsiChar;         // 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: PAnsiChar;    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 : PAnsiChar;    RDA_BufSiz : LongInt;    RDA_ExtHelp: PAnsiChar;    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    : PAnsiChar;    nr_FullName: PAnsiChar;    nr_UserData: PtrUInt;    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 PtrUInt;    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;
 |