mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 13:49:30 +02:00
1372 lines
36 KiB
PHP
1372 lines
36 KiB
PHP
{
|
|
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;
|
|
|
|
|
|
|
|
|