nwsys.inc 20 KB

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