doslibd.inc 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371
  1. {
  2. This file is part of the Free Pascal run time library.
  3. dos definitions (V50) for MorphOS/PowerPC
  4. Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
  5. Free Pascal conversion
  6. Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
  7. AROS conversion
  8. Copyright (c) 2011 Marcus Sackrow
  9. See the file COPYING.FPC, included in this distribution,
  10. for details about the copyright.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. **********************************************************************}
  15. { * dos global definitions
  16. *********************************************************************
  17. * }
  18. const // Checked OK 04.08.2011 ALB
  19. DOSNAME = 'dos.library';
  20. const // Checked OK 04.08.2011 ALB
  21. DOSTRUE = -1;
  22. DOSFALSE = 0;
  23. const // Checked OK 04.08.2011 ALB
  24. MODE_OLDFILE = 1005;
  25. MODE_NEWFILE = 1006;
  26. MODE_READWRITE = 1004;
  27. const // Checked OK 04.08.2011 ALB
  28. OFFSET_BEGINNING = -1;
  29. OFFSET_CURRENT = 0;
  30. OFFSET_END = 1;
  31. const // Checked OK 04.08.2011 ALB
  32. BITSPERBYTE = 8;
  33. BYTESPERLONG = 4;
  34. BITSPERLONG = 32;
  35. _MAXINT = $7FFFFFFF;
  36. _MININT = $80000000;
  37. const // Checked OK 04.08.2011 ALB
  38. SHARED_LOCK = -2;
  39. ACCESS_READ = SHARED_LOCK;
  40. EXCLUSIVE_LOCK = -1;
  41. ACCESS_WRITE = EXCLUSIVE_LOCK;
  42. type // Checked OK 04.08.2011 ALB
  43. PDateStamp = ^TDateStamp;
  44. TDateStamp = record
  45. ds_Days : LongInt;
  46. ds_Minute: LongInt;
  47. ds_Tick : LongInt;
  48. end;
  49. const // Checked OK 04.08.2011 ALB
  50. TICKS_PER_SECOND = 50;
  51. const // Checked OK 04.08.2011 ALB
  52. MAXFILENAMELENGTH = 108;
  53. MAXCOMMENTLENGTH = 80;
  54. type // Checked OK 04.08.2011 ALB
  55. PFileInfoBlock = ^TFileInfoBlock;
  56. TFileInfoBlock = record
  57. fib_DiskKey : PtrUInt;
  58. fib_DirEntryType: LongInt;
  59. fib_FileName : array[0..MAXFILENAMELENGTH - 1] of char;
  60. fib_Protection : LongInt;
  61. fib_EntryType : LongInt;
  62. fib_Size : LongInt;
  63. fib_NumBlocks : LongInt;
  64. fib_Date : TDateStamp;
  65. fib_Comment : Array[0..MAXCOMMENTLENGTH - 1] Of char;
  66. fib_OwnerUID : Word;
  67. fib_OwnerGID : Word;
  68. fib_Reserved : array[0..31] of char;
  69. end;
  70. const // Checked OK 04.08.2011 ALB
  71. FIBB_OTR_READ = 15;
  72. FIBB_OTR_WRITE = 14;
  73. FIBB_OTR_EXECUTE = 13;
  74. FIBB_OTR_DELETE = 12;
  75. FIBB_GRP_READ = 11;
  76. FIBB_GRP_WRITE = 10;
  77. FIBB_GRP_EXECUTE = 9;
  78. FIBB_GRP_DELETE = 8;
  79. FIBB_SCRIPT = 6; // File is a script (DOS or ARexx).
  80. FIBB_PURE = 5; // Make program resident on execution.
  81. FIBB_ARCHIVE = 4; // File was archived (not used by OS).
  82. FIBB_READ = 3; // File is readable.
  83. FIBB_WRITE = 2; // File is writable.
  84. FIBB_EXECUTE = 1; // File is executable (no scripts!).
  85. FIBB_DELETE = 0; // File is deleteable.
  86. const // Checked OK 04.08.2011 ALB
  87. FIBF_OTR_READ = (1 shl FIBB_OTR_READ);
  88. FIBF_OTR_WRITE = (1 shl FIBB_OTR_WRITE);
  89. FIBF_OTR_EXECUTE = (1 shl FIBB_OTR_EXECUTE);
  90. FIBF_OTR_DELETE = (1 shl FIBB_OTR_DELETE);
  91. FIBF_GRP_READ = (1 shl FIBB_GRP_READ);
  92. FIBF_GRP_WRITE = (1 shl FIBB_GRP_WRITE);
  93. FIBF_GRP_EXECUTE = (1 shl FIBB_GRP_EXECUTE);
  94. FIBF_GRP_DELETE = (1 shl FIBB_GRP_DELETE);
  95. FIBF_SCRIPT = (1 shl FIBB_SCRIPT);
  96. FIBF_PURE = (1 shl FIBB_PURE);
  97. FIBF_ARCHIVE = (1 shl FIBB_ARCHIVE);
  98. FIBF_READ = (1 shl FIBB_READ);
  99. FIBF_WRITE = (1 shl FIBB_WRITE);
  100. FIBF_EXECUTE = (1 shl FIBB_EXECUTE);
  101. FIBF_DELETE = (1 shl FIBB_DELETE);
  102. const // Checked OK 04.08.2011 ALB
  103. FAULT_MAX = 82;
  104. type // Checked OK 04.08.2011 ALB
  105. BPTR = PtrInt;
  106. BSTR = Pointer;
  107. type // Checked OK 04.08.2011 ALB
  108. PInfoData = ^TInfoData;
  109. TInfoData = record
  110. id_NumSoftErrors: LongInt; // Number of soft errors on device.
  111. id_UnitNumber : LongInt; // Unit number of device.
  112. id_DiskState : LongInt; // State the current volume is in (see below).
  113. id_NumBlocks : LongInt; // Number of blocks on device.
  114. id_NumBlocksUsed: LongInt; // Number of blocks in use.
  115. id_BytesPerBlock: LongInt; // Bytes per block.
  116. id_DiskType : LongInt; // Type of disk (see below).
  117. id_VolumeNode : BPTR;
  118. id_InUse : PtrUInt; // Set, if device is in use.
  119. end;
  120. const // Checked OK 04.08.2011 ALB
  121. ID_WRITE_PROTECTED = 80;
  122. ID_VALIDATING = 81;
  123. ID_VALIDATED = 82;
  124. ID_NO_DISK_PRESENT = -1;
  125. ID_UNREADABLE_DISK = $42414400;
  126. ID_DOS_DISK = $444F5300;
  127. ID_FFS_DISK = $444F5301;
  128. ID_INTER_DOS_DISK = $444F5302;
  129. ID_INTER_FFS_DISK = $444F5303;
  130. ID_FASTDIR_DOS_DISK = $444F5304;
  131. ID_FASTDIR_FFS_DISK = $444F5305;
  132. ID_LNFS_DOS_DISK = $444F5306;
  133. ID_LNFS_FFS_DISK = $444F5307;
  134. ID_NOT_REALLY_DOS = $4E444F53;
  135. ID_KICKSTART_DISK = $4B49434B;
  136. ID_MSDOS_DISK = $4d534400;
  137. ID_SFS_BE_DISK = $53465330;
  138. ID_SFS_LE_DISK = $73667330;
  139. const // Checked OK 04.08.2011 ALB
  140. ERROR_UNKNOWN = 100;
  141. ERROR_NO_FREE_STORE = 103;
  142. ERROR_TASK_TABLE_FULL = 105;
  143. ERROR_BAD_TEMPLATE = 114;
  144. ERROR_BAD_NUMBER = 115;
  145. ERROR_REQUIRED_ARG_MISSING = 116;
  146. ERROR_KEY_NEEDS_ARG = 117;
  147. ERROR_TOO_MANY_ARGS = 118;
  148. ERROR_UNMATCHED_QUOTES = 119;
  149. ERROR_LINE_TOO_LONG = 120;
  150. ERROR_FILE_NOT_OBJECT = 121;
  151. ERROR_INVALID_RESIDENT_LIBRARY = 122;
  152. ERROR_NO_DEFAULT_DIR = 201;
  153. ERROR_OBJECT_IN_USE = 202;
  154. ERROR_OBJECT_EXISTS = 203;
  155. ERROR_DIR_NOT_FOUND = 204;
  156. ERROR_OBJECT_NOT_FOUND = 205;
  157. ERROR_BAD_STREAM_NAME = 206;
  158. ERROR_OBJECT_TOO_LARGE = 207;
  159. ERROR_ACTION_NOT_KNOWN = 209;
  160. ERROR_INVALID_COMPONENT_NAME = 210;
  161. ERROR_INVALID_LOCK = 211;
  162. ERROR_OBJECT_WRONG_TYPE = 212;
  163. ERROR_DISK_NOT_VALIDATED = 213;
  164. ERROR_DISK_WRITE_PROTECTED = 214;
  165. ERROR_RENAME_ACROSS_DEVICES = 215;
  166. ERROR_DIRECTORY_NOT_EMPTY = 216;
  167. ERROR_TOO_MANY_LEVELS = 217;
  168. ERROR_DEVICE_NOT_MOUNTED = 218;
  169. ERROR_SEEK_ERROR = 219;
  170. ERROR_COMMENT_TOO_BIG = 220;
  171. ERROR_DISK_FULL = 221;
  172. ERROR_DELETE_PROTECTED = 222;
  173. ERROR_WRITE_PROTECTED = 223;
  174. ERROR_READ_PROTECTED = 224;
  175. ERROR_NOT_A_DOS_DISK = 225;
  176. ERROR_NO_DISK = 226;
  177. ERROR_NO_MORE_ENTRIES = 232;
  178. ERROR_IS_SOFT_LINK = 233;
  179. ERROR_OBJECT_LINKED = 234;
  180. ERROR_BAD_HUNK = 235;
  181. ERROR_NOT_IMPLEMENTED = 236;
  182. ERROR_RECORD_NOT_LOCKED = 240;
  183. ERROR_LOCK_COLLISION = 241;
  184. ERROR_LOCK_TIMEOUT = 242;
  185. ERROR_UNLOCK_ERROR = 243;
  186. const // Checked OK 04.08.2011 ALB
  187. RETURN_OK = 0;
  188. RETURN_WARN = 5;
  189. RETURN_ERROR = 10;
  190. RETURN_FAIL = 20;
  191. const // Checked OK 04.08.2011 ALB
  192. SIGBREAKB_CTRL_C = 12;
  193. SIGBREAKB_CTRL_D = 13;
  194. SIGBREAKB_CTRL_E = 14;
  195. SIGBREAKB_CTRL_F = 15;
  196. SIGBREAKF_CTRL_C = (1 shl SIGBREAKB_CTRL_C);
  197. SIGBREAKF_CTRL_D = (1 shl SIGBREAKB_CTRL_D);
  198. SIGBREAKF_CTRL_E = (1 shl SIGBREAKB_CTRL_E);
  199. SIGBREAKF_CTRL_F = (1 shl SIGBREAKB_CTRL_F);
  200. const // Checked OK 04.08.2011 ALB
  201. LOCK_DIFFERENT = -1;
  202. LOCK_SAME = 0;
  203. LOCK_SAME_VOLUME = 1;
  204. const // Checked OK 04.08.2011 ALB
  205. CHANGE_LOCK = 0;
  206. CHANGE_FH = 1;
  207. const // Checked OK 04.08.2011 ALB
  208. LINK_HARD = 0;
  209. LINK_SOFT = 1;
  210. const // Checked OK 04.08.2011 ALB
  211. ITEM_EQUAL = -2;
  212. ITEM_ERROR = -1;
  213. ITEM_NOTHING = 0;
  214. ITEM_UNQUOTED = 1;
  215. ITEM_QUOTED = 2;
  216. const // Checked OK 04.08.2011 ALB
  217. DOS_FILEHANDLE = 0;
  218. DOS_EXALLCONTROL = 1;
  219. DOS_FIB = 2;
  220. DOS_STDPKT = 3;
  221. DOS_CLI = 4;
  222. DOS_RDARGS = 5;
  223. { * dos date/time definitions
  224. *********************************************************************
  225. * }
  226. type // Checked OK 04.08.2011 ALB
  227. { * Required to avoid conflict with default types * }
  228. _PDateTime = ^_TDateTime;
  229. _TDateTime = record
  230. dat_Stamp : TDateStamp;
  231. dat_Format : Byte;
  232. dat_Flags : Byte;
  233. dat_StrDay : PByte;
  234. dat_StrDate: PByte;
  235. dat_StrTime: PByte;
  236. end;
  237. const // Checked OK 04.08.2011 ALB
  238. LEN_DATSTRING = 16;
  239. const // Checked OK 04.08.2011 ALB
  240. DTB_SUBST = 0;
  241. DTF_SUBST = (1 Shl DTB_SUBST);
  242. DTB_FUTURE = 1;
  243. DTF_FUTURE = (1 Shl DTB_FUTURE);
  244. const // Checked OK 04.08.2011 ALB
  245. FORMAT_DOS = 0;
  246. FORMAT_INT = 1;
  247. FORMAT_USA = 2;
  248. FORMAT_CDN = 3;
  249. FORMAT_MAX = FORMAT_CDN;
  250. FORMAT_DEF = 4;
  251. { * dos extended structures definitions
  252. *********************************************************************
  253. * }
  254. type // Checked OK 04.08.2011 ALB
  255. PProcess = ^TProcess;
  256. TProcess = record
  257. pr_Task : TTask; // Embedded task structure
  258. pr_MsgPort : TMsgPort; // Processes standard message-port. Used for various puposes.
  259. pr_Pad : Word; // Private
  260. pr_SegList : BPTR; // SegList array, used by this process.
  261. pr_StackSize : LongInt; // StackSize of the current process.
  262. pr_GlobVec : Pointer;
  263. pr_TaskNum : LongInt; // CLI process number. This may be 0, in which case the process is not connected to a CLI.
  264. pr_StackBase : BPTR; // Pointer to upper end of stack.
  265. pr_Result2 : PtrInt; // Secondary return-value
  266. pr_CurrentDir : BPTR; // Lock of the current directory
  267. pr_CIS : BPTR; { BPTR }
  268. pr_COS : BPTR; { BPTR }
  269. pr_ConsoleTask : Pointer;
  270. pr_FileSystemTask: Pointer;
  271. pr_CLI : BPTR; { BPTR }
  272. pr_ReturnAddr : Pointer;
  273. pr_PktWait : Pointer;
  274. pr_WindowPtr : Pointer;
  275. pr_HomeDir : BPTR; { BPTR }
  276. pr_Flags : LongInt;
  277. pr_ExitCode : Pointer; { Procedure }
  278. pr_ExitData : PtrUInt;
  279. pr_Arguments : PChar;
  280. pr_LocalVars : TMinList;
  281. pr_ShellPrivate : DWord;
  282. pr_CES : BPTR; { BPTR }
  283. end;
  284. const // Checked OK 04.08.2011 ALB
  285. PRB_FREESEGLIST = 0;
  286. PRF_FREESEGLIST = (1 shl PRB_FREESEGLIST);
  287. PRB_FREECURRDIR = 1;
  288. PRF_FREECURRDIR = (1 shl PRB_FREECURRDIR);
  289. PRB_FREECLI = 2;
  290. PRF_FREECLI = (1 shl PRB_FREECLI);
  291. PRB_CLOSEINPUT = 3;
  292. PRF_CLOSEINPUT = (1 shl PRB_CLOSEINPUT);
  293. PRB_CLOSEOUTPUT = 4;
  294. PRF_CLOSEOUTPUT = (1 shl PRB_CLOSEOUTPUT);
  295. PRB_FREEARGS = 5;
  296. PRF_FREEARGS = (1 shl PRB_FREEARGS);
  297. PRB_CLOSEERROR = 6;
  298. PRF_CLOSEERROR = (1 shl PRB_CLOSEERROR);
  299. PRB_SYNCHRONOUS = 7;
  300. PRF_SYNCHRONOUS = (1 shl PRB_SYNCHRONOUS);
  301. PRB_WAITINGFORCHILD = 8; // This one is subject to change!
  302. PRF_WAITINGFORCHILD = (1 shl PRB_WAITINGFORCHILD);
  303. PRB_NOTIFYONDEATH = 9;
  304. PRF_NOTIFYONDEATH = (1 shl PRB_NOTIFYONDEATH);
  305. type // Checked OK 04.08.2011 ALB
  306. PFileHandle = ^TFileHandle;
  307. TFileHandle = record
  308. // The next three are used with packet-based filesystems
  309. fh_Flags : DWord;
  310. fh_Interactive: PMsgPort; // packet reply port // alias -> fh_Port
  311. fh_Type : PMsgPort; // port to send packets to
  312. fh_Buf : BPTR;
  313. fh_Pos : LongInt;
  314. fh_End : LongInt;
  315. fh_Func1 : LongInt;
  316. fh_Func2 : LongInt;
  317. fh_Func3 : Pointer;
  318. fh_Arg1 : PtrInt;
  319. fh_Arg2 : Pointer;
  320. { *** V39+ *** }
  321. fh_Size : DWord;
  322. fh_Buf2 : BPTR;
  323. end;
  324. (* OBSOLETE *************************
  325. type
  326. PDOSPacket = ^TDOSPacket;
  327. TDOSPacket = record
  328. dp_Link: PMessage;
  329. dp_Port: PMsgPort;
  330. case Byte of
  331. 0 : ( dp_Action : Longint;
  332. dp_Status : Longint;
  333. dp_Status2: Longint;
  334. dp_BufAddr: Longint;
  335. );
  336. 1 : ( dp_Type: Longint;
  337. dp_Res1: Longint;
  338. dp_Res2: Longint;
  339. dp_Arg1: Longint;
  340. dp_Arg2: Longint;
  341. dp_Arg3: Longint;
  342. dp_Arg4: Longint;
  343. dp_Arg5: Longint;
  344. dp_Arg6: Longint;
  345. dp_Arg7: Longint;
  346. );
  347. end;
  348. type
  349. PStandardPacket = ^TStandardPacket;
  350. TStandardPacket = record
  351. sp_Msg: TMessage;
  352. sp_Pkt: TDOSPacket;
  353. end;
  354. const
  355. ACTION_NIL = 0;
  356. ACTION_STARTUP = 0;
  357. ACTION_GET_BLOCK = 2; { *** OBSOLETE *** }
  358. ACTION_SET_MAP = 4;
  359. ACTION_DIE = 5;
  360. ACTION_EVENT = 6;
  361. ACTION_CURRENT_VOLUME = 7;
  362. ACTION_LOCATE_OBJECT = 8;
  363. ACTION_RENAME_DISK = 9;
  364. ACTION_WRITE = 'W';
  365. ACTION_READ = 'R';
  366. ACTION_FREE_LOCK = 15;
  367. ACTION_DELETE_OBJECT = 16;
  368. ACTION_RENAME_OBJECT = 17;
  369. ACTION_MORE_CACHE = 18;
  370. ACTION_COPY_DIR = 19;
  371. ACTION_WAIT_CHAR = 20;
  372. ACTION_SET_PROTECT = 21;
  373. ACTION_CREATE_DIR = 22;
  374. ACTION_EXAMINE_OBJECT = 23;
  375. ACTION_EXAMINE_NEXT = 24;
  376. ACTION_DISK_INFO = 25;
  377. ACTION_INFO = 26;
  378. ACTION_FLUSH = 27;
  379. ACTION_SET_COMMENT = 28;
  380. ACTION_PARENT = 29;
  381. ACTION_TIMER = 30;
  382. ACTION_INHIBIT = 31;
  383. ACTION_DISK_TYPE = 32;
  384. ACTION_DISK_CHANGE = 33;
  385. ACTION_SET_DATE = 34;
  386. ACTION_SAME_LOCK = 40;
  387. ACTION_SCREEN_MODE = 994;
  388. ACTION_CHANGE_SIGNAL = 995;
  389. ACTION_READ_RETURN = 1001;
  390. ACTION_WRITE_RETURN = 1002;
  391. ACTION_SEEK = 1008;
  392. ACTION_FINDUPDATE = 1004;
  393. ACTION_FINDINPUT = 1005;
  394. ACTION_FINDOUTPUT = 1006;
  395. ACTION_END = 1007;
  396. ACTION_FORMAT = 1020;
  397. ACTION_MAKE_LINK = 1021;
  398. ACTION_SET_FILE_SIZE = 1022;
  399. ACTION_WRITE_PROTECT = 1023;
  400. ACTION_READ_LINK = 1024;
  401. ACTION_FH_FROM_LOCK = 1026;
  402. ACTION_IS_FILESYSTEM = 1027;
  403. ACTION_CHANGE_MODE = 1028;
  404. ACTION_COPY_DIR_FH = 1030;
  405. ACTION_PARENT_FH = 1031;
  406. ACTION_EXAMINE_ALL = 1033;
  407. ACTION_EXAMINE_FH = 1034;
  408. ACTION_EXAMINE_ALL_END = 1035;
  409. ACTION_SET_OWNER = 1036;
  410. ACTION_LOCK_RECORD = 2008;
  411. ACTION_FREE_RECORD = 2009;
  412. ACTION_ADD_NOTIFY = 4097;
  413. ACTION_REMOVE_NOTIFY = 4098;
  414. ACTION_SERIALIZE_DISK = 4200;
  415. ACTION_GET_DISK_FSSM = 4201;
  416. ACTION_FREE_DISK_FSSM = 4202;
  417. *)
  418. type // Checked OK 04.08.2011 ALB
  419. PErrorString = ^TErrorString;
  420. TErrorString = record
  421. estr_Nums: PLongInt;
  422. estr_Strings: PChar;
  423. end;
  424. type // Checked OK 04.08.2011 ALB
  425. PRootNode = ^TRootNode;
  426. TRootNode = record
  427. rn_TaskArray : BPTR; { BPTR }
  428. rn_ConsoleSegment : BPTR; { BPTR }
  429. rn_Time : TDateStamp;
  430. rn_RestartSeg : Pointer;
  431. rn_Info : BPTR; { BPTR }
  432. rn_FileHandlerSegment: BPTR; { BPTR }
  433. rn_CliList : TMinList;
  434. rn_BootProc : PMsgPort;
  435. rn_ShellSegment : BPTR; { BPTR }
  436. rn_Flags : LongInt;
  437. // Aros Special
  438. rn_RootLock : TSignalSemaphore;
  439. end;
  440. type // Checked OK 04.08.2011 ALB
  441. // AROS Specific
  442. PCLIInfo = ^TCLIInfo;
  443. TCLIInfo = record
  444. ci_Node: TNode;
  445. ci_Process: PProcess;
  446. end;
  447. type // Checked OK 05.08.2011 ALB
  448. PDOSLibrary = ^TDOSLibrary;
  449. TDOSLibrary = record
  450. dl_Lib : TLibrary;
  451. dl_Root : PRootNode;
  452. {$ifdef AROS_BINCOMPAT}
  453. dl_GV : Pointer;
  454. dl_A2 : LongInt;
  455. dl_A5 : LongInt;
  456. dl_A6 : LongInt;
  457. {$endif}
  458. dl_Errors : PErrorString;
  459. dl_TimeReq : PTimeRequest;
  460. dl_UtilityBase : PLibrary;
  461. dl_IntuitionBase: PLibrary;
  462. // AROS Specific private Fields
  463. dl_TimerBase : PDevice;
  464. dl_TimerIO : TTimeRequest;
  465. dl_DevInfo : BPTR; //PDosList;
  466. dl_SysBase : PExecBase;
  467. dl_SegList : BPTR;
  468. dl_NulHandler : PDevice;
  469. dl_NulLock : PUnit;
  470. // LDDemon private Data
  471. dl_LDObjectsListSigSem : TSignalSemaphore;
  472. dl_LDObjectsList : TEList;
  473. dl_LDHandler : TInterrupt;
  474. dl_LDDemonPort : PMsgPort;
  475. dl_LDDemonTask : PProcess;
  476. dl_LDReturn : Cardinal;
  477. // AROS-specific and private. Can go away in future
  478. dl_SYSLock: BPTR;
  479. // The flags are ORed with RootNode->rn_Flags. See below for definitions.
  480. dl_Flags: Cardinal;
  481. end;
  482. const // Checked OK 04.08.2011 ALB
  483. RNB_WILDSTAR = 24;
  484. RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
  485. type // Checked OK 04.08.2011 ALB
  486. PDOSInfo = ^TDOSInfo;
  487. TDOSInfo = record
  488. di_McName : BPTR; { BPTR }
  489. di_DevInfo : BPTR; { BPTR }
  490. di_Devices : BPTR; { BPTR }
  491. di_Handlers : BPTR; { BPTR }
  492. di_NetHand : BPTR; // Alias di_ResList
  493. di_DevLock : TSignalSemaphore;
  494. di_EntryLock : TSignalSemaphore;
  495. di_DeleteLock: TSignalSemaphore;
  496. end;
  497. type // Checked OK 04.08.2011 ALB
  498. PSegment = ^TSegment;
  499. TSegment = record
  500. seg_Next : PSegment; // Pointer to next segment.
  501. seg_UC : LongInt;
  502. seg_Seg : BPTR; { BPTR }
  503. seg_Name : Array[0..3] of char;
  504. { * seg_Name continues * }
  505. end;
  506. const // Checked OK 04.08.2011 ALB
  507. CMD_SYSTEM = -1;
  508. CMD_INTERNAL = -2;
  509. CMD_DISABLED = -999;
  510. type // Checked TODO 04.08.2011 ALB
  511. PDeviceList = ^TDeviceList;
  512. TDeviceList = record
  513. dl_Next : PDeviceList; { BPTR }
  514. dl_Type : LongInt;
  515. dl_Task : PMsgPort;
  516. dl_Lock : BPTR; { BPTR }
  517. dl_VolumeDate: TDateStamp;
  518. dl_LockList : BPTR; { BPTR }
  519. dl_DiskType : LongInt;
  520. dl_unused : LongInt;
  521. // Padding Bytes?
  522. dl_Name : BSTR; { BSTR }
  523. // Missing DosListAROSExt
  524. end;
  525. type // Checked OK 04.08.2011 ALB
  526. PFileLock = ^TFileLock;
  527. TFileLock = record
  528. fl_Link : PFileLock; // (PFileLock) Pointer to next lock.
  529. fl_Key : PtrUInt;
  530. fl_Access: LongInt;
  531. fl_Task : PMsgPort;
  532. fl_Volume: PDeviceList; // (BPTR)
  533. end;
  534. type // Checked OK 04.08.2011 ALB
  535. PCommandLineInterface = ^TCommandLineInterface;
  536. TCommandLineInterface = record
  537. cli_Result2 : LongInt; // Secondary error code, set by last command.
  538. cli_SetName : BSTR; // Name of the current directory.
  539. cli_CommandDir : PFileLock; // Lock of the first directory in path.
  540. cli_ReturnCode : LongInt; // Error code, the last command returned.
  541. cli_CommandName : BSTR; // Name of the command that is currently executed.
  542. cli_FailLevel : LongInt; // Fail-Level as set by the command "FailAt".
  543. cli_Prompt : BSTR; // Current prompt in the CLI window.
  544. cli_StandardInput : PFileLock; // Standard/Default input file.
  545. cli_CurrentInput : PFileLock; // Current input file.
  546. cli_CommandFile : BSTR; // Name of the file that is currently executed.
  547. cli_Interactive : LongInt; // TRUE if the currently CLI is connected to a controlling terminal, otherwise FALSE.
  548. cli_Background : LongInt; // FALSE if there is no controlling terminal, otherwise TRUE.
  549. cli_CurrentOutput : PFileLock; // Current output file. }
  550. cli_DefaultStack : LongInt; // Default stack size as set by the command "Stack"
  551. cli_StandardOutput: PFileLock; // Standard/Default output file.
  552. cli_Module : BPTR; // SegList of currently loaded command.
  553. // Aros Specific Part
  554. cli_Standard_Error: PFileLock; // Standard/Default Error file.
  555. end;
  556. const // Checked OK 04.08.2011 ALB
  557. CLI_DEFAULTSTACK_UNIT = SizeOf(PtrUInt);
  558. type // Checked TODO 04.08.2011 ALB
  559. PDevInfo = ^TDevInfo;
  560. TDevInfo = record
  561. dvi_Next : PDevInfo; { BPTR }
  562. dvi_Type : LongInt;
  563. dvi_Task : PMsgPort;
  564. dvi_Lock : BPTR; { BPTR }
  565. dvi_Handler : BSTR; { BSTR }
  566. dvi_StackSize: LongInt;
  567. dvi_Priority : LongInt;
  568. dvi_Startup : BPTR;
  569. dvi_NoAROS1 : BPTR; { BPTR }
  570. dvi_NoAROS2 : BPTR; { BPTR }
  571. dvi_Name : BSTR; { BSTR }
  572. // missing Aros Extension... DosListAROSExt;
  573. end;
  574. type // Checked TODO 04.08.2011 ALB
  575. PAssignList = ^TAssignList;
  576. TAssignList = record
  577. al_Next: PAssignList; // Pointer to next assign node.
  578. al_Lock: PFileLock; // Lock of on of the directories.
  579. end;
  580. type // Checked TODO 04.08.2011 ALB
  581. PDOSList = ^TDOSList;
  582. TDOSList = record
  583. dol_Next: BPTR; // PDOSList
  584. dol_Type: LongInt;
  585. dol_Task: PMsgPort;
  586. dol_Lock: PFileLock; { BPTR }
  587. case Byte of
  588. 0: ( dol_handler : record
  589. dol_Handler : BSTR; { BSTR }
  590. dol_StackSize: LongInt;
  591. dol_Priority : LongInt;
  592. dol_Startup : BPTR;
  593. dol_NoAROS1 : BPTR; { BPTR }
  594. dol_NoAROS2 : BPTR; { BPTR }
  595. dol_NoAROS3 : BPTR; { BPTR }
  596. end;
  597. );
  598. 1: ( dol_volume : record
  599. dol_VolumeDate: TDateStamp;
  600. dol_LockList : BPTR; { BPTR }
  601. dol_DiskType : LongInt;
  602. dol_unused : BPTR;
  603. end;
  604. );
  605. 2: ( dol_assign : record
  606. dol_AssignName: PChar;
  607. dol_List : PAssignList;
  608. end;
  609. );
  610. 3: ( dol_Misc: array[0..23] of Byte;
  611. dol_Name: BSTR;
  612. );
  613. // missing Aros Extension... DosListAROSExt;
  614. end;
  615. const // Checked OK 04.08.2011 ALB
  616. DLT_DEVICE = 0;
  617. DLT_DIRECTORY = 1;
  618. DLT_VOLUME = 2;
  619. DLT_LATE = 3;
  620. DLT_NONBINDING = 4;
  621. DLT_PRIVATE = -1;
  622. type // Checked OK 04.08.2011 ALB
  623. PDevProc = ^TDevProc;
  624. TDevProc = record
  625. dvp_Port : PMsgPort;
  626. dvp_Lock : PFileLock; { BPTR }
  627. dvp_Flags : DWord; // see below
  628. dvp_DevNode: PDOSList; // Private
  629. end;
  630. const // Checked OK 04.08.2011 ALB
  631. DVPB_UNLOCK = 0;
  632. DVPF_UNLOCK = (1 shl DVPB_UNLOCK);
  633. DVPB_ASSIGN = 1;
  634. DVPF_ASSIGN = (1 shl DVPB_ASSIGN);
  635. const // Checked OK 04.08.2011 ALB
  636. LDB_READ = 0;
  637. LDF_READ = (1 shl LDB_READ);
  638. LDB_WRITE = 1;
  639. LDF_WRITE = (1 shl LDB_WRITE);
  640. LDB_DEVICES = 2;
  641. LDF_DEVICES = (1 shl LDB_DEVICES);
  642. LDB_VOLUMES = 3;
  643. LDF_VOLUMES = (1 shl LDB_VOLUMES);
  644. LDB_ASSIGNS = 4;
  645. LDF_ASSIGNS = (1 shl LDB_ASSIGNS);
  646. LDB_ENTRY = 5;
  647. LDF_ENTRY = (1 shl LDB_ENTRY);
  648. LDB_DELETE = 6;
  649. LDF_DELETE = (1 shl LDB_DELETE);
  650. LDF_ALL = (LDF_DEVICES or LDF_VOLUMES or LDF_ASSIGNS);
  651. const // Checked OK 04.08.2011 ALB
  652. REPORT_STREAM = 0;
  653. REPORT_TASK = 1;
  654. REPORT_LOCK = 2;
  655. REPORT_VOLUME = 3;
  656. REPORT_INSERT = 4;
  657. const // Checked OK 04.08.2011 ALB
  658. ABORT_DISK_ERROR = 296;
  659. ABORT_BUSY = 288;
  660. const // Checked OK 04.08.2011 ALB
  661. RUN_EXECUTE = -1;
  662. RUN_SYSTEM = -2;
  663. RUN_SYSTEM_ASYNCH = -3;
  664. const // Checked OK 04.08.2011 ALB
  665. ST_ROOT = 1;
  666. ST_USERDIR = 2;
  667. ST_SOFTLINK = 3;
  668. ST_LINKDIR = 4;
  669. ST_FILE = -3;
  670. ST_LINKFILE = -4;
  671. ST_PIPEFILE = -5;
  672. { * dos asl definitions
  673. *********************************************************************
  674. * }
  675. type // Checked OK 04.08.2011 ALB
  676. PAChain = ^TAChain;
  677. TAChain = record
  678. an_Child : PAChain;
  679. an_Parent: PAChain;
  680. an_Lock : BPTR;
  681. an_Info : TFileInfoBlock;
  682. an_Flags : ShortInt;
  683. an_String: array[0..0] of Char;
  684. { * an_String continues * }
  685. end;
  686. type // Checked OK 04.08.2011 ALB
  687. PAnchorPath = ^TAnchorPath;
  688. TAnchorPath = record
  689. case Byte of // its not defined in AROS struct just by defines...
  690. 0 : ( ap_First: PAChain;
  691. ap_Last: PAChain;
  692. ap_L1: LongInt;
  693. ap_L2: LongInt;
  694. ap_Length: ShortInt;
  695. );
  696. 1 : ( ap_Base: PAChain;
  697. ap_Current: PAChain;
  698. ap_BreakBits: LongInt;
  699. ap_FoundBreak: LongInt;
  700. ap_Flags: ShortInt;
  701. ap_Reserved: ShortInt;
  702. ap_Strlen: SmallInt;
  703. ap_Info: TFileInfoBlock;
  704. ap_Buf: array[0..255] of char;
  705. { * an_Buf continues * }
  706. );
  707. end;
  708. const // Checked OK 04.08.2011 ALB
  709. // Please check for wildcards in supplied string.
  710. APB_DOWILD = 0;
  711. APF_DOWILD = (1 Shl APB_DOWILD);
  712. // There is actually a wildcard in the supplied string. READ-ONLY
  713. APB_ITSWILD = 1;
  714. APF_ITSWILD = (1 Shl APB_ITSWILD);
  715. // Set, if a directory is to be entered. Applications may clear this bit to prohibit the
  716. // matching-functions from entering a directory.
  717. APB_DODIR = 2;
  718. APF_DODIR = (1 Shl APB_DODIR);
  719. // Set, if directory was already searched. READ-ONLY
  720. APB_DIDDIR = 3;
  721. APF_DIDDIR = (1 Shl APB_DIDDIR);
  722. // Set, if function was out of memory. READ-ONLY
  723. APB_NOMEMERR = 4;
  724. APF_NOMEMERR = (1 Shl APB_NOMEMERR);
  725. // '.' may refer to the current directory (unix-style).
  726. APB_DODOT = 5;
  727. APF_DODOT = (1 Shl APB_DODOT);
  728. // Directory changed since last call.
  729. APB_DirChanged = 6;
  730. APF_DirChanged = (1 Shl APB_DirChanged);
  731. // Follow hardlinks, too.
  732. APB_FollowHLinks = 7;
  733. APF_FollowHLinks = (1 Shl APB_FollowHLinks);
  734. const // Checked OK 04.08.2011 ALB
  735. DDB_PatternBit = 0;
  736. DDF_PatternBit = (1 Shl DDB_PatternBit);
  737. DDB_ExaminedBit = 1;
  738. DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
  739. DDB_Completed = 2;
  740. DDF_Completed = (1 Shl DDB_Completed);
  741. DDB_AllBit = 3;
  742. DDF_AllBit = (1 Shl DDB_AllBit);
  743. DDB_Single = 4;
  744. DDF_Single = (1 Shl DDB_Single);
  745. const // Checked OK 04.08.2011 ALB
  746. P_ANY = $80; // Matches everything ('#?' and '*')
  747. P_SINGLE = $81; // Any character ('?')
  748. P_ORSTART = $82; // Opening parenthesis for OR'ing ('(')
  749. P_ORNEXT = $83; // Field delimiter for OR'ing ('|')
  750. P_OREND = $84; // Closing parenthesis for OR'ing (')')
  751. P_NOT = $85; // Inversion ('~')
  752. P_NOTEND = $86; // Inversion end
  753. P_NOTCLASS = $87; // Inversion class ('^')
  754. P_CLASS = $88; // Class ('[' and ']')
  755. P_REPBEG = $89; // Beginning of repetition ('[')
  756. P_REPEND = $8A; // End of repetition (']')
  757. P_STOP = $8B;
  758. const // Checked OK 04.08.2011 ALB
  759. COMPLEX_BIT = 1;
  760. EXAMINE_BIT = 2;
  761. const // Checked OK 04.08.2011 ALB
  762. ERROR_BUFFER_OVERFLOW = 303;
  763. ERROR_BREAK = 304;
  764. ERROR_NOT_EXECUTABLE = 305;
  765. { * dos hunk definitions
  766. *********************************************************************
  767. * }
  768. const // Checked OK 04.08.2011 ALB
  769. HUNK_UNIT = 999;
  770. HUNK_NAME = 1000;
  771. HUNK_CODE = 1001;
  772. HUNK_DATA = 1002;
  773. HUNK_BSS = 1003;
  774. HUNK_RELOC32 = 1004;
  775. HUNK_ABSRELOC32 = HUNK_RELOC32;
  776. HUNK_RELOC16 = 1005;
  777. HUNK_RELRELOC16 = HUNK_RELOC16;
  778. HUNK_RELOC8 = 1006;
  779. HUNK_RELRELOC8 = HUNK_RELOC8;
  780. HUNK_EXT = 1007;
  781. HUNK_SYMBOL = 1008;
  782. HUNK_DEBUG = 1009;
  783. HUNK_END = 1010;
  784. HUNK_HEADER = 1011;
  785. HUNK_OVERLAY = 1013;
  786. HUNK_BREAK = 1014;
  787. HUNK_DREL32 = 1015;
  788. HUNK_DREL16 = 1016;
  789. HUNK_DREL8 = 1017;
  790. HUNK_LIB = 1018;
  791. HUNK_INDEX = 1019;
  792. HUNK_RELOC32SHORT = 1020;
  793. HUNK_RELRELOC32 = 1021;
  794. HUNK_ABSRELOC16 = 1022;
  795. const // Checked OK 04.08.2011 ALB
  796. HUNKB_ADVISORY = 29;
  797. HUNKB_CHIP = 30;
  798. HUNKB_FAST = 31;
  799. HUNKF_ADVISORY = (1 shl HUNKB_ADVISORY);
  800. HUNKF_CHIP = (1 shl HUNKB_CHIP);
  801. HUNKF_FAST = (1 shl HUNKB_FAST);
  802. const // Checked OK 04.08.2011 ALB
  803. EXT_SYMB = 0;
  804. EXT_DEF = 1;
  805. EXT_ABS = 2;
  806. EXT_REF32 = 129;
  807. EXT_ABSREF32 = EXT_REF32;
  808. EXT_COMMON = 130;
  809. EXT_ABSCOMMON = EXT_COMMON;
  810. EXT_REF16 = 131;
  811. EXT_RELREF16 = EXT_REF16;
  812. EXT_REF8 = 132;
  813. EXT_RELREF8 = EXT_REF8;
  814. EXT_DEXT32 = 133;
  815. EXT_DEXT16 = 134;
  816. EXT_DEXT8 = 135;
  817. EXT_RELREF32 = 136;
  818. EXT_RELCOMMON = 137;
  819. EXT_ABSREF16 = 138;
  820. EXT_ABSREF8 = 139;
  821. { * dos ExAll definitions
  822. *********************************************************************
  823. * }
  824. const // Checked OK 04.08.2011 ALB
  825. ED_NAME = 1;
  826. ED_TYPE = 2;
  827. ED_SIZE = 3;
  828. ED_PROTECTION = 4;
  829. ED_DATE = 5;
  830. ED_COMMENT = 6;
  831. ED_OWNER = 7;
  832. type // Checked OK 04.08.2011 ALB
  833. PExAllData = ^TExAllData;
  834. TExAllData = record
  835. ed_Next : PExAllData;
  836. ed_Name : PChar;
  837. ed_Type : LongInt;
  838. ed_Size : Cardinal;
  839. ed_Prot : Cardinal;
  840. ed_Days : Cardinal;
  841. ed_Mins : Cardinal;
  842. ed_Ticks : Cardinal;
  843. ed_Comment : PChar;
  844. ed_OwnerUID: Word;
  845. ed_OwnerGID: Word;
  846. end;
  847. type // Checked OK 04.08.2011 ALB
  848. PExAllControl = ^TExAllControl;
  849. TexAllControl = record
  850. eac_Entries : Cardinal;
  851. eac_LastKey : PtrUInt; // private
  852. eac_MatchString: PChar;
  853. eac_MatchFunc : PHook;
  854. end;
  855. { * dos record definitions
  856. *********************************************************************
  857. * }
  858. const // Checked OK 04.08.2011 ALB
  859. REC_EXCLUSIVE = 0;
  860. REC_EXCLUSIVE_IMMED = 1;
  861. REC_SHARED = 2;
  862. REC_SHARED_IMMED = 3;
  863. type // Checked OK 04.08.2011 ALB
  864. PRecordLock = ^TRecordLock;
  865. TRecordLock = record
  866. rec_FH : PFileHandle;
  867. rec_Offset: Cardinal;
  868. rec_Length: Cardinal;
  869. rec_Mode : Cardinal;
  870. end;
  871. { * dos tag definitions
  872. *********************************************************************
  873. * }
  874. const // Checked OK 04.08.2011 ALB
  875. SYS_Dummy = (TAG_USER + 32);
  876. SYS_Input = (SYS_Dummy + 1);
  877. SYS_Output = (SYS_Dummy + 2);
  878. SYS_Asynch = (SYS_Dummy + 3);
  879. SYS_UserShell = (SYS_Dummy + 4);
  880. SYS_CustomShell = (SYS_Dummy + 5);
  881. { *** Aros Specific *** }
  882. SYS_Error = (SYS_Dummy + 10);
  883. SYS_ScriptInput = (SYS_Dummy + 11);
  884. SYS_Background = (SYS_Dummy + 12);
  885. SYS_CliNumPtr = (SYS_Dummy + 13);
  886. SYS_DupStream = 1;
  887. const // Checked OK 04.08.2011 ALB
  888. NP_Dummy = (TAG_USER + 1000);
  889. NP_Seglist = (NP_Dummy + 1);
  890. NP_FreeSeglist = (NP_Dummy + 2);
  891. NP_Entry = (NP_Dummy + 3);
  892. NP_Input = (NP_Dummy + 4);
  893. NP_Output = (NP_Dummy + 5);
  894. NP_CloseInput = (NP_Dummy + 6);
  895. NP_CloseOutput = (NP_Dummy + 7);
  896. NP_Error = (NP_Dummy + 8);
  897. NP_CloseError = (NP_Dummy + 9);
  898. NP_CurrentDir = (NP_Dummy + 10);
  899. NP_StackSize = (NP_Dummy + 11);
  900. NP_Name = (NP_Dummy + 12);
  901. NP_Priority = (NP_Dummy + 13);
  902. NP_ConsoleTask = (NP_Dummy + 14);
  903. NP_WindowPtr = (NP_Dummy + 15);
  904. NP_HomeDir = (NP_Dummy + 16);
  905. NP_CopyVars = (NP_Dummy + 17);
  906. NP_Cli = (NP_Dummy + 18);
  907. NP_Path = (NP_Dummy + 19);
  908. NP_CommandName = (NP_Dummy + 20);
  909. NP_Arguments = (NP_Dummy + 21);
  910. NP_NotifyOnDeath = (NP_Dummy + 22);
  911. NP_Synchronous = (NP_Dummy + 23);
  912. NP_ExitCode = (NP_Dummy + 24);
  913. NP_ExitData = (NP_Dummy + 25);
  914. { *** AROS Specific *** }
  915. NP_UserData = (NP_Dummy + 26);
  916. const // Checked OK 04.08.2011 ALB
  917. ADO_Dummy = (TAG_USER + 2000);
  918. ADO_FH_Mode = (ADO_Dummy + 1);
  919. ADO_DirLen = (ADO_Dummy + 2);
  920. ADO_CommNameLen = (ADO_Dummy + 3);
  921. ADO_CommFileLen = (ADO_Dummy + 4);
  922. ADO_PromptLen = (ADO_Dummy + 5);
  923. { * dos stdio definitions
  924. *********************************************************************
  925. * }
  926. const // Checked OK 04.08.2011 ALB
  927. BUF_LINE = 0;
  928. BUF_FULL = 1;
  929. BUF_NONE = 2;
  930. const // Checked OK 04.08.2011 ALB
  931. ENDSTREAMCH = -1;
  932. { * dos env-var definitions
  933. *********************************************************************
  934. * }
  935. type // Checked OK 04.08.2011 ALB
  936. PLocalVar = ^TLocalVar;
  937. TLocalVar = record
  938. lv_Node : TNode;
  939. lv_Flags: Word;
  940. lv_Value: PChar;
  941. lv_Len : Cardinal;
  942. end;
  943. type // Checked OK 04.08.2011 ALB
  944. PScanVarsMsg = ^TScanVarsMsg;
  945. TScanVarsMsg = record
  946. sv_SVMSize: Cardinal; // Size of ScanVarsMsg structure
  947. sv_Flags: Cardinal; // The flags parameter given to ScanVars()
  948. sv_GDir: PChar; // Directory patch for global variables or empty string "\0" for local variables
  949. sv_Name: PChar; // Name of the variable
  950. sv_Var: PChar; // Pointer to the contents of the variable
  951. sv_VarLen: Cardinal; // Size of the variable
  952. end;
  953. const // Checked OK 04.08.2011 ALB
  954. LV_VAR = 0;
  955. LV_ALIAS = 1;
  956. const // Checked OK 04.08.2011 ALB
  957. LVB_IGNORE = 7;
  958. LVF_IGNORE = (1 Shl LVB_IGNORE);
  959. GVB_GLOBAL_ONLY = 8;
  960. GVF_GLOBAL_ONLY = (1 Shl GVB_GLOBAL_ONLY);
  961. GVB_LOCAL_ONLY = 9;
  962. GVF_LOCAL_ONLY = (1 Shl GVB_LOCAL_ONLY);
  963. GVB_BINARY_VAR = 10;
  964. GVF_BINARY_VAR = (1 Shl GVB_BINARY_VAR);
  965. GVB_DONT_NULL_TERM = 11;
  966. GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
  967. GVB_SAVE_VAR = 12;
  968. GVF_SAVE_VAR = (1 Shl GVB_SAVE_VAR);
  969. { * dos ReadArgs definitions
  970. *********************************************************************
  971. * }
  972. type // Checked OK 04.08.2011 ALB
  973. PCSource = ^TCSource;
  974. TCSource = record
  975. CS_Buffer: PChar;
  976. CS_Length: LongInt;
  977. CS_CurChr: LongInt;
  978. end;
  979. type // Checked OK 04.08.2011 ALB
  980. PRDArgs = ^TRDArgs;
  981. TRDArgs = record
  982. RDA_Source : TCSource;
  983. RDA_DAList : PtrUInt;
  984. RDA_Buffer : PChar;
  985. RDA_BufSiz : LongInt;
  986. RDA_ExtHelp: PChar;
  987. RDA_Flags : LongInt;
  988. end;
  989. const // Checked OK 04.08.2011 ALB
  990. RDAB_STDIN = 0;
  991. RDAF_STDIN = (1 Shl RDAB_STDIN);
  992. RDAB_NOALLOC = 1;
  993. RDAF_NOALLOC = (1 Shl RDAB_NOALLOC);
  994. RDAB_NOPROMPT = 2;
  995. RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
  996. const // Checked OK 04.08.2011 ALB
  997. MAX_TEMPLATE_ITEMS = 100;
  998. MAX_MULTIARGS = 128;
  999. { * dos filehandler definitions
  1000. *********************************************************************
  1001. * }
  1002. type // Checked OK 04.08.2011 ALB
  1003. PDosEnvec = ^TDosEnvec;
  1004. TDosEnvec = record
  1005. de_TableSize : PtrUInt;
  1006. de_SizeBlock : PtrUInt;
  1007. de_SecOrg : PtrUInt;
  1008. de_Surfaces : PtrUInt;
  1009. de_SectorPerBlock: PtrUInt;
  1010. de_BlocksPerTrack: PtrUInt;
  1011. de_Reserved : PtrUInt;
  1012. de_PreAlloc : PtrUInt;
  1013. de_Interleave : PtrUInt;
  1014. de_LowCyl : PtrUInt;
  1015. de_HighCyl : PtrUInt;
  1016. de_NumBuffers : PtrUInt;
  1017. de_BufMemType : PtrUInt;
  1018. de_MaxTransfer : PtrUInt;
  1019. de_Mask : PtrUInt;
  1020. de_BootPri : PtrInt;
  1021. de_DosType : PtrUInt;
  1022. de_Baud : PtrUInt;
  1023. de_Control : PtrUInt;
  1024. de_BootBlocks : PtrUInt;
  1025. end;
  1026. const // Checked OK 04.08.2011 ALB
  1027. DE_TABLESIZE = 0;
  1028. DE_SIZEBLOCK = 1;
  1029. DE_BLOCKSIZE = 2;
  1030. DE_NUMHEADS = 3;
  1031. DE_SECSPERBLOCK = 4;
  1032. DE_BLKSPERTRACK = 5;
  1033. DE_RESERVEDBLKS = 6;
  1034. DE_PREFAC = 7;
  1035. DE_INTERLEAVE = 8;
  1036. DE_LOWCYL = 9;
  1037. DE_HIGHCYL = 10;
  1038. DE_UPPERCYL = DE_HIGHCYL;
  1039. DE_NUMBUFFERS = 11;
  1040. DE_BUFMEMTYPE = 12;
  1041. DE_MEMBUFTYPE = DE_BUFMEMTYPE;
  1042. DE_MAXTRANSFER = 13;
  1043. DE_MASK = 14;
  1044. DE_BOOTPRI = 15;
  1045. DE_DOSTYPE = 16;
  1046. DE_BAUD = 17;
  1047. DE_CONTROL = 18;
  1048. DE_BOOTBLOCKS = 19;
  1049. type // Checked OK 04.08.2011 ALB
  1050. PFileSysStartupMsg = ^TFileSysStartupMsg;
  1051. TFileSysStartupMsg = record
  1052. fssm_Unit : PtrUInt;
  1053. fssm_Device : BSTR;
  1054. fssm_Environ: BPTR;
  1055. fssm_Flags : Cardinal;
  1056. end;
  1057. type // Checked TODO 04.08.2011 ALB
  1058. PDeviceNode = ^TDeviceNode;
  1059. TDeviceNode = record
  1060. dn_Next : PDeviceNode;
  1061. dn_Type : Cardinal;
  1062. dn_Task : PMsgPort;
  1063. dn_Lock : BPTR;
  1064. dn_Handler : BSTR;
  1065. dn_StackSize: Cardinal;
  1066. dn_Priority : LongInt;
  1067. dn_Startup : BPTR;
  1068. dn_SegList : BPTR;
  1069. dn_GlobalVec: BPTR;
  1070. dn_Name : BSTR;
  1071. // Missing Extension DosListAROSExt
  1072. end;
  1073. { * dos notification definitions
  1074. *********************************************************************
  1075. * }
  1076. const // Checked OK 04.08.2011 ALB
  1077. NOTIFY_CLASS = $40000000;
  1078. NOTIFY_CODE = $1234;
  1079. type // Checked OK 04.08.2011 ALB
  1080. PNotifyRequest = ^TNotifyRequest;
  1081. TNotifyRequest = record
  1082. nr_Name : PChar;
  1083. nr_FullName: PChar;
  1084. nr_UserData: Cardinal;
  1085. nr_Flags : Cardinal;
  1086. nr_stuff : record
  1087. case Byte of
  1088. 0 : ( nr_Msg : record
  1089. nr_Port: PMsgPort;
  1090. end );
  1091. 1 : ( nr_Signal : record
  1092. nr_Task : PTask;
  1093. nr_SignalNum: Byte;
  1094. nr_pad : array[0..2] of Byte;
  1095. end );
  1096. end;
  1097. nr_Reserved: array[0..3] of Cardinal;
  1098. nr_MsgCount: Cardinal;
  1099. nr_Handler : PMsgPort;
  1100. end;
  1101. type // Checked OK 04.08.2011 ALB
  1102. PNotifyMessage = ^TNotifyMessage;
  1103. TNotifyMessage = record
  1104. nm_ExecMessage: TMessage;
  1105. nm_Class : Cardinal;
  1106. nm_Code : Word;
  1107. nm_NReq : PNotifyRequest;
  1108. nm_DoNotTouch : PtrUInt;
  1109. nm_DoNotTouch2: PtrUInt;
  1110. end;
  1111. const // Checked OK 04.08.2011 ALB
  1112. NRB_SEND_MESSAGE = 0;
  1113. NRB_SEND_SIGNAL = 1;
  1114. NRB_WAIT_REPLY = 3;
  1115. NRB_NOTIFY_INITIAL = 4;
  1116. NRB_MAGIC = 31;
  1117. NRF_SEND_MESSAGE = (1 shl NRB_SEND_MESSAGE);
  1118. NRF_SEND_SIGNAL = (1 shl NRB_SEND_SIGNAL);
  1119. NRF_WAIT_REPLY = (1 shl NRB_WAIT_REPLY);
  1120. NRF_NOTIFY_INITIAL = (1 shl NRB_NOTIFY_INITIAL);
  1121. NRF_MAGIC = (1 shl NRB_MAGIC);
  1122. NR_HANDLER_FLAGS = $ffff0000;