~ubuntu-branches/debian/lenny/fpc/lenny

« back to all changes in this revision

Viewing changes to fpcsrc/rtl/netware/nwsys.inc

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-05-17 17:12:11 UTC
  • mfrom: (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080517171211-9qi33xhd9evfa0kg
Tags: 2.2.0-dfsg1-9
[ Torsten Werner ]
* Add Mazen Neifer to Uploaders field.

[ Mazen Neifer ]
* Moved FPC sources into a version dependent directory from /usr/share/fpcsrc
  to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC
  release.
* Fixed far call issue in compiler preventing building huge binearies.
  (closes: #477743)
* Updated building dependencies, recomennded and suggested packages.
* Moved fppkg to fp-utils as it is just a helper tool and is not required by
  compiler.

Show diffs side-by-side

added added

removed removed

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