doslibd.inc 32 KB

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