nwsys.inc 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. {
  2. $Id$
  3. This file is part of the Free Pascal run time library.
  4. Copyright (c) 1999-2004 by the Free Pascal development team
  5. Copyright (c) 2001-2004 Armin Diehl
  6. Interface to netware clib
  7. See the file COPYING.FPC, included in this distribution,
  8. for details about the copyright.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. **********************************************************************}
  13. CONST Clib = 'clib';
  14. ThreadsNlm = 'threads';
  15. TYPE
  16. dev_t = LONGINT;
  17. ino_t = LONGINT;
  18. unsignedshort = WORD;
  19. unsignedlong = LONGINT;
  20. unsignedint = LONGINT;
  21. off_t = LONGINT;
  22. size_t = LONGINT;
  23. time_t = LONGINT;
  24. NWStatBufT = PACKED RECORD
  25. st_dev : dev_t; (* volume number *)
  26. st_ino : ino_t; (* directory entry number of the st_name *)
  27. st_mode : unsignedshort; (* emulated file mode *)
  28. st_nlink : unsignedshort; (* count of hard links (always 1) *)
  29. st_uid : unsignedlong; (* object id of owner *)
  30. st_gid : unsignedshort; (* group-id (always 0) *)
  31. st_rdev : dev_t; (* device type (always 0) *)
  32. st_size : off_t; (* total file size--files only *)
  33. st_atime : time_t; (* last access date--files only *)
  34. st_mtime : time_t; (* last modify date and time *)
  35. st_ctime : time_t; (* POSIX: last status change time... *)
  36. (* ...NetWare: creation date/time *)
  37. st_btime : time_t; (* last archived date and time *)
  38. st_attr : unsignedlong; (* file attributes *)
  39. st_archivedID : unsignedlong; (* user/object ID of last archive *)
  40. st_updatedID : unsignedlong; (* user/object ID of last update *)
  41. st_inheritedRightsMask
  42. : unsignedshort; (* inherited rights mask *)
  43. st_originatingNameSpace
  44. : BYTE; (* namespace of creation *)
  45. st_name : ARRAY [0..255] OF CHAR;
  46. (* TARGET_NAMESPACE name *)
  47. st_blksize : LONGINT;
  48. st_blocks : LONGINT;
  49. st_flags : LONGINT;
  50. st_spare : ARRAY [0..3] OF LONGINT;
  51. END;
  52. FUNCTION _stat (path : PCHAR; VAR buf : NWStatBufT) : LONGINT; CDECL; EXTERNAL Clib NAME 'stat_411';
  53. FUNCTION _fstat (Fileno : LONGINT; VAR buf : NWStatBufT) : LONGINT; CDECL; EXTERNAL CLib NAME 'fstat_411';
  54. PROCEDURE NWFree (P : POINTER); CDECL; EXTERNAL Clib NAME 'free';
  55. PROCEDURE PressAnyKeyToContinue; CDecl; EXTERNAL; // Clib;
  56. PROCEDURE ExitThread (action_code, termination_code : LONGINT); CDecl; EXTERNAL CLib;
  57. FUNCTION _BeginThread (func, stack : pointer; Stacksize : LONGINT; arg : pointer) : LONGINT; Cdecl; EXTERNAL CLib NAME 'BeginThread';
  58. FUNCTION _GetThreadDataAreaPtr : POINTER; CDecl; EXTERNAL CLib NAME 'GetThreadDataAreaPtr';
  59. PROCEDURE _SaveThreadDataAreaPtr (P : POINTER); CDecl; EXTERNAL CLib NAME 'SaveThreadDataAreaPtr';
  60. PROCEDURE _exit (ExitCode : LONGINT); CDecl; EXTERNAL CLib;
  61. function _SuspendThread(threadID:longint):longint; cdecl;external ThreadsNlm name 'SuspendThread';
  62. function _GetThreadID:longint; cdecl;external ThreadsNlm name 'GetThreadID';
  63. procedure _ThreadSwitchWithDelay; cdecl;external ThreadsNlm name 'ThreadSwitchWithDelay';
  64. function _GetThreadName(threadID:longint; var tName):longint; cdecl;external ThreadsNlm name 'GetThreadName';
  65. PROCEDURE ConsolePrintf (FormatStr : PCHAR; Param : LONGINT); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  66. PROCEDURE ConsolePrintf (FormatStr : PCHAR; Param : pchar); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  67. PROCEDURE ConsolePrintf (FormatStr : PCHAR; P1,P2 : LONGINT); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  68. PROCEDURE ConsolePrintf (FormatStr : PCHAR; P1,P2,P3 : LONGINT); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  69. PROCEDURE ConsolePrintf (FormatStr : PCHAR; P1,P2,P3,P4 : LONGINT); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  70. PROCEDURE ConsolePrintf (FormatStr : PCHAR); CDecl; EXTERNAL CLib Name 'ConsolePrintf';
  71. // this gives internal compiler error 1234124 ??
  72. //PROCEDURE ConsolePrintf (FormatStr : PCHAR; Param : array of const); CDecl; EXTERNAL CLib;
  73. PROCEDURE _printf (FormatStr : PCHAR; Param : LONGINT); CDecl; EXTERNAL CLib;
  74. PROCEDURE _printf (FormatStr : PCHAR); CDecl; EXTERNAL CLib;
  75. // this gives internet compiler error 1234124 ??
  76. // PROCEDURE _printf (FormatStr : PCHAR; Param : array of const); CDecl; EXTERNAL CLib;
  77. // values for __action_code used with ExitThread()
  78. CONST
  79. TSR_THREAD = -1; //-Terminate only the current thread.
  80. EXIT_THREAD = 0; //-Terminate the current thread; if the current thread is
  81. // also the last thread, terminate the NLM.
  82. EXIT_NLM = 1; //-Terminate the entire NLM.
  83. FUNCTION _GetStdIn : POINTER; CDECL; EXTERNAL Clib NAME '__get_stdin'; // result: **FILE
  84. FUNCTION _GetStdOut : POINTER; CDECL; EXTERNAL Clib NAME '__get_stdout';
  85. FUNCTION _GetStdErr : POINTER; CDECL; EXTERNAL Clib NAME '__get_stderr';
  86. // FileIO by Fileno
  87. FUNCTION _open (FileName : PCHAR; access, mode : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'open';
  88. FUNCTION _close (FileNo : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'close';
  89. FUNCTION _lseek (FileNo,Pos,whence :LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'lseek';
  90. FUNCTION _chsize (FileNo,Pos : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'chsize';
  91. FUNCTION _tell (FileNo : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'tell';
  92. FUNCTION _write (FileNo : LONGINT; BufP : POINTER; Len : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'write';
  93. FUNCTION _read (FileNo : LONGINT; BufP : POINTER; Len : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'read';
  94. FUNCTION _filelength (filedes : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'filelength';
  95. FUNCTION _lock (filedes : LONGINT; Offset, Length : Cardinal) : LONGINT; CDECL; EXTERNAL Clib NAME 'lock';
  96. FUNCTION _unlock (filedes : LONGINT; Offset, Length : Cardinal) : LONGINT; CDECL; EXTERNAL Clib NAME 'unlock';
  97. TYPE
  98. NWModifyStructure =
  99. RECORD
  100. MModifyName : PCHAR;
  101. MFileAttributes : LONGINT;
  102. MFileAttributesMask : LONGINT;
  103. MCreateDate : WORD;
  104. MCreateTime : WORD;
  105. MOwnerID : LONGINT;
  106. MLastArchivedDate : WORD;
  107. MLastArchivedTime : WORD;
  108. MLastArchivedID : LONGINT;
  109. MLastUpdatedDate : WORD;
  110. MLastUpdatedTime : WORD;
  111. MLastUpdatedID : LONGINT;
  112. MLastAccessedDate : WORD;
  113. MInheritanceGrantMask : WORD;
  114. MInheritanceRevokeMask : WORD;
  115. MMaximumSpace : LONGINT;
  116. MLastUpdatedInSeconds : LONGINT
  117. END;
  118. CONST MModifyNameBit = $0001;
  119. MFileAtrributesBit = $0002;
  120. MCreateDateBit = $0004;
  121. MCreateTimeBit = $0008;
  122. MOwnerIDBit = $0010;
  123. MLastArchivedDateBit = $0020;
  124. MLastArchivedTimeBit = $0040;
  125. MLastArchivedIDBit = $0080;
  126. MLastUpdatedDateBit = $0100;
  127. MLastUpdatedTimeBit = $0200;
  128. MLastUpdatedIDBit = $0400;
  129. MLastAccessedDateBit = $0800;
  130. MInheritanceRestrictionMaskBit = $1000;
  131. MMaximumSpaceBit = $2000;
  132. MLastUpdatedInSecondsBit = $4000;
  133. // Directory
  134. FUNCTION _chdir (path : PCHAR) : LONGINT; CDECL; EXTERNAL CLib NAME 'chdir';
  135. FUNCTION _getcwd (path : PCHAR; pathlen : LONGINT) : PCHAR; CDECL; EXTERNAL CLib NAME 'getcwd';
  136. FUNCTION _mkdir (path : PCHAR) : LONGINT; CDECL; EXTERNAL CLib NAME 'mkdir';
  137. FUNCTION _rmdir (path : PCHAR) : LONGINT; CDECL; EXTERNAL CLib NAME 'rmdir';
  138. FUNCTION _ChangeDirectoryEntry (PathName : PCHAR; VAR ModyStruct : NWModifyStructure; ModifyBits, AllowWildcard : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'ChangeDirectoryEntry';
  139. // get fileno from stream
  140. FUNCTION _fileno (Handle : LONGINT) : LONGINT; CDECL; EXTERNAL Clib NAME 'fileno';
  141. FUNCTION _isatty (FileNo : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'isatty';
  142. (* values for 'o_flag' in open()... *)
  143. CONST O_RDONLY = $0000; (* open for read only *)
  144. O_WRONLY = $0001; (* open for write only *)
  145. O_RDWR = $0002; (* open for read and write *)
  146. O_ACCMODE = $0003; (* AND with value to extract access flags *)
  147. O_APPEND = $0010; (* writes done at end of file *)
  148. O_CREAT = $0020; (* create new file *)
  149. O_TRUNC = $0040; (* truncate existing file *)
  150. O_EXCL = $0080; (* exclusive open *)
  151. O_TEXT = $0100; (* text file--unsupported *)
  152. O_BINARY = $0200; (* binary file *)
  153. O_NDELAY = $0400; (* nonblocking flag *)
  154. O_NOCTTY = $0800; (* currently unsupported *)
  155. O_NONBLOCK = O_NDELAY;
  156. // File Utils
  157. FUNCTION _unlink (FileName : PCHAR) : LONGINT; CDECL; EXTERNAL CLib NAME 'unlink';
  158. FUNCTION _rename (oldpath, newpath : PCHAR) : LONGINT; CDECL; EXTERNAL Clib NAME 'rename';
  159. // Error
  160. TYPE _PLONGINT = ^LONGINT;
  161. FUNCTION __get_errno_ptr : _PLONGINT; CDECL; EXTERNAL Clib;
  162. // Memory
  163. FUNCTION _malloc (size : LONGINT) : POINTER; CDECL; EXTERNAL CLib NAME 'malloc';
  164. FUNCTION _realloc (p : POINTER; size : LONGINT) : POINTER; CDECL; EXTERNAL CLib NAME 'realloc';
  165. PROCEDURE _free (what : POINTER); CDECL; EXTERNAL CLib NAME 'free';
  166. FUNCTION _stackavail : CARDINAL; CDECL; EXTERNAL CLib NAME 'stackavail';
  167. // Debug
  168. PROCEDURE _EnterDebugger; CDECL; EXTERNAL Clib NAME 'EnterDebugger';
  169. // String
  170. FUNCTION _strlen (P : PCHAR) : LONGINT; CDECL; EXTERNAL Clib NAME 'strlen';
  171. // Time/Date
  172. TYPE NWTM = RECORD
  173. tm_sec, tm_min, tm_hour,
  174. tm_mday, tm_mon, tm_year,
  175. tm_wday, tm_yday, tm_isdst : LONGINT;
  176. END;
  177. PNWTM = ^NWTM;
  178. FUNCTION _localtime (VAR time : time_t) : PNWTM; CDECL; EXTERNAL Clib NAME 'localtime';
  179. FUNCTION _time (tloc : POINTER) : LONGINT; CDECL; EXTERNAL Clib NAME 'time';
  180. PROCEDURE _ConvertTimeToDOS (time : time_t; VAR DosDate, DosTime : WORD); CDECL; EXTERNAL Clib NAME '_ConvertTimeToDOS';
  181. PROCEDURE _tzset; CDECL; EXTERNAL Clib NAME 'tzset';
  182. //-----------------------------------------------------------------------
  183. CONST NWDEFCONN_HANDLE = 0;
  184. TYPE NWCONN_HANDLE = LONGINT;
  185. NWRCODE = LONGINT;
  186. NWDateAndTime = PACKED RECORD
  187. Year,Month,Day,
  188. Hour,Minute,Second,DayOfWeek : BYTE;
  189. END;
  190. PROCEDURE GetFileServerDateAndTime (VAR TimeBuf : NWDateAndTime); CDECL; EXTERNAL CLib NAME 'GetFileServerDateAndTime';
  191. FUNCTION SetFileServerDateAndTime(year:WORD; month:WORD; day:WORD; hour:WORD; minute:WORD;
  192. second:WORD):longint;cdecl; EXTERNAL CLib Name 'SetFileServerDateAndTime';
  193. TYPE FILE_SERV_INFO = record
  194. serverName : array[0..47] of char;
  195. netwareVersion : BYTE;
  196. netwareSubVersion : BYTE;
  197. maxConnectionsSupported : WORD;
  198. connectionsInUse : WORD;
  199. maxVolumesSupported : WORD;
  200. revisionLevel : BYTE;
  201. SFTLevel : BYTE;
  202. TTSLevel : BYTE;
  203. peakConnectionsUsed : WORD;
  204. accountingVersion : BYTE;
  205. VAPversion : BYTE;
  206. queingVersion : BYTE;
  207. printServerVersion : BYTE;
  208. virtualConsoleVersion : BYTE;
  209. securityRestrictionLevel: BYTE;
  210. internetBridgeSupport : BYTE;
  211. reserved : array[0..59] of BYTE;
  212. CLibMajorVersion : BYTE;
  213. CLibMinorVersion : BYTE;
  214. CLibRevision : BYTE;
  215. end;
  216. pFILE_SERV_INFO = ^FILE_SERV_INFO;
  217. FUNCTION GetServerInformation(returnSize:longint; serverInfo:pFILE_SERV_INFO):longint;cdecl; EXTERNAL CLib NAME 'GetServerInformation';
  218. // Directory
  219. TYPE NWDirEnt =
  220. PACKED RECORD
  221. d_attr : LONGINT;
  222. d_time : WORD; {modification time}
  223. d_date : WORD; {modification date}
  224. d_size : LONGINT; {filesize}
  225. d_ino : LONGINT; {serial number}
  226. d_dev : LONGINT; {volume number}
  227. d_cdatetime : time_t; {creation date and time}
  228. d_adatetime : time_t; {last access - files only}
  229. d_bdatetime : time_t; {last archive date and time}
  230. d_uid : LONGINT; {owner id (object id) }
  231. d_archivedID : LONGINT;
  232. d_updatedID : LONGINT;
  233. d_nameDOS : ARRAY [0..12] OF CHAR;
  234. d_inheritedRightsMask : WORD;
  235. d_originatingNameSpace: BYTE;
  236. d_ddatetime : time_t; {deleted date time}
  237. d_deletedID : LONGINT;
  238. {---- new fields starting in v4.11 ----}
  239. d_name : ARRAY [0..255] OF CHAR; { enty's namespace name }
  240. END;
  241. PNWDirEnt = ^NWDirEnt;
  242. FUNCTION _opendir (pathname : PCHAR) : PNWDirEnt; CDECL; EXTERNAL CLib NAME 'opendir_411';
  243. FUNCTION _closedir (dirH : PNWDirEnt) : LONGINT; CDECL; EXTERNAL CLib NAME 'closedir';
  244. FUNCTION _readdir (dirH : PNWDirEnt) : PNWDirEnt; CDECL; EXTERNAL CLib NAME 'readdir';
  245. FUNCTION _SetReaddirAttribute (dirH : PNWDirEnt; Attribute : LONGINT) : LONGINT; EXTERNAL CLib NAME 'SetReaddirAttribute';
  246. // Environment
  247. FUNCTION _getenv (name : PCHAR) : PCHAR; CDECL; EXTERNAL CLib NAME 'getenv';
  248. // Volumes
  249. FUNCTION _GetVolumeName (volumeNumber : LONGINT; volumeName : PCHAR) : LONGINT; CDECL; EXTERNAL CLib NAME 'GetVolumeName';
  250. FUNCTION _GetVolumeNumber (volumeName : PCHAR; VAR volumeNumber : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'GetVolumeNumber';
  251. FUNCTION _GetVolumeInfoWithNumber (VolumeNumber : BYTE;
  252. VolumeName : PCHAR;
  253. VAR TotalBlocks : WORD;
  254. VAR SectorsPerBlock : WORD;
  255. VAR availableBlocks : WORD;
  256. VAR totalDirectorySlots : WORD;
  257. VAR availableDirSlots : WORD;
  258. VAR volumeisRemovable : WORD) : LONGINT; CDECL; EXTERNAL CLib NAME 'GetVolumeInfoWithNumber';
  259. FUNCTION _GetNumberOfVolumes : LONGINT; CDECL; EXTERNAL CLib NAME 'GetNumberOfVolumes';
  260. // Screen/Keyboad
  261. PROCEDURE _CopyToScreenMemory (Height, Width : WORD; Data : POINTER; x, y : WORD); CDECL; EXTERNAL Clib NAME 'CopyToScreenMemory';
  262. PROCEDURE _CopyFromScreenMemory (Height, Width : WORD; Data : POINTER; x, y : WORD); CDECL; EXTERNAL CLib NAME 'CopyFromScreenMemory';
  263. FUNCTION _DisplayInputCursor : LONGINT; CDECL; EXTERNAL CLib NAME 'DisplayInputCursor';
  264. FUNCTION _HideInputCursor : LONGINT; CDECL; EXTERNAL CLib NAME 'HideInputCursor';
  265. FUNCTION _SetPositionOfInputCursor (row,col : WORD): LONGINT; CDECL; EXTERNAL Clib NAME 'SetPositionOfInputCursor';
  266. PROCEDURE _GotoXY (col, row : WORD); CDECL; EXTERNAL Clib NAME 'gotoxy';
  267. FUNCTION _GetSizeOfScreen (VAR height,width : WORD): LONGINT; CDECL; EXTERNAL CLib NAME 'GetSizeOfScreen';
  268. FUNCTION _IsColorMonitor : LONGINT; CDECL; EXTERNAL CLib NAME 'IsColorMonitor';
  269. PROCEDURE _RingTheBell; CDECL; EXTERNAL CLib NAME 'RingTheBell';
  270. FUNCTION _SetCursorShape (startline,endline : BYTE) : WORD; CDECL; EXTERNAL CLib NAME 'SetCursorShape';
  271. FUNCTION _GetCursorShape (VAR startline,endline : BYTE) : WORD; CDECL; EXTERNAL CLib NAME 'GetCursorShape';
  272. FUNCTION _wherex : WORD; CDECL; EXTERNAL CLib NAME 'wherex';
  273. FUNCTION _wherey : WORD; CDECL; EXTERNAL CLib NAME 'wherey';
  274. PROCEDURE _clrscr; CDECL; EXTERNAL CLib NAME 'clrscr';
  275. FUNCTION _kbhit : LONGINT; CDECL; EXTERNAL Clib NAME 'kbhit';
  276. FUNCTION _getch : CHAR; CDECL; EXTERNAL CLib NAME 'getch';
  277. PROCEDURE _delay (miliseconds : longint); CDECL; EXTERNAL Clib NAME 'delay';
  278. FUNCTION _SetCtrlCharCheckMode (Enabled : BOOLEAN) : BOOLEAN; CDECL; EXTERNAL CLib NAME 'SetCtrlCharCheckMode';
  279. FUNCTION _SetAutoScreenDestructionMode (Enabled : BOOLEAN) : BOOLEAN; CDECL; EXTERNAL CLib NAME 'SetAutoScreenDestructionMode';
  280. // Misc
  281. FUNCTION _memcpy (Dest, Src : POINTER; Len : LONGINT) : POINTER; CDECL; EXTERNAL Clib NAME 'memcpy';
  282. FUNCTION _OpenLocalSemaphore (InitialValue : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'OpenLocalSemaphore';
  283. FUNCTION _WaitOnLocalSemaphore (semaphoreHandle : LONGINT) : LONGINT; CDECL; EXTERNAL Clib NAME 'WaitOnLocalSemaphore';
  284. FUNCTION _SignalLocalSemaphore (semaphoreHandle : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'SignalLocalSemaphore';
  285. FUNCTION _CloseLocalSemaphore (semaphoreHandle : LONGINT) : LONGINT; CDECL; EXTERNAL CLib NAME 'CloseLocalSemaphore';
  286. FUNCTION _EnterCritSec : LONGINT; CDecl; EXTERNAL CLib NAME 'EnterCritSec';
  287. FUNCTION _ExitCritSec : LONGINT; CDecl; EXTERNAL CLib NAME 'ExitCritSec';
  288. FUNCTION _SetThreadGroupID (id : longint) : longint; CDecl; EXTERNAL CLib NAME 'SetThreadGroupID';
  289. FUNCTION _GetThreadGroupID : longint; CDecl; EXTERNAL CLib NAME 'GetThreadGroupID';
  290. CONST _SIGTERM = 6;
  291. PROCEDURE _Signal (Sig : longint; SigFunc : pointer); CDECL; EXTERNAL Clib NAME 'signal';
  292. FUNCTION _SetCurrentNameSpace (newNameSpace : BYTE) : BYTE; CDECL; EXTERNAL Clib NAME 'SetCurrentNameSpace';
  293. FUNCTION _SetTargetNameSpace (newNameSpace : BYTE) : BYTE; CDECL; EXTERNAL Clib NAME 'SetTargetNameSpace';
  294. CONST
  295. NW_NS_DOS = 0;
  296. NW_NS_MAC = 1;
  297. NW_NS_NFS = 2;
  298. NW_NS_FTAM = 3;
  299. NW_NS_LONG = 4;
  300. function _NWAddSearchPathAtEnd (searchPath : pchar; var number : longint) : longint; cdecl; external Clib name 'NWAddSearchPathAtEnd';
  301. function _NWDeleteSearchPath (searchPathNumber : longint) : longint; cdecl; external Clib name 'NWDeleteSearchPath';
  302. function _NWInsertSearchPath (searchPathNumber : longint; path : pchar) : longint; cdecl; external Clib name 'NWInsertSearchPath';
  303. function _NWGetSearchPathElement (searchPathNumber : longint; var isDOSSearchPath : longint; searchPath : pchar) : longint; cdecl; external Clib name 'NWGetSearchPathElement';
  304. // values for __mode used with spawnxx()
  305. CONST
  306. P_WAIT = 0;
  307. P_NOWAIT = 1;
  308. P_OVERLAY = 2;
  309. P_NOWAITO = 4;
  310. P_SPAWN_IN_CURRENT_DOMAIN = 8;
  311. //function spawnlp(mode:longint; path:Pchar; arg0:Pchar; args:array of const):longint;cdecl;external CLib name 'spawnlp';
  312. function spawnlp(mode:longint; path:Pchar; arg0:Pchar):longint;cdecl;external Clib name 'spawnlp';
  313. function spawnvp(mode:longint; path:Pchar; argv:PPchar):longint;cdecl;external Clib name 'spawnvp';
  314. {
  315. $Log$
  316. Revision 1.11 2004-09-26 19:25:49 armin
  317. * exiting threads at nlm unload
  318. Revision 1.10 2004/08/01 20:02:48 armin
  319. * changed dir separator from \ to /
  320. * long namespace by default
  321. * dos.exec implemented
  322. * getenv ('PATH') is now supported
  323. * changed FExpand to global version
  324. * fixed heaplist growth error
  325. * support SysOSFree
  326. * stackcheck was without saveregisters
  327. * fpc can compile itself on netware
  328. Revision 1.9 2003/03/25 18:17:54 armin
  329. * support for fcl, support for linking without debug info
  330. * renamed winsock2 to winsock for win32 compatinility
  331. * new sockets unit for netware
  332. * changes for compiler warnings
  333. Revision 1.8 2003/02/16 17:46:11 armin
  334. * typo fixed
  335. Revision 1.7 2002/09/07 16:01:20 peter
  336. * old logs removed and tabs fixed
  337. Revision 1.6 2002/04/01 15:20:08 armin
  338. + unload module no longer shows: Module did not release...
  339. + check-function will no longer be removed when smartlink is on
  340. Revision 1.5 2002/03/30 09:09:47 armin
  341. + support check-function for netware
  342. Revision 1.4 2002/03/08 19:06:47 armin
  343. * Additional routines needed for MT
  344. }