source: trunk/Sibyl/RTL/BSEDOS.PAS@ 7

Last change on this file since 7 was 7, checked in by RBRi, 19 years ago

+ sibyl staff

  • Property svn:eol-style set to native
File size: 73.1 KB
Line 
1UNIT BseDos;
2
3{****************************** Module Header *****************************
4* *
5* Module Name: BSEDOS.PAS *
6* *
7* OS/2 Base include file. *
8* *
9***************************************************************************}
10
11INTERFACE
12
13USES Os2Def,BseTib,BseExcpt;
14
15{ Access protection }
16CONST
17 PAG_READ =$00000001; { read access }
18 PAG_WRITE =$00000002; { write access }
19 PAG_EXECUTE =$00000004; { execute access }
20 PAG_GUARD =$00000008; { guard protection }
21 PAG_DEFAULT =$00000400; { default (initial) access }
22
23{ Commit}
24 PAG_COMMIT =$00000010; { commit storage }
25 PAG_DECOMMIT =$00000020; { decommit storage }
26
27{ Allocation attributes }
28 OBJ_TILE =$00000040; { tile object }
29 OBJ_PROTECTED =$00000080; { protect object
30 NOTE: This flag is NOT available at
31 the api level }
32 OBJ_GETTABLE =$00000100; { gettable by other processes }
33 OBJ_GIVEABLE =$00000200; { giveable to other processes }
34
35
36 fPERM =PAG_EXECUTE OR PAG_READ OR PAG_WRITE;
37 fSHARE =OBJ_GETTABLE OR OBJ_GIVEABLE;
38
39{ DosAllocMem flags }
40 fALLOC =OBJ_TILE OR PAG_COMMIT OR fPERM;
41
42
43{ DosAllocSharedMem flags }
44 fALLOCSHR =OBJ_TILE OR PAG_COMMIT OR fSHARE OR fPERM;
45
46{ DosGetNamedSharedMem flags }
47 fGETNMSHR =fPERM;
48
49{ DosGetSharedMem flags }
50 fGETSHR =fPERM;
51
52{ DosGiveSharedMem flags }
53 fGIVESHR =fPERM;
54
55{ DosSetMem flags }
56 fSET =PAG_COMMIT + PAG_DECOMMIT + PAG_DEFAULT + fPERM;
57
58{ Dos32SubSet flags }
59 DOSSUB_INIT =$01; { initialize memory object for
60 suballocation }
61 DOSSUB_GROW =$02; { increase size of memory pool
62 for suballocation }
63 DOSSUB_SPARSE_OBJ =$04; { indicator for DosSub to
64 manage the commitment of
65 pages spanned by the memory pool }
66 DOSSUB_SERIALIZE =$08; { indicates that access to the
67 memory pool is to be
68 serialized by DosSub }
69
70
71{ Allocation type (returned from DosQueryMem) }
72 PAG_SHARED =$00002000; { shared object }
73 PAG_FREE =$00004000; { pages are free }
74 PAG_BASE =$00010000; { first page in object }
75
76
77{ DosExit codes }
78CONST
79 EXIT_THREAD =0;
80 EXIT_PROCESS =1;
81
82TYPE
83 PFNTHREAD=POINTER;
84
85{ Action code values }
86CONST
87 DCWA_PROCESS =0;
88 DCWA_PROCESSTREE =1;
89
90 { Wait option values }
91
92 DCWW_WAIT =0;
93 DCWW_NOWAIT =1;
94
95{ Thread Flags for DosCreateThread options 59468 }
96
97 CREATE_READY =0; { defect 65437 }
98 CREATE_SUSPENDED =1;
99 STACK_SPARSE =0;
100 STACK_COMMITTED =2;
101
102TYPE
103 PRESULTCODES=^RESULTCODES;
104 RESULTCODES=RECORD
105 codeTerminate:ULONG;
106 codeResult:ULONG;
107 END;
108
109
110{ User's Debug Buffer structure }
111
112TYPE
113 PDbgBuf=^TDbgBuf;
114 TDbgBuf=RECORD
115 Pid:PID; { Debuggee Process id }
116 Tid:TID; { Debuggee Thread id }
117 Cmd:LONGINT; { Command or Notification }
118 Value:LONGINT; { Generic Data Value }
119 Addr:LONGWORD; { Debuggee Address }
120 Buffer:LONGWORD; { Debugger Buffer Address }
121 Len:LONGWORD; { Length of Range }
122 index:LONGWORD; { Generic Identifier Index }
123 MTE:LONGWORD; { Module Table Entry Handle }
124 EAX:LONGWORD; { Register Set }
125 ECX:LONGWORD;
126 EDX:LONGWORD;
127 EBX:LONGWORD;
128 ESP:LONGWORD;
129 EBP:LONGWORD;
130 ESI:LONGWORD;
131 EDI:LONGWORD;
132 EFlags:LONGWORD;
133 EIP:LONGWORD;
134 CSLim:LONGWORD;
135 CSBase:LONGWORD;
136 CSAcc:BYTE;
137 CSAtr:BYTE;
138 CS:WORD;
139 DSLim:LONGWORD;
140 DSBase:LONGWORD;
141 DSAcc:BYTE;
142 DSAtr:BYTE;
143 DS:WORD;
144 ESLim:LONGWORD;
145 ESBase:LONGWORD;
146 ESAcc:BYTE;
147 ESAtr:BYTE;
148 ES:WORD;
149 FSLim:LONGWORD;
150 FSBase:LONGWORD;
151 FSAcc:BYTE;
152 FSAtr:BYTE;
153 FS:WORD;
154 GSLim:LONGWORD;
155 GSBase:LONGWORD;
156 GSAcc:BYTE;
157 GSAtr:BYTE;
158 GS:WORD;
159 SSLim:LONGWORD;
160 SSBase:LONGWORD;
161 SSAcc:BYTE;
162 SSAtr:BYTE;
163 SS:WORD;
164 END;
165
166{ DosDebug Command Numbers
167 *
168 * These numbers are placed in the Cmd field of the uDB on
169 * entry to DosDebug.
170 *
171 * These numbers identify which command DosDebug is requested
172 * to perform.
173 *
174 }
175
176CONST
177 DBG_C_Null =0; { Null }
178 DBG_C_ReadMem =1; { Read Word }
179 DBG_C_ReadMem_I =1; { Read Word }
180 DBG_C_ReadMem_D =2; { Read Word (same as 1) }
181 DBG_C_ReadReg =3; { Read Register Set }
182 DBG_C_WriteMem =4; { Write Word }
183 DBG_C_WriteMem_I =4; { Write Word }
184 DBG_C_WriteMem_D =5; { Write Word (same as 4) }
185 DBG_C_WriteReg =6; { Write Register Set }
186 DBG_C_Go =7; { Go }
187 DBG_C_Term =8; { Terminate }
188 DBG_C_SStep =9; { Single Step }
189 DBG_C_Stop =10; { Stop }
190 DBG_C_Freeze =11; { Freeze Thread }
191 DBG_C_Resume =12; { Resume Thread }
192 DBG_C_NumToAddr =13; { Object Number to Address }
193 DBG_C_ReadCoRegs =14; { Read Coprocessor Registers }
194 DBG_C_WriteCoRegs =15; { Write Coprocessor Registers }
195 { 16 is reserved }
196 DBG_C_ThrdStat =17; { Get Thread Status }
197 DBG_C_MapROAlias =18; { Map read-only alias }
198 DBG_C_MapRWAlias =19; { Map read-write alias }
199 DBG_C_UnMapAlias =20; { Unmap Alias }
200 DBG_C_Connect =21; { Connect to Debuggee }
201 DBG_C_ReadMemBuf =22; { Read Memory Buffer }
202 DBG_C_WriteMemBuf =23; { Write Memory Buffer }
203 DBG_C_SetWatch =24; { Set Watchpoint }
204 DBG_C_ClearWatch =25; { Clear Watchpoint }
205 DBG_C_RangeStep =26; { Range Step }
206 DBG_C_Continue =27; { Continue after an Exception }
207 DBG_C_AddrToObject =28; { Address to Object }
208 DBG_C_XchgOpcode =29; { Exchange opcode and go }
209 DBG_C_LinToSel =30; { 32 to 16 conversion A001}
210 DBG_C_SelToLin =31; { 16 to 32 conversion A001}
211
212 {------ Constants -------------------}
213 DBG_L_386 =1;
214 DBG_O_OBJMTE =$10000000;
215
216 {------ Notifications ---------------}
217 DBG_N_SUCCESS = 0;
218 DBG_N_ERROR =-1;
219 DBG_N_ProcTerm =-6;
220 DBG_N_Exception =-7;
221 DBG_N_ModuleLoad =-8;
222 DBG_N_CoError =-9;
223 DBG_N_ThreadTerm =-10;
224 DBG_N_AsyncStop =-11;
225 DBG_N_NewProc =-12;
226 DBG_N_AliasFree =-13;
227 DBG_N_Watchpoint =-14;
228 DBG_N_ThreadCreate =-15;
229 DBG_N_ModuleFree =-16;
230 DBG_N_RangeStep =-17;
231
232 DBG_X_PRE_FIRST_CHANCE = 0;
233 DBG_X_FIRST_CHANCE = 1;
234 DBG_X_LAST_CHANCE = 2;
235 DBG_X_STACK_INVALID = 3;
236
237 DBG_W_Local =$0000001;
238 DBG_W_Global =$0000002;
239 DBG_W_Execute =$00010000;
240 DBG_W_Write =$00020000;
241 DBG_W_ReadWrite =$00030000;
242
243{ codeTerminate values (also passed to ExitList routines) }
244
245CONST
246 TC_EXIT =0;
247 TC_HARDERROR =1;
248 TC_TRAP =2;
249 TC_KILLPROCESS =3;
250 TC_EXCEPTION =4;
251
252TYPE
253 PFNEXITLIST=POINTER;
254
255
256{ DosExitList functions }
257
258CONST
259 EXLST_ADD =1;
260 EXLST_REMOVE =2;
261 EXLST_EXIT =3;
262
263
264{ DosExecPgm functions }
265CONST
266 EXEC_SYNC =0;
267 EXEC_ASYNC =1;
268 EXEC_ASYNCRESULT =2;
269 EXEC_TRACE =3;
270 EXEC_BACKGROUND =4;
271 EXEC_LOAD =5;
272 EXEC_ASYNCRESULTDB =6;
273
274
275
276{ Priority scopes }
277CONST
278 PRTYS_PROCESS =0;
279 PRTYS_PROCESSTREE =1;
280 PRTYS_THREAD =2;
281
282{ Priority classes }
283CONST
284 PRTYC_NOCHANGE =0;
285 PRTYC_IDLETIME =1;
286 PRTYC_REGULAR =2;
287 PRTYC_TIMECRITICAL =3;
288 PRTYC_FOREGROUNDSERVER =4;
289
290 { Priority deltas }
291
292 PRTYD_MINIMUM =-31;
293 PRTYD_MAXIMUM = 31;
294
295
296
297CONST
298 DKP_PROCESSTREE =0;
299 DKP_PROCESS =1;
300
301 {************************************************************************
302 * CCHMAXPATH is the maximum fully qualified path name length including *
303 * the drive letter, colon, backslashes and terminating NULL. *
304 *************************************************************************}
305 CCHMAXPATH =260;
306
307 {************************************************************************
308 * CCHMAXPATHCOMP is the maximum individual path component name length *
309 * including a terminating NULL. *
310 *************************************************************************}
311 CCHMAXPATHCOMP =256;
312
313{ DosSetFilePtr() file position codes }
314CONST
315 FILE_BEGIN =$0000; { Move relative to beginning of file }
316 FILE_CURRENT =$0001; { Move relative to current fptr position }
317 FILE_END =$0002; { Move relative to end of file }
318
319 { DosFindFirst/Next Directory handle types }
320 HDIR_SYSTEM = 1; { Use system handle (1) }
321 HDIR_CREATE = -1; { Allocate a new, unused handle }
322
323 { DosCopy control bits; may be or'ed together }
324 DCPY_EXISTING =$0001; { Copy even if target exists }
325 DCPY_APPEND =$0002; { Append to existing file, do not replace }
326 DCPY_FAILEAS =$0004; { Fail if EAs not supported on target}
327
328 { DosOpen/DosQFHandState/DosQueryFileInfo et al file attributes; also }
329 { known as Dos File Mode bits... }
330 FILE_NORMAL =$0000;
331 FILE_READONLY =$0001;
332 FILE_HIDDEN =$0002;
333 FILE_SYSTEM =$0004;
334 FILE_DIRECTORY =$0010;
335 FILE_ARCHIVED =$0020;
336
337 FILE_IGNORE =$10000; { ignore file attribute in }
338 { DosSetPath/File Info if }
339 { this bit is set}
340
341 MUST_HAVE_READONLY =(FILE_READONLY SHL 8) OR FILE_READONLY;
342 MUST_HAVE_HIDDEN =(FILE_HIDDEN SHL 8) OR FILE_HIDDEN;
343 MUST_HAVE_SYSTEM =(FILE_SYSTEM SHL 8) OR FILE_SYSTEM;
344 MUST_HAVE_DIRECTORY =(FILE_DIRECTORY SHL 8) OR FILE_DIRECTORY;
345 MUST_HAVE_ARCHIVED =(FILE_ARCHIVED SHL 8) OR FILE_ARCHIVED;
346
347 { DosOpen() actions }
348 FILE_EXISTED =$0001;
349 FILE_CREATED =$0002;
350 FILE_TRUNCATED =$0003;
351
352 { DosOpen() open flags }
353 FILE_OPEN =$0001;
354 FILE_TRUNCATE =$0002;
355 FILE_CREATE =$0010;
356
357 { this nibble applies if file already exists xxxx }
358 OPEN_ACTION_FAIL_IF_EXISTS =$0000; { ---- ---- ---- 0000 }
359 OPEN_ACTION_OPEN_IF_EXISTS =$0001; { ---- ---- ---- 0001 }
360 OPEN_ACTION_REPLACE_IF_EXISTS =$0002; { ---- ---- ---- 0010 }
361
362 { this nibble applies if file does not exist xxxx }
363 OPEN_ACTION_FAIL_IF_NEW =$0000; { ---- ---- 0000 ---- }
364 OPEN_ACTION_CREATE_IF_NEW =$0010; { ---- ---- 0001 ---- }
365
366 { DosOpen/DosSetFHandState flags }
367 OPEN_ACCESS_READONLY =$0000; { ---- ---- ---- -000 }
368 OPEN_ACCESS_WRITEONLY =$0001; { ---- ---- ---- -001 }
369 OPEN_ACCESS_READWRITE =$0002; { ---- ---- ---- -010 }
370 OPEN_SHARE_DENYREADWRITE =$0010; { ---- ---- -001 ---- }
371 OPEN_SHARE_DENYWRITE =$0020; { ---- ---- -010 ---- }
372 OPEN_SHARE_DENYREAD =$0030; { ---- ---- -011 ---- }
373 OPEN_SHARE_DENYNONE =$0040; { ---- ---- -100 ---- }
374 OPEN_FLAGS_NOINHERIT =$0080; { ---- ---- 1--- ---- }
375 OPEN_FLAGS_NO_LOCALITY =$0000; { ---- -000 ---- ---- }
376 OPEN_FLAGS_SEQUENTIAL =$0100; { ---- -001 ---- ---- }
377 OPEN_FLAGS_RANDOM =$0200; { ---- -010 ---- ---- }
378 OPEN_FLAGS_RANDOMSEQUENTIAL =$0300; { ---- -011 ---- ---- }
379 OPEN_FLAGS_NO_CACHE =$1000; { ---1 ---- ---- ---- }
380 OPEN_FLAGS_FAIL_ON_ERROR =$2000; { --1- ---- ---- ---- }
381 OPEN_FLAGS_WRITE_THROUGH =$4000; { -1-- ---- ---- ---- }
382 OPEN_FLAGS_DASD =$8000; { 1--- ---- ---- ---- }
383 OPEN_FLAGS_NONSPOOLED =$00040000;
384 OPEN_FLAGS_PROTECTED_HANDLE =$40000000;
385
386
387 { DosSearchPath() constants }
388 SEARCH_PATH =$0000;
389 SEARCH_CUR_DIRECTORY =$0001;
390 SEARCH_ENVIRONMENT =$0002;
391 SEARCH_IGNORENETERRS =$0004;
392
393
394 {***********************************************************
395 EA Info Levels & Find First/Next
396 =========================================
397 API's: DosFindFirst, DosQueryFileInfo, DosQueryPathInfo, DosSetFileInfo,
398 DosSetPathInfo
399 ***********************************************************}
400
401 { File info levels&gml All listed API's }
402 FIL_STANDARD =1; { Info level 1, standard file info }
403 FIL_QUERYEASIZE =2; { Level 2, return Full EA size }
404 FIL_QUERYEASFROMLIST =3; { Level 3, return requested EA's }
405
406 { File info levels: Dos...PathInfo only }
407 FIL_QUERYFULLNAME =5; { Level 5, return fully qualified
408 name of file }
409
410
411 { DosFsAttach() }
412 { Attact or detach }
413 FS_ATTACH =0; { Attach file server }
414 FS_DETACH =1; { Detach file server }
415 FS_SPOOLATTACH =2; { Register a spooler device }
416 FS_SPOOLDETACH =3; { De-register a spooler device }
417
418
419 { DosFsCtl() }
420 { Routing type }
421 FSCTL_HANDLE =1; { File Handle directs req routing }
422 FSCTL_PATHNAME =2; { Path Name directs req routing }
423 FSCTL_FSDNAME =3; { FSD Name directs req routing }
424
425 { defined FSCTL functions }
426 FSCTL_ERROR_INFO =1; { return error info from FSD }
427 FSCTL_MAX_EASIZE =2; { Max ea size for the FSD }
428
429TYPE
430 PEASIZEBUF=^EASIZEBUF;
431 EASIZEBUF=RECORD { struct for FSCTL fn 2 - max ea size }
432 cbMaxEASize:WORD; { max. size of one EA }
433 cbMaxEAListSize:ULONG; { max size of the full EA List }
434 END;
435
436 { DosQueryFSAttach() }
437 { Information level types (defines method of query) }
438CONST
439 FSAIL_QUERYNAME =1; { Return data for a Drive or Device }
440 FSAIL_DEVNUMBER =2; { Return data for Ordinal Device # }
441 FSAIL_DRVNUMBER =3; { Return data for Ordinal Drive # }
442
443 { Item types (from data structure item "iType") }
444 FSAT_CHARDEV =1; { Resident character device }
445 FSAT_PSEUDODEV =2; { Pusedu-character device }
446 FSAT_LOCALDRV =3; { Local drive }
447 FSAT_REMOTEDRV =4; { Remote drive attached to FSD }
448
449TYPE
450 PFSQBUFFER=^FSQBUFFER;
451 FSQBUFFER=RECORD { fsqbuf Data structure for QFSAttach}
452 iType:WORD; { Item type }
453 cbName:WORD; { Length of item name, sans NULL }
454 szName:BYTE; { ASCIIZ item name }
455 cbFSDName:WORD; { Length of FSD name, sans NULL }
456 szFSDName:BYTE; { ASCIIZ FSD name }
457 cbFSAData:USHORT; { Length of FSD Attach data returned }
458 rgFSAData:BYTE; { FSD Attach data from FSD }
459 END;
460
461 PFSQBUFFER2=^FSQBUFFER2;
462 FSQBUFFER2=RECORD { fsqbuf Data structure for QFSAttach}
463 iType:USHORT;
464 cbName:USHORT;
465 cbFSDName:USHORT;
466 cbFSAData:USHORT;
467 szName:BYTE;
468 szFSDName:BYTE;
469 rgFSAData:BYTE;
470 END;
471
472 PSPOOLATTACH=^SPOOLATTACH;
473 SPOOLATTACH=RECORD
474 hNmPipe:USHORT; { Named pipe handle }
475 ulKey:ULONG; { Attached key }
476 END;
477
478
479{****************************************************************************
480 * File System Drive Information&gml DosQueryFSInfo DosSetFSInfo *
481 ****************************************************************************}
482
483 { FS Drive Info Levels }
484CONST
485 FSIL_ALLOC =1; { Drive allocation info (Query only) }
486 FSIL_VOLSER =2; { Drive Volum/Serial info }
487
488 { DosQueryFHType() }
489 { Handle classes (low 8 bits of Handle Type) }
490 FHT_DISKFILE =$0000; { Disk file handle }
491 FHT_CHRDEV =$0001; { Character device handle }
492 FHT_PIPE =$0002; { Pipe handle }
493
494 { Handle bits (high 8 bits of Handle Type) }
495 FHB_DSKREMOTE =$8000; { Remote disk }
496 FHB_CHRDEVREMOTE =$8000; { Remote character device }
497 FHB_PIPEREMOTE =$8000; { Remote pipe }
498
499
500TYPE
501 PFTIME=^FTIME;
502 FTIME=WORD; {twosecs Bit 0..4, minutes bit 5..10, hours bit 11..15}
503
504 PFDATE=^FDATE;
505 FDATE=WORD; {Day Bit 0..4, Month Bit 5..8, year bit 9..15}
506
507 PVOLUMELABEL=^VOLUMELABEL;
508 VOLUMELABEL=RECORD
509 cch:BYTE;
510 szVolLabel:CSTRING[11];
511 END;
512
513 PFSINFO=^FSINFO;
514 FSINFO=RECORD
515 fdateCreation:FDATE;
516 ftimeCreation:FTIME;
517 vol:VOLUMELABEL;
518 END;
519
520 { HANDTYPE values }
521CONST
522 HANDTYPE_FILE =$0000;
523 HANDTYPE_DEVICE =$0001;
524 HANDTYPE_PIPE =$0002;
525 HANDTYPE_PROTECTED =$4000;
526 HANDTYPE_NETWORK =$8000;
527
528TYPE
529 PFILELOCK=^FILELOCK;
530 FILELOCK=RECORD
531 lOffset:LONG;
532 lRange:LONG;
533 END;
534
535 HFILE=LHANDLE;
536 HEV=ULONG;
537 FHLOCK=ULONG;
538
539
540TYPE
541 PFILEFINDBUF=^FILEFINDBUF;
542 FILEFINDBUF=RECORD
543 fdateCreation:FDATE;
544 ftimeCreation:FTIME;
545 fdateLastAccess:FDATE;
546 ftimeLastAccess:FTIME;
547 fdateLastWrite:FDATE;
548 ftimeLastWrite:FTIME;
549 cbFile:ULONG;
550 cbFileAlloc:ULONG;
551 attrFile:USHORT;
552 cchName:BYTE;
553 achName:CSTRING[CCHMAXPATHCOMP-1];
554 END;
555
556 PFILEFINDBUF2=^FILEFINDBUF2;
557 FILEFINDBUF2=RECORD {pack 2}
558 fdateCreation:FDATE;
559 ftimeCreation:FTIME;
560 fdateLastAccess:FDATE;
561 ftimeLastAccess:FTIME;
562 fdateLastWrite:FDATE;
563 ftimeLastWrite:FTIME;
564 cbFile:ULONG;
565 cbFileAlloc:ULONG;
566 attrFile:USHORT;
567 cbList:ULONG;
568 cchName:BYTE;
569 achName:CSTRING[CCHMAXPATHCOMP-1];
570 END;
571
572 PFILEFINDBUF3=^FILEFINDBUF3;
573 FILEFINDBUF3=RECORD { pack 2 }
574 oNextEntryOffset:ULONG; { new field }
575 fdateCreation:FDATE;
576 ftimeCreation:FTIME;
577 fdateLastAccess:FDATE;
578 ftimeLastAccess:FTIME;
579 fdateLastWrite:FDATE;
580 ftimeLastWrite:FTIME;
581 cbFile:ULONG;
582 cbFileAlloc:ULONG;
583 attrFile:ULONG; { widened field }
584 cchName:BYTE;
585 achName:CSTRING[CCHMAXPATHCOMP-1];
586 END;
587
588 PFILEFINDBUF4=^FILEFINDBUF4;
589 FILEFINDBUF4=RECORD { pack 2 }
590 oNextEntryOffset:ULONG; { new field }
591 fdateCreation:FDATE;
592 ftimeCreation:FTIME;
593 fdateLastAccess:FDATE;
594 ftimeLastAccess:FTIME;
595 fdateLastWrite:FDATE;
596 ftimeLastWrite:FTIME;
597 cbFile:ULONG;
598 cbFileAlloc:ULONG;
599 attrFile:ULONG; { widened field }
600 cbList:ULONG;
601 cchName:BYTE;
602 achName:CSTRING[CCHMAXPATHCOMP-1];
603 END;
604
605 { extended attribute structures }
606
607 PGEA=^GEA;
608 GEA=RECORD {pack 2}
609 cbName:BYTE; { name length not including NULL }
610 szName:CHAR; { attribute name }
611 END;
612
613 PGEALIST=^GEALIST;
614 GEALIST=RECORD { pack 2 }
615 cbList:ULONG; { total bytes of structure including full list }
616 list:GEA; { variable length GEA structures }
617 END;
618
619 PFEA=^FEA;
620 FEA=RECORD {pack 2}
621 fEA:BYTE; { flags }
622 cbName:BYTE; { name length not including NULL }
623 cbValue:USHORT; { value length }
624 END;
625
626 { flags for _FEA.fEA }
627CONST
628 FEA_NEEDEA =$80; { need EA bit }
629
630TYPE
631 PFEALIST=^FEALIST;
632 FEALIST=RECORD { pack 2}
633 cbList:ULONG; { total bytes of structure including full list }
634 list:FEA; { variable length FEA structures }
635 END;
636
637 PEAOP=^EAOP;
638 EAOP=RECORD { pack 2}
639 fpGEAList:PGEALIST; { general EA list }
640 fpFEAList:PFEALIST; { full EA list }
641 oError:ULONG;
642 END;
643
644 PFEA2=^FEA2;
645 FEA2=RECORD {pack 1}
646 oNextEntryOffset:ULONG; { new field }
647 fEA:BYTE;
648 cbName:BYTE;
649 cbValue:USHORT;
650 szName:CString[1]; { new field }
651 END;
652
653 PFEA2LIST=^FEA2LIST;
654 FEA2LIST=RECORD {pack 1}
655 cbList:ULONG;
656 list:ARRAY[0..0] OF FEA2;
657 END;
658
659 PGEA2=^GEA2;
660 GEA2=RECORD {pack 1}
661 oNextEntryOffset:ULONG; { new field }
662 cbName:BYTE;
663 szName:ARRAY[0..0] OF BYTE; { new field }
664 END;
665
666 PGEA2LIST=^GEA2LIST;
667 GEA2LIST=RECORD { pack 1 }
668 cbList:ULONG;
669 list:ARRAY[0..0] OF GEA2;
670 END;
671
672 PEAOP2=^EAOP2;
673 EAOP2=RECORD { pack 1 }
674 fpGEA2List:PGEA2LIST; { GEA set }
675 fpFEA2List:PFEA2LIST; { FEA set }
676 oError:ULONG; { offset of FEA error }
677 END;
678
679 {
680 * Equates for the types of EAs that follow the convention that we have
681 * established.
682 *
683 * Values =$FFFE thru =$8000 are reserved.
684 * Values =$0000 thru =$7fff are user definable.
685 * Value =$FFFC is not used
686 }
687CONST
688 EAT_BINARY =$FFFE; { length preceeded binary }
689 EAT_ASCII =$FFFD; { length preceeded ASCII }
690 EAT_BITMAP =$FFFB; { length preceeded bitmap }
691 EAT_METAFILE =$FFFA; { length preceeded metafile }
692 EAT_ICON =$FFF9; { length preceeded icon }
693 EAT_EA =$FFEE; { length preceeded ASCII }
694 { name of associated data (#include) }
695 EAT_MVMT =$FFDF; { multi-valued, multi-typed field }
696 EAT_MVST =$FFDE; { multi-valued, single-typed field }
697 EAT_ASN1 =$FFDD; { ASN.1 field }
698
699 { File time and date types }
700
701TYPE
702 PFILESTATUS=^FILESTATUS;
703 FILESTATUS=RECORD
704 fdateCreation:FDATE;
705 ftimeCreation:FTIME;
706 fdateLastAccess:FDATE;
707 ftimeLastAccess:FTIME;
708 fdateLastWrite:FDATE;
709 ftimeLastWrite:FTIME;
710 cbFile:ULONG;
711 cbFileAlloc:ULONG;
712 attrFile:WORD;
713 END;
714
715 PFILESTATUS2=^FILESTATUS2;
716 FILESTATUS2=RECORD
717 fdateCreation:FDATE;
718 ftimeCreation:FTIME;
719 fdateLastAccess:FDATE;
720 ftimeLastAccess:FTIME;
721 fdateLastWrite:FDATE;
722 ftimeLastWrite:FTIME;
723 cbFile:ULONG;
724 cbFileAlloc:ULONG;
725 attrFile:WORD;
726 cbList:ULONG;
727 END;
728
729 PFILESTATUS3=^FILESTATUS3;
730 FILESTATUS3=RECORD
731 fdateCreation:FDATE;
732 ftimeCreation:FTIME;
733 fdateLastAccess:FDATE;
734 ftimeLastAccess:FTIME;
735 fdateLastWrite:FDATE;
736 ftimeLastWrite:FTIME;
737 cbFile:ULONG;
738 cbFileAlloc:ULONG;
739 attrFile:ULONG;
740 END;
741
742 PFILESTATUS4=^FILESTATUS4;
743 FILESTATUS4=RECORD
744 fdateCreation:FDATE;
745 ftimeCreation:FTIME;
746 fdateLastAccess:FDATE;
747 ftimeLastAccess:FTIME;
748 fdateLastWrite:FDATE;
749 ftimeLastWrite:FTIME;
750 cbFile:ULONG;
751 cbFileAlloc:ULONG;
752 attrFile:ULONG;
753 cbList:ULONG;
754 END;
755
756 PFSALLOCATE=^FSALLOCATE;
757 FSALLOCATE=RECORD
758 idFileSystem:ULONG;
759 cSectorUnit:ULONG;
760 cUnit:ULONG;
761 cUnitAvail:ULONG;
762 cbSector:USHORT;
763 END;
764
765 HDIR=LHANDLE;
766
767 { defines for DosSetPathInfo -pathinfo flag }
768CONST
769 DSPI_WRTTHRU =$10; { write through }
770
771
772TYPE
773 PDENA1=^DENA1;
774 DENA1=RECORD { pack 1 }
775 reserved:UCHAR; { 0 }
776 cbName:UCHAR; { length of name exculding NULL }
777 cbValue:USHORT; { length of value }
778 szName:UCHAR; { variable length asciiz name }
779 END;
780
781 PDENA2=^DENA2;
782 DENA2=FEA2;
783
784 { Infolevels for DosEnumAttribute }
785CONST
786 ENUMEA_LEVEL_NO_VALUE =1; { FEA without value }
787 { Reference types for DosEnumAttribute }
788 ENUMEA_REFTYPE_FHANDLE =0; { file handle }
789 ENUMEA_REFTYPE_PATH =1; { path name }
790 ENUMEA_REFTYPE_MAX =ENUMEA_REFTYPE_PATH;
791
792
793{ 32-bit Semaphore Support }
794
795{ Semaphore Attributes }
796CONST
797 DC_SEM_SHARED =$01; { DosCreateMutex, DosCreateEvent, and }
798 { DosCreateMuxWait use it to indicate }
799 { whether the semaphore is shared or }
800 { private when the PSZ is null }
801 DCMW_WAIT_ANY =$02; { DosCreateMuxWait option for wait on any }
802 { event/mutex to occur }
803 DCMW_WAIT_ALL =$04; { DosCreateMuxWait option for wait on all }
804 { events/mutexs to occur }
805
806 SEM_INDEFINITE_WAIT =-1;
807 SEM_IMMEDIATE_RETURN = 0;
808
809
810TYPE
811 HSEM=LONGWORD;
812
813 PSEMRECORD=^SEMRECORD;
814 SEMRECORD=RECORD
815 hsemCur:HSEM;
816 ulUser:ULONG;
817 END;
818
819
820 HMTX=ULONG;
821 HMUX=ULONG;
822
823
824TYPE
825 HTIMER=LHANDLE;
826
827CONST
828 PT_16BIT =0;
829 PT_32BIT =1;
830
831{** Resource support }
832
833{ Predefined resource types }
834CONST
835 RT_POINTER =1; { mouse pointer shape }
836 RT_BITMAP =2; { bitmap }
837 RT_MENU =3; { menu template }
838 RT_DIALOG =4; { dialog template }
839 RT_STRING =5; { string tables }
840 RT_FONTDIR =6; { font directory }
841 RT_FONT =7; { font }
842 RT_ACCELTABLE =8; { accelerator tables }
843 RT_RCDATA =9; { binary data }
844 RT_MESSAGE =10; { error msg tables }
845 RT_DLGINCLUDE =11; { dialog include file name }
846 RT_VKEYTBL =12; { key to vkey tables }
847 RT_KEYTBL =13; { key to UGL tables }
848 RT_CHARTBL =14; { glyph to character tables }
849 RT_DISPLAYINFO =15; { screen display information }
850
851 RT_FKASHORT =16; { function key area short form }
852 RT_FKALONG =17; { function key area long form }
853
854 RT_HELPTABLE =18; { Help table for Cary Help manager }
855 RT_HELPSUBTABLE =19; { Help subtable for Cary Help manager }
856
857 RT_FDDIR =20; { DBCS uniq/font driver directory }
858 RT_FD =21; { DBCS uniq/font driver }
859
860 RT_MAX =22; { 1st unused Resource Type }
861
862
863 RF_ORDINALID =$80000000; { ordinal id flag in resource table }
864
865
866{** NLS Support }
867
868TYPE
869 PCOUNTRYCODE=^COUNTRYCODE;
870 COUNTRYCODE=RECORD
871 country:ULONG;
872 codepage:ULONG;
873 END;
874
875 PCOUNTRYINFO=^COUNTRYINFO;
876 COUNTRYINFO=RECORD
877 country:ULONG;
878 codepage:ULONG;
879 fsDateFmt:ULONG;
880 szCurrency:CSTRING[4];
881 szThousandsSeparator:CSTRING[1];
882 szDecimal:CSTRING[1];
883 szDateSeparator:CSTRING[1];
884 szTimeSeparator:CSTRING[1];
885 fsCurrencyFmt:UCHAR;
886 cDecimalPlace:UCHAR;
887 fsTimeFmt:UCHAR;
888 abReserved1:ARRAY[0..1] OF USHORT;
889 szDataSeparator:CSTRING[1];
890 abReserved2:ARRAY[0..4] OF USHORT;
891 END;
892
893 { DosSetSigExceptionFocus codes }
894CONST
895 SIG_UNSETFOCUS =0;
896 SIG_SETFOCUS =1;
897
898TYPE
899 HQUEUE=LHANDLE;
900
901 PREQUESTDATA=^REQUESTDATA;
902 REQUESTDATA=RECORD
903 pid:PID;
904 ulData:ULONG;
905 END;
906
907CONST
908 QUE_FIFO =0;
909 QUE_LIFO =1;
910 QUE_PRIORITY =2;
911 QUE_NOCONVERT_ADDRESS =0;
912 QUE_CONVERT_ADDRESS =4;
913
914 { definitions for DosSearchPath control word }
915CONST
916 DSP_IMPLIEDCUR =1; { current dir will be searched first }
917 DSP_PATHREF =2; { from env.variable }
918 DSP_IGNORENETERR =4; { ignore net errs & continue search }
919
920 { indices for DosQuerySysInfo }
921 QSV_MAX_PATH_LENGTH =1;
922 Q_MAX_PATH_LENGTH =QSV_MAX_PATH_LENGTH;
923 QSV_MAX_TEXT_SESSIONS =2;
924 QSV_MAX_PM_SESSIONS =3;
925 QSV_MAX_VDM_SESSIONS =4;
926 QSV_BOOT_DRIVE =5; { 1=A, 2=B, etc. }
927 QSV_DYN_PRI_VARIATION =6; { 0=Absolute, 1=Dynamic }
928 QSV_MAX_WAIT =7; { seconds }
929 QSV_MIN_SLICE =8; { milli seconds }
930 QSV_MAX_SLICE =9; { milli seconds }
931 QSV_PAGE_SIZE =10;
932 QSV_VERSION_MAJOR =11;
933 QSV_VERSION_MINOR =12;
934 QSV_VERSION_REVISION =13; { Revision letter }
935 QSV_MS_COUNT =14; { Free running millisecond counter }
936 QSV_TIME_LOW =15; { Low dword of time in seconds }
937 QSV_TIME_HIGH =16; { High dword of time in seconds }
938 QSV_TOTPHYSMEM =17; { Physical memory on system }
939 QSV_TOTRESMEM =18; { Resident memory on system }
940 QSV_TOTAVAILMEM =19; { Available memory for all processes }
941 QSV_MAXPRMEM =20; { Avail private mem for calling proc }
942 QSV_MAXSHMEM =21; { Avail shared mem for calling proc }
943 QSV_TIMER_INTERVAL =22; { Timer interval in tenths of ms }
944 QSV_MAX_COMP_LENGTH =23; { max len of one component in a name }
945 QSV_MAX =QSV_MAX_COMP_LENGTH;
946
947 { definitions for DosError - combine with | }
948 FERR_DISABLEHARDERR =$00000000; { disable hard error popups }
949 FERR_ENABLEHARDERR =$00000001; { enable hard error popups }
950 FERR_ENABLEEXCEPTION =$00000000; { enable exception popups }
951 FERR_DISABLEEXCEPTION =$00000002; { disable exception popups }
952
953 { definitions for DosQueryRASInfo Index }
954 SIS_MMIOADDR =0;
955 SIS_MEC_TABLE =1;
956 SIS_SYS_LOG =2;
957
958{** Session manager support }
959TYPE
960 PSTARTDATA=^STARTDATA;
961 STARTDATA=RECORD
962 Length:USHORT;
963 Related:USHORT;
964 FgBg:USHORT;
965 TraceOpt:USHORT;
966 PgmTitle:PChar;
967 PgmName:PChar;
968 PgmInputs:PChar;
969 TermQ:PBYTE;
970 Environment:PBYTE;
971 InheritOpt:USHORT;
972 SessionType:USHORT;
973 IconFile:PChar;
974 PgmHandle:ULONG;
975 PgmControl:USHORT;
976 InitXPos:USHORT;
977 InitYPos:USHORT;
978 InitXSize:USHORT;
979 InitYSize:USHORT;
980 Reserved:USHORT;
981 ObjectBuffer:PChar;
982 ObjectBuffLen:ULONG;
983 END;
984
985CONST
986 SSF_RELATED_INDEPENDENT =0;
987 SSF_RELATED_CHILD =1;
988
989 SSF_FGBG_FORE =0;
990 SSF_FGBG_BACK =1;
991
992 SSF_TRACEOPT_NONE =0;
993 SSF_TRACEOPT_TRACE =1;
994 SSF_TRACEOPT_TRACEALL =2;
995
996 SSF_INHERTOPT_SHELL =0;
997 SSF_INHERTOPT_PARENT =1;
998
999 { note that these types are identical to those in pmshl.h for PROG_* }
1000 SSF_TYPE_DEFAULT =0;
1001 SSF_TYPE_FULLSCREEN =1;
1002 SSF_TYPE_WINDOWABLEVIO =2;
1003 SSF_TYPE_PM =3;
1004 SSF_TYPE_VDM =4;
1005 SSF_TYPE_GROUP =5;
1006 SSF_TYPE_DLL =6;
1007 SSF_TYPE_WINDOWEDVDM =7;
1008 SSF_TYPE_PDD =8;
1009 SSF_TYPE_VDD =9;
1010
1011 { note that these flags are identical to those in pmshl.h for SHE_* }
1012 SSF_CONTROL_VISIBLE =$0000;
1013 SSF_CONTROL_INVISIBLE =$0001;
1014 SSF_CONTROL_MAXIMIZE =$0002;
1015 SSF_CONTROL_MINIMIZE =$0004;
1016 SSF_CONTROL_NOAUTOCLOSE =$0008;
1017 SSF_CONTROL_SETPOS =$8000;
1018
1019TYPE
1020 PSTATUSDATA=^STATUSDATA;
1021 STATUSDATA=RECORD
1022 Length:USHORT;
1023 SelectInd:USHORT;
1024 BondInd:USHORT;
1025 END;
1026
1027 { SelectInd and BondInd paramater values for DosSetSession }
1028CONST
1029 SET_SESSION_UNCHANGED =0;
1030 SET_SESSION_SELECTABLE =1;
1031 SET_SESSION_NON_SELECTABLE =2;
1032 SET_SESSION_BOND =1;
1033 SET_SESSION_NO_BOND =2;
1034
1035 { TargetOption (scope) parameter values for DosStopSession }
1036 STOP_SESSION_SPECIFIED =0;
1037 STOP_SESSION_ALL =1;
1038
1039 { AppType returned in by DosQueryAppType in pFlags as follows }
1040CONST
1041 FAPPTYP_NOTSPEC =$0000;
1042 FAPPTYP_NOTWINDOWCOMPAT =$0001;
1043 FAPPTYP_WINDOWCOMPAT =$0002;
1044 FAPPTYP_WINDOWAPI =$0003;
1045 FAPPTYP_BOUND =$0008;
1046 FAPPTYP_DLL =$0010;
1047 FAPPTYP_DOS =$0020;
1048 FAPPTYP_PHYSDRV =$0040; { physical device driver }
1049 FAPPTYP_VIRTDRV =$0080; { virtual device driver }
1050 FAPPTYP_PROTDLL =$0100; { 'protected memory' dll }
1051 FAPPTYP_WINDOWSREAL =$0200; { Windows real mode app }
1052 FAPPTYP_WINDOWSPROT =$0400; { Windows protect mode app }
1053 FAPPTYP_WINDOWSPROT31 =$1000; { Windows 3.1 protect mode app }
1054 FAPPTYP_32BIT =$4000;
1055 FAPPTYP_EXETYPE =FAPPTYP_WINDOWAPI;
1056
1057 FAPPTYP_RESERVED =NOT (FAPPTYP_WINDOWAPI | FAPPTYP_BOUND |
1058 FAPPTYP_DLL | FAPPTYP_DOS |
1059 FAPPTYP_PHYSDRV | FAPPTYP_VIRTDRV |
1060 FAPPTYP_PROTDLL | FAPPTYP_32BIT);
1061
1062 EAT_APPTYP_PMAPI =$00; { Uses PM API }
1063 EAT_APPTYP_DOS =$01; { DOS APP }
1064 EAT_APPTYP_PMW =$02; { Window compatible }
1065 EAT_APPTYP_NOPMW =$03; { Not Window compatible }
1066 EAT_APPTYP_EXETYPE =$03; { EXE type mask }
1067 EAT_APPTYP_RESERVED =NOT EAT_APPTYP_EXETYPE;
1068
1069CONST
1070 DEVINFO_PRINTER =0; { Number of printers attached }
1071 DEVINFO_RS232 =1; { Number of RS232 ports }
1072 DEVINFO_FLOPPY =2; { Number of diskette drives }
1073 DEVINFO_COPROCESSOR =3; { Presence of math coprocessor }
1074 DEVINFO_SUBMODEL =4; { PC Submodel Type }
1075 DEVINFO_MODEL =5; { PC Model Type }
1076 DEVINFO_ADAPTER =6; { Primary display adapter type }
1077
1078
1079CONST
1080 INFO_COUNT_PARTITIONABLE_DISKS =1; { # of partitionable disks }
1081 INFO_GETIOCTLHANDLE =2; { Obtain handle }
1082 INFO_FREEIOCTLHANDLE =3; { Release handle }
1083
1084
1085
1086{** Data structures used with named pipes **}
1087TYPE
1088 HPIPE=LHANDLE;
1089
1090
1091 PAVAILDATA=^AVAILDATA;
1092 AVAILDATA=RECORD
1093 cbpipe:USHORT; { bytes left in the pipe }
1094 cbmessage:USHORT; { bytes left in the current message }
1095 END;
1096
1097 PPIPEINFO=^PIPEINFO;
1098 PIPEINFO=RECORD
1099 cbOut:USHORT; { length of outgoing I/O buffer }
1100 cbIn:USHORT; { length of incoming I/O buffer }
1101 cbMaxInst:BYTE; { maximum number of instances }
1102 cbCurInst:BYTE; { current number of instances }
1103 cbName:BYTE; { length of pipe name }
1104 szName:CHAR; { start of name }
1105 END;
1106
1107 PPIPESEMSTATE=^PIPESEMSTATE;
1108 PIPESEMSTATE=RECORD
1109 fStatus:BYTE; { type of record, 0 = EOI, 1 = read ok, }
1110 { 2 = write ok, 3 = pipe closed }
1111 fFlag:BYTE; { additional info, 01 = waiting thread }
1112 usKey:USHORT; { user's key value }
1113 usAvail:USHORT;{ available data/space if status = 1/2 }
1114 END;
1115
1116CONST
1117 NP_INDEFINITE_WAIT =-1;
1118 NP_DEFAULT_WAIT =0;
1119
1120 { DosPeekNmPipe() pipe states }
1121
1122 NP_STATE_DISCONNECTED =$0001;
1123 NP_STATE_LISTENING =$0002;
1124 NP_STATE_CONNECTED =$0003;
1125 NP_STATE_CLOSING =$0004;
1126
1127 { DosCreateNPipe open modes }
1128
1129 NP_ACCESS_INBOUND =$0000;
1130 NP_ACCESS_OUTBOUND =$0001;
1131 NP_ACCESS_DUPLEX =$0002;
1132 NP_INHERIT =$0000;
1133 NP_NOINHERIT =$0080;
1134 NP_WRITEBEHIND =$0000;
1135 NP_NOWRITEBEHIND =$4000;
1136
1137 { DosCreateNPipe and DosQueryNPHState state }
1138
1139 NP_READMODE_BYTE =$0000;
1140 NP_READMODE_MESSAGE =$0100;
1141 NP_TYPE_BYTE =$0000;
1142 NP_TYPE_MESSAGE =$0400;
1143 NP_END_CLIENT =$0000;
1144 NP_END_SERVER =$4000;
1145 NP_WAIT =$0000;
1146 NP_NOWAIT =$8000;
1147 NP_UNLIMITED_INSTANCES =$00FF;
1148
1149 { values in fStatus }
1150CONST
1151 NPSS_EOI =0; { End Of Information }
1152 NPSS_RDATA =1; { read data available }
1153 NPSS_WSPACE =2; { write space available }
1154 NPSS_CLOSE =3; { pipe in CLOSING state }
1155
1156 { values in npss_flag }
1157 NPSS_WAIT =$01; { waiting thread on end of pipe }
1158
1159 { defined bits in pipe mode }
1160 NP_NBLK =$8000; { non-blocking read/write }
1161 NP_SERVER =$4000; { set if server end }
1162 NP_WMESG =$0400; { write messages }
1163 NP_RMESG =$0100; { read as messages }
1164 NP_ICOUNT =$00FF; { instance count field }
1165
1166
1167 {Named pipes may be in one of several states depending on the actions
1168 * that have been taken on it by the server end and client end. The
1169 * following state/action table summarizes the valid state transitions:
1170 *
1171 * Current state Action Next state
1172 *
1173 * <none> server DosMakeNmPipe DISCONNECTED
1174 * DISCONNECTED server connect LISTENING
1175 * LISTENING client open CONNECTED
1176 * CONNECTED server disconn DISCONNECTED
1177 * CONNECTED client close CLOSING
1178 * CLOSING server disconn DISCONNECTED
1179 * CONNECTED server close CLOSING
1180 * <any other> server close <pipe deallocated>
1181 *
1182 * If a server disconnects his end of the pipe, the client end will enter a
1183 * special state in which any future operations (except close) on the file
1184 * descriptor associated with the pipe will return an error.
1185 }
1186
1187 {
1188 * Values for named pipe state
1189 }
1190
1191 NP_DISCONNECTED =1; { after pipe creation or Disconnect }
1192 NP_LISTENING =2; { after DosNmPipeConnect }
1193 NP_CONNECTED =3; { after Client open }
1194 NP_CLOSING =4; { after Client or Server close }
1195
1196
1197 { DosProfile ordinal number }
1198CONST
1199 PROF_ORDINAL =133;
1200
1201 { DosProfile usType }
1202
1203 PROF_SYSTEM =0;
1204 PROF_USER =1;
1205 PROF_USEDD =2;
1206 PROF_KERNEL =4;
1207 PROF_VERBOSE =8;
1208 PROF_ENABLE =16;
1209
1210 { DosProfile usFunc }
1211
1212 PROF_ALLOC =0;
1213 PROF_CLEAR =1;
1214 PROF_ON =2;
1215 PROF_OFF =3;
1216 PROF_DUMP =4;
1217 PROF_FREE =5;
1218
1219 { DosProfile tic count granularity (DWORD) }
1220
1221 PROF_SHIFT =2;
1222
1223 { DosProfile module name string length }
1224
1225 PROF_MOD_NAME_SIZE =10;
1226
1227 { DosProfile error code for end of data }
1228
1229 PROF_END_OF_DATA =13;
1230
1231
1232TYPE
1233 HVDD=LHANDLE;
1234
1235
1236IMPORTS
1237
1238FUNCTION DosBeep(freq,dur:ULONG):APIRET;
1239 APIENTRY; 'DOSCALLS' index 286;
1240FUNCTION DosExit(action,result:ULONG):APIRET;
1241 APIENTRY; 'DOSCALLS' index 234;
1242FUNCTION DosCreateThread(VAR aptid:TID;pfn:POINTER;param:POINTER;flag:ULONG;
1243 cbStack:ULONG):APIRET;
1244 APIENTRY; 'DOSCALLS' index 311;
1245FUNCTION DosResumeThread(atid:TID):APIRET;
1246 APIENTRY; 'DOSCALLS' index 237;
1247FUNCTION DosSuspendThread(atid:TID):APIRET;
1248 APIENTRY; 'DOSCALLS' index 238;
1249FUNCTION DosGetInfoBlocks(VAR pptib:PTIB;VAR pppib:PPIB):APIRET;
1250 APIENTRY; 'DOSCALLS' index 312;
1251FUNCTION DosKillThread(atid:TID):APIRET;
1252 APIENTRY; 'DOSCALLS' index 111;
1253FUNCTION DosWaitChild(action,option:ULONG;VAR pres:RESULTCODES;
1254 VAR appid:PID;apid:PID):APIRET;
1255 APIENTRY; 'DOSCALLS' index 280;
1256FUNCTION DosWaitThread(VAR aptid:TID;option:ULONG):APIRET;
1257 APIENTRY; 'DOSCALLS' index 349;
1258FUNCTION DosSleep(msec:ULONG):APIRET;
1259 APIENTRY; 'DOSCALLS' index 229;
1260FUNCTION DosDebug(VAR apdbgbuf:TDBGBUF):APIRET;
1261 APIENTRY; 'DOSCALLS' index 317;
1262FUNCTION DosEnterCritSec:APIRET;
1263 APIENTRY; 'DOSCALLS' index 232;
1264FUNCTION DosExitCritSec:APIRET;
1265 APIENTRY; 'DOSCALLS' index 233;
1266FUNCTION DosExitList(ordercode:ULONG;pfn:POINTER):APIRET;
1267 APIENTRY; 'DOSCALLS' index 296;
1268FUNCTION DosExecPgm(pObjname:POINTER;cbObjname:LONG;execFlag:ULONG;
1269 VAR pArg,pEnv:CSTRING;VAR pRes:RESULTCODES;
1270 CONST pName:CSTRING):APIRET;
1271 APIENTRY; 'DOSCALLS' index 283;
1272FUNCTION DosSetPriority(scope,aclass:ULONG;delta:LONG;PorTid:ULONG):APIRET;
1273 APIENTRY; 'DOSCALLS' index 236;
1274FUNCTION DosKillProcess(action:ULONG;apid:PID):APIRET;
1275 APIENTRY; 'DOSCALLS' index 235;
1276FUNCTION DosSetFileLocks(ahFile:HFILE;VAR pflUnlock,pflLock:FILELOCK;
1277 timeout,flags:ULONG):APIRET;
1278 APIENTRY; 'DOSCALLS' index 428;
1279FUNCTION DosProtectSetFileLocks(ahFile:HFILE;VAR pflUnlock,pflLock:FILELOCK;
1280 timeout,flags:ULONG;
1281 fhFileHandleLockID:FHLOCK):APIRET;
1282 APIENTRY; 'DOSCALLS' index 639;
1283FUNCTION DosCancelLockRequest(ahFile:HFILE;VAR pflLock:FILELOCK):APIRET;
1284 APIENTRY; 'DOSCALLS' index 429;
1285FUNCTION DosOpen(pszFileName:CSTRING;VAR pHf:HFILE;VAR pulAction:ULONG;
1286 cbFile,ulAttribute,fsOpenFlags,fsOpenMode:ULONG;
1287 VAR apeaop2:EAOP2):APIRET;
1288 APIENTRY; 'DOSCALLS' index 273;
1289FUNCTION DosProtectOpen(pszFileName:CSTRING;VAR phf:HFILE;VAR pulAction:ULONG;
1290 cbFile,ulAttribute,fsOpenFlags,fsOpenMode:ULONG;
1291 VAR apeaop2:EAOP2;
1292 VAR pfhFileHandleLockID:FHLOCK):APIRET;
1293 APIENTRY; 'DOSCALLS' index 637;
1294FUNCTION DosClose(ahFile:HFILE):APIRET;
1295 APIENTRY; 'DOSCALLS' index 257;
1296FUNCTION DosProtectClose(ahFile:HFILE;fhFileHandleLockID:FHLOCK):APIRET;
1297 APIENTRY; 'DOSCALLS' index 638;
1298FUNCTION DosRead(ahFile:HFILE;VAR pBuffer;cbRead:ULONG;
1299 VAR pcbActual:ULONG):APIRET;
1300 APIENTRY; 'DOSCALLS' index 281;
1301FUNCTION DosProtectRead(ahFile:HFILE;VAR pBuffer;cbRead:ULONG;
1302 VAR pcbActual:ULONG;fhFileHandleLockID:FHLOCK):APIRET;
1303 APIENTRY; 'DOSCALLS' index 641;
1304FUNCTION DosWrite(ahFile:HFILE;CONST pBuffer;cbWrite:ULONG;
1305 VAR pcbActual:ULONG):APIRET;
1306 APIENTRY; 'DOSCALLS' index 282;
1307FUNCTION DosProtectWrite(ahFile:HFILE;VAR pBuffer;cbWrite:ULONG;
1308 VAR pcbActual:ULONG;
1309 fhFileHandleLockID:FHLOCK):APIRET;
1310 APIENTRY; 'DOSCALLS' index 642;
1311FUNCTION DosDelete(VAR pszFile:CSTRING):APIRET;
1312 APIENTRY; 'DOSCALLS' index 259;
1313FUNCTION DosForceDelete(VAR pszFile:CSTRING):APIRET;
1314 APIENTRY; 'DOSCALLS' index 110;
1315FUNCTION DosDupHandle(ahFile:HFILE;VAR apHfile:HFILE):APIRET;
1316 APIENTRY; 'DOSCALLS' index 260;
1317FUNCTION DosQueryFHState(ahFile:HFILE;VAR pMode:ULONG):APIRET;
1318 APIENTRY; 'DOSCALLS' index 276;
1319FUNCTION DosProtectQueryFHState(ahFile:HFILE;VAR pMode:ULONG;
1320 fhFileHandleLockID:FHLOCK):APIRET;
1321 APIENTRY; 'DOSCALLS' index 645;
1322FUNCTION DosSetFHState(ahFile:HFILE;mode:ULONG):APIRET;
1323 APIENTRY; 'DOSCALLS' index 221;
1324FUNCTION DosProtectSetFHState(ahFile:HFILE;mode:ULONG;
1325 fhFileHandleLockID:FHLOCK):APIRET;
1326 APIENTRY; 'DOSCALLS' index 644;
1327FUNCTION DosQueryHType(ahFile:HFILE;VAR pType,pAttr:ULONG):APIRET;
1328 APIENTRY; 'DOSCALLS' index 224;
1329FUNCTION DosFindFirst(VAR pszFileSpec:CSTRING;VAR aphdir:HDIR;flAttribute:ULONG;
1330 VAR pfindbuf;cbBuf:ULONG;VAR pcFileNames:ULONG;
1331 ulInfoLevel:ULONG):APIRET;
1332 APIENTRY; 'DOSCALLS' index 264;
1333FUNCTION DosFindNext(ahDir:HDIR;VAR pfindbuf;cbfindbuf:ULONG;
1334 VAR pcFilenames:ULONG):APIRET;
1335 APIENTRY; 'DOSCALLS' index 265;
1336FUNCTION DosFindClose(ahDir:HDIR):APIRET;
1337 APIENTRY; 'DOSCALLS' index 263;
1338FUNCTION DosFSAttach(VAR pszDevice:CSTRING;VAR pszFilesystem:CSTRING;VAR pData;
1339 cbData:ULONG;flag:ULONG):APIRET;
1340 APIENTRY; 'DOSCALLS' index 269;
1341FUNCTION DosQueryFSAttach(VAR pszDeviceName:CSTRING;ulOrdinal,ulFSAInfoLevel:ULONG;
1342 VAR pfsqb:FSQBUFFER2;
1343 VAR pcbBuffLength:ULONG):APIRET;
1344 APIENTRY; 'DOSCALLS' index 277;
1345FUNCTION DosFSCtl(VAR pData;cbData:ULONG;VAR pcbData:ULONG;VAR pParms;
1346 cbParms:ULONG;VAR pcbParms:ULONG;afunction:ULONG;
1347 VAR pszRoute:CSTRING;ahFile:HFILE;method:ULONG):APIRET;
1348 APIENTRY; 'DOSCALLS' index 285;
1349FUNCTION DosSetFileSize(ahFile:HFILE;cbSize:ULONG):APIRET;
1350 APIENTRY; 'DOSCALLS' index 272;
1351FUNCTION DosProtectSetFileSize(ahFile:HFILE;cbSize:ULONG;
1352 fhFileHandleLockID:FHLOCK):APIRET;
1353 APIENTRY; 'DOSCALLS' index 640;
1354FUNCTION DosResetBuffer(ahFile:HFILE):APIRET;
1355 APIENTRY; 'DOSCALLS' index 254;
1356FUNCTION DosSetFilePtr(ahFile:HFILE;ib:LONG;method:ULONG;
1357 VAR ibActual:ULONG):APIRET;
1358 APIENTRY; 'DOSCALLS' index 256;
1359FUNCTION DosProtectSetFilePtr(ahFile:HFILE;ib:LONG;method:ULONG;
1360 VAR ibActual:ULONG;
1361 fhFileHandleLockID:FHLOCK):APIRET;
1362 APIENTRY; 'DOSCALLS' index 621;
1363FUNCTION DosMove(VAR pszOld,pszNew:CSTRING):APIRET;
1364 APIENTRY; 'DOSCALLS' index 271;
1365FUNCTION DosCopy(VAR pszOld,pszNew:CSTRING;option:ULONG):APIRET;
1366 APIENTRY; 'DOSCALLS' index 258;
1367FUNCTION DosEditName(metalevel:ULONG;VAR pszSource,pszEdit:CSTRING;
1368 VAR pszTarget;cbTarget:ULONG):APIRET;
1369 APIENTRY; 'DOSCALLS' index 261;
1370FUNCTION DosCreateDir(pszDirName:CSTRING;VAR apeaop2:EAOP2):APIRET;
1371 APIENTRY; 'DOSCALLS' index 270;
1372FUNCTION DosDeleteDir(pszDir:CSTRING):APIRET;
1373 APIENTRY; 'DOSCALLS' index 226;
1374FUNCTION DosSetDefaultDisk(disknum:ULONG):APIRET;
1375 APIENTRY; 'DOSCALLS' index 220;
1376FUNCTION DosQueryCurrentDisk(VAR pdisknum,plogical:ULONG):APIRET;
1377 APIENTRY; 'DOSCALLS' index 275;
1378FUNCTION DosSetCurrentDir(pszDir:CSTRING):APIRET;
1379 APIENTRY; 'DOSCALLS' index 255;
1380FUNCTION DosQueryCurrentDirAPI(disknum:ULONG;VAR pBuf;
1381 VAR pcbBuf:ULONG):APIRET;
1382 APIENTRY; 'DOSCALLS' index 274;
1383FUNCTION DosQueryFSInfo(disknum,infolevel:ULONG;VAR pBuf;
1384 cbBuf:ULONG):APIRET;
1385 APIENTRY; 'DOSCALLS' index 278;
1386FUNCTION DosSetFSInfo(disknum,infolevel:ULONG;VAR pBuf;
1387 cbBuf:ULONG):APIRET;
1388 APIENTRY; 'DOSCALLS' index 222;
1389FUNCTION DosQueryVerify(VAR apBool:ULONG):APIRET;
1390 APIENTRY; 'DOSCALLS' index 225;
1391FUNCTION DosSetVerify(apBool:ULONG):APIRET;
1392 APIENTRY; 'DOSCALLS' index 210;
1393FUNCTION DosSetMaxFH(cFH:ULONG):APIRET;
1394 APIENTRY; 'DOSCALLS' index 209;
1395FUNCTION DosSetRelMaxFH(VAR pcbReqCount:LONG;
1396 VAR pcbCurMaxFH:ULONG):APIRET;
1397 APIENTRY; 'DOSCALLS' index 382;
1398FUNCTION DosQueryFileInfo(hf:HFILE;ulInfoLevel:ULONG;
1399 VAR pInfo;cbInfoBuf:ULONG):APIRET;
1400 APIENTRY; 'DOSCALLS' index 279;
1401FUNCTION DosProtectQueryFileInfo(hf:HFILE;ulInfoLevel:ULONG;
1402 VAR pInfo;cbInfoBuf:ULONG;
1403 fhFileHandleLockID:FHLOCK):APIRET;
1404 APIENTRY; 'DOSCALLS' index 646;
1405FUNCTION DosSetFileInfo(hf:HFILE;ulInfoLevel:ULONG;VAR pInfoBuf;
1406 cbInfoBuf:ULONG):APIRET;
1407 APIENTRY; 'DOSCALLS' index 218;
1408FUNCTION DosProtectSetFileInfo(hf:HFILE;ulInfoLevel:ULONG;VAR pInfoBuf;
1409 cbInfoBuf:ULONG;
1410 fhFileHandleLockID:FHLOCK):APIRET;
1411 APIENTRY; 'DOSCALLS' index 643;
1412FUNCTION DosQueryPathInfo(VAR pszPathName:CSTRING;ulInfoLevel:ULONG;VAR pInfoBuf;
1413 cbInfoBuf:ULONG):APIRET;
1414 APIENTRY; 'DOSCALLS' index 223;
1415FUNCTION DosSetPathInfo(pszPathName:CSTRING;ulInfoLevel:ULONG;VAR pInfoBuf;
1416 cbInfoBuf,flOptions:ULONG):APIRET;
1417 APIENTRY; 'DOSCALLS' index 219;
1418FUNCTION DosShutdown(ulReserved:ULONG):APIRET;
1419 APIENTRY; 'DOSCALLS' index 415;
1420FUNCTION DosEnumAttribute(ulRefType:ULONG;VAR pvFile;ulEntry:ULONG;
1421 VAR pvBuf;cbBuf:ULONG;VAR pulCount:ULONG;
1422 ulInfoLevel:ULONG):APIRET;
1423 APIENTRY; 'DOSCALLS' index 372;
1424FUNCTION DosProtectEnumAttribute(ulRefType:ULONG;VAR pvFile;
1425 ulEntry:ULONG;VAR pvBuf;cbBuf:ULONG;
1426 VAR pulCount:ULONG;ulInfoLevel:ULONG;
1427 fhFileHandleLockID:FHLOCK):APIRET;
1428 APIENTRY; 'DOSCALLS' index 636;
1429FUNCTION DosAllocMem(VAR ppb:POINTER;cb,flag:ULONG):APIRET;
1430 APIENTRY; 'DOSCALLS' index 299;
1431FUNCTION DosFreeMem(pb:POINTER):APIRET;
1432 APIENTRY; 'DOSCALLS' index 304;
1433FUNCTION DosSetMem(pb:POINTER;cb,flag:ULONG):APIRET;
1434 APIENTRY; 'DOSCALLS' index 305;
1435FUNCTION DosGiveSharedMem(pb:POINTER;apid:PID;flag:ULONG):APIRET;
1436 APIENTRY; 'DOSCALLS' index 303;
1437FUNCTION DosGetSharedMem(pb:POINTER;flag:ULONG):APIRET;
1438 APIENTRY; 'DOSCALLS' index 302;
1439FUNCTION DosGetNamedSharedMem(VAR ppb:POINTER;pszName:CSTRING;
1440 flag:ULONG):APIRET;
1441 APIENTRY; 'DOSCALLS' index 301;
1442FUNCTION DosAllocSharedMem(VAR ppb:POINTER;VAR pszName:CSTRING;
1443 cb,flag:ULONG):APIRET;
1444 APIENTRY; 'DOSCALLS' index 300;
1445FUNCTION DosQueryMem(pb:POINTER;VAR pcb,pFlag:ULONG):APIRET;
1446 APIENTRY; 'DOSCALLS' index 306;
1447FUNCTION DosSubAllocMem(pbBase:POINTER;VAR ppb:POINTER;
1448 cb:ULONG):APIRET;
1449 APIENTRY; 'DOSCALLS' index 345;
1450FUNCTION DosSubFreeMem(pbBase:POINTER;pb:POINTER;cb:ULONG):APIRET;
1451 APIENTRY; 'DOSCALLS' index 346;
1452FUNCTION DosSubSetMem(pbBase:POINTER;flag,cb:ULONG):APIRET;
1453 APIENTRY; 'DOSCALLS' index 344;
1454FUNCTION DosSubUnsetMem(pbBase:POINTER):APIRET;
1455 APIENTRY; 'DOSCALLS' index 347;
1456FUNCTION DosCreateEventSem(VAR pszName:CSTRING;VAR aphev:HEV;flAttr:ULONG;
1457 fState:BOOL):APIRET;
1458 APIENTRY; 'DOSCALLS' index 324;
1459FUNCTION DosOpenEventSem (VAR pszName:CSTRING;VAR aphev:HEV):APIRET;
1460 APIENTRY; 'DOSCALLS' index 325;
1461FUNCTION DosCloseEventSem(ahev:HEV):APIRET;
1462 APIENTRY; 'DOSCALLS' index 326;
1463FUNCTION DosResetEventSem(ahev:HEV;VAR pulPostCt:ULONG):APIRET;
1464 APIENTRY; 'DOSCALLS' index 327;
1465FUNCTION DosPostEventSem(ahev:HEV):APIRET;
1466 APIENTRY; 'DOSCALLS' index 328;
1467FUNCTION DosWaitEventSem(ahev:HEV;ulTimeout:ULONG):APIRET;
1468 APIENTRY; 'DOSCALLS' index 329;
1469FUNCTION DosQueryEventSem(ahev:HEV;VAR pulPostCt:ULONG):APIRET;
1470 APIENTRY; 'DOSCALLS' index 330;
1471FUNCTION DosCreateMutexSem(pszName:CSTRING;VAR aphmtx:HMTX;flAttr:ULONG;
1472 fState:BOOL):APIRET;
1473 APIENTRY; 'DOSCALLS' index 331;
1474FUNCTION DosOpenMutexSem (pszName:CSTRING;VAR phmtx:HMTX):APIRET;
1475 APIENTRY; 'DOSCALLS' index 332;
1476FUNCTION DosCloseMutexSem (ahmtx:HMTX):APIRET;
1477 APIENTRY; 'DOSCALLS' index 333;
1478FUNCTION DosRequestMutexSem(ahmtx:HMTX;ulTimeout:ULONG):APIRET;
1479 APIENTRY; 'DOSCALLS' index 334;
1480FUNCTION DosReleaseMutexSem(ahmtx:HMTX):APIRET;
1481 APIENTRY; 'DOSCALLS' index 335;
1482FUNCTION DosQueryMutexSem(ahmtx:HMTX;VAR appid:PID;VAR aptid:TID;
1483 VAR pulCount:ULONG):APIRET;
1484 APIENTRY; 'DOSCALLS' index 336;
1485FUNCTION DosCreateMuxWaitSem(VAR pszName:CSTRING;VAR aphmux:HMUX;cSemRec:ULONG;
1486 VAR pSemRec;flAttr:ULONG):APIRET;
1487 APIENTRY; 'DOSCALLS' index 337;
1488FUNCTION DosOpenMuxWaitSem(VAR pszName:CSTRING;VAR aphmux:HMUX):APIRET;
1489 APIENTRY; 'DOSCALLS' index 338;
1490FUNCTION DosCloseMuxWaitSem(ahmux:HMUX):APIRET;
1491 APIENTRY; 'DOSCALLS' index 339;
1492FUNCTION DosWaitMuxWaitSem(ahmux:HMUX;ulTimeout:ULONG;
1493 VAR pulUser:ULONG):APIRET;
1494 APIENTRY; 'DOSCALLS' index 340;
1495FUNCTION DosAddMuxWaitSem(ahmux:HMUX;VAR pSemRec:SEMRECORD):APIRET;
1496 APIENTRY; 'DOSCALLS' index 341;
1497FUNCTION DosDeleteMuxWaitSem(ahmux:HMUX;ahSem:HSEM):APIRET;
1498 APIENTRY; 'DOSCALLS' index 342;
1499FUNCTION DosQueryMuxWaitSem(ahmux:HMUX;VAR pcSemRec:ULONG;
1500 VAR pSemRec:SEMRECORD;
1501 VAR pflAttr:ULONG):APIRET;
1502 APIENTRY; 'DOSCALLS' index 343;
1503FUNCTION DosGetDateTime(VAR pdt:DATETIME):APIRET;
1504 APIENTRY; 'DOSCALLS' index 230;
1505FUNCTION DosSetDateTime(VAR pdt:DATETIME):APIRET;
1506 APIENTRY; 'DOSCALLS' index 292;
1507FUNCTION DosAsyncTimer(msec:ULONG;ahsem:HSEM;VAR aphtimer:HTIMER):APIRET;
1508 APIENTRY; 'DOSCALLS' index 350;
1509FUNCTION DosStartTimer(msec:ULONG;ahsem:HSEM;VAR aphtimer:HTIMER):APIRET;
1510 APIENTRY; 'DOSCALLS' index 351;
1511FUNCTION DosStopTimer(ahtimer:HTIMER):APIRET;
1512 APIENTRY; 'DOSCALLS' index 290;
1513FUNCTION DosLoadModule(pszName:CSTRING;cbName:ULONG;pszModname:CSTRING;
1514 VAR phmod:HMODULE):APIRET;
1515 APIENTRY; 'DOSCALLS' index 318;
1516FUNCTION DosFreeModule(hmod:HMODULE):APIRET;
1517 APIENTRY; 'DOSCALLS' index 322;
1518FUNCTION DosQueryProcAddr(hmod:HMODULE;ordinal:ULONG;VAR pszName:CSTRING;
1519 VAR ppfn:POINTER):APIRET;
1520 APIENTRY; 'DOSCALLS' index 321;
1521FUNCTION DosQueryModuleHandle(VAR pszModname:CSTRING;VAR phmod:HMODULE):APIRET;
1522 APIENTRY; 'DOSCALLS' index 319;
1523FUNCTION DosQueryModuleName(hmod:HMODULE;cbName:ULONG;VAR apch):APIRET;
1524 APIENTRY; 'DOSCALLS' index 320;
1525FUNCTION DosQueryProcType(hmod:HMODULE;ordinal:ULONG;VAR pszName:CSTRING;
1526 VAR pulproctype:ULONG):APIRET;
1527 APIENTRY; 'DOSCALLS' index 586;
1528FUNCTION DosGetResource(hmod:HMODULE;idType,idName:ULONG;
1529 VAR ppb:POINTER):APIRET;
1530 APIENTRY; 'DOSCALLS' index 352;
1531FUNCTION DosFreeResource(pb:POINTER):APIRET;
1532 APIENTRY; 'DOSCALLS' index 353;
1533FUNCTION DosQueryResourceSize(hmod:HMODULE;idt,idn:ULONG;
1534 VAR pulsize:ULONG):APIRET;
1535 APIENTRY; 'DOSCALLS' index 572;
1536FUNCTION DosQueryCtryInfo(cb:ULONG;VAR pcc:COUNTRYCODE;VAR pci:COUNTRYINFO;
1537 VAR pcbActual:ULONG):APIRET;
1538 APIENTRY; 'NLS' index 5;
1539FUNCTION DosQueryDBCSEnv(cb:ULONG;VAR pcc:COUNTRYCODE;
1540 VAR pBuf):APIRET;
1541 APIENTRY; 'NLS' index 6;
1542FUNCTION DosMapCase(cb:ULONG;VAR pcc:COUNTRYCODE;VAR apch):APIRET;
1543 APIENTRY; 'NLS' index 7;
1544FUNCTION DosQueryCollate(cb:ULONG;VAR pcc:COUNTRYCODE;
1545 VAR apch;VAR pcch:ULONG):APIRET;
1546 APIENTRY; 'NLS' index 8;
1547FUNCTION DosQueryCp(cb:ULONG;VAR arCP,pcCP:ULONG):APIRET;
1548 APIENTRY; 'DOSCALLS' index 291;
1549FUNCTION DosSetProcessCp(cp:ULONG):APIRET;
1550 APIENTRY; 'DOSCALLS' index 289;
1551FUNCTION DosSetExceptionHandler(VAR PERegrec:EXCEPTIONREGISTRATIONRECORD):APIRET;
1552 APIENTRY; 'DOSCALLS' index 354;
1553FUNCTION DosUnsetExceptionHandler(VAR PERegRec:EXCEPTIONREGISTRATIONRECORD):APIRET;
1554 APIENTRY; 'DOSCALLS' index 355;
1555FUNCTION DosRaiseException(VAR Pexcept:EXCEPTIONREPORTRECORD):APIRET;
1556 APIENTRY; 'DOSCALLS' index 356;
1557FUNCTION DosSendSignalException(apid:PID;exception:ULONG):APIRET;
1558 APIENTRY; 'DOSCALLS' index 379;
1559FUNCTION DosUnwindException(VAR pHandler:EXCEPTIONREGISTRATIONRECORD;
1560 VAR pTargetIP;
1561 VAR pERepRec:EXCEPTIONREPORTRECORD):APIRET;
1562 APIENTRY; 'DOSCALLS' index 357;
1563FUNCTION DosSetSignalExceptionFocus(flag:BOOL;VAR pulTimes:ULONG):APIRET;
1564 APIENTRY; 'DOSCALLS' index 378;
1565FUNCTION DosEnterMustComplete(VAR pulNesting:ULONG):APIRET;
1566 APIENTRY; 'DOSCALLS' index 380;
1567FUNCTION DosExitMustComplete(VAR pulNesting:ULONG):APIRET;
1568 APIENTRY; 'DOSCALLS' index 381;
1569FUNCTION DosAcknowledgeSignalException(ulSignalNum:ULONG):APIRET;
1570 APIENTRY; 'DOSCALLS' index 418;
1571FUNCTION DosCreatePipe(VAR phfRead,phfWrite:HFILE;cb:ULONG):APIRET;
1572 APIENTRY; 'DOSCALLS' index 239;
1573FUNCTION DosCloseQueue(hq:HQUEUE):APIRET;
1574 APIENTRY; 'QUECALLS' index 11;
1575FUNCTION DosCreateQueue(VAR phq:HQUEUE;priority:ULONG;VAR pszName:CSTRING):APIRET;
1576 APIENTRY; 'QUECALLS' index 16;
1577FUNCTION DosOpenQueue(VAR appid:PID;VAR phq:HQUEUE;VAR pszName:CSTRING):APIRET;
1578 APIENTRY; 'QUECALLS' index 15;
1579FUNCTION DosPeekQueue(hq:HQUEUE;VAR pRequest:REQUESTDATA;VAR pcbData:ULONG;
1580 VAR ppbuf;VAR element:ULONG;nowait:BOOL;
1581 VAR ppriority;hsem:HEV):APIRET;
1582 APIENTRY; 'QUECALLS' index 13;
1583FUNCTION DosPurgeQueue(hq:HQUEUE):APIRET;
1584 APIENTRY; 'QUECALLS' index 10;
1585FUNCTION DosQueryQueue(hq:HQUEUE;VAR pcbEntries:ULONG):APIRET;
1586 APIENTRY; 'QUECALLS' index 12;
1587FUNCTION DosReadQueue(hq:HQUEUE;VAR pRequest:REQUESTDATA;VAR pcbData:ULONG;
1588 VAR ppbuf;element:ULONG;wait:BOOL;
1589 VAR ppriority;hsem:HEV):APIRET;
1590 APIENTRY; 'QUECALLS' index 9;
1591FUNCTION DosWriteQueue(hq:HQUEUE;request,cbData:ULONG;VAR pbData;
1592 priority:ULONG):APIRET;
1593 APIENTRY; 'QUECALLS' index 14;
1594FUNCTION DosErrorAPI(error:ULONG):APIRET;
1595 APIENTRY; 'DOSCALLS' index 212;
1596FUNCTION DosErrClass(code:ULONG;VAR pClass,pAction,pLocus:ULONG):APIRET;
1597 APIENTRY; 'DOSCALLS' index 211;
1598FUNCTION DosInsertMessage(VAR pTable;cTable:ULONG;VAR pszMsg:CSTRING;cbMsg:ULONG;
1599 VAR pBuf;cbBuf:ULONG;VAR pcbMsg:ULONG):APIRET;
1600 APIENTRY; 'MSG' index 4;
1601FUNCTION DosPutMessage(ahfile:HFILE;cbMsg:ULONG;VAR pBuf):APIRET;
1602 APIENTRY; 'MSG' index 5;
1603FUNCTION DosQuerySysInfo(iStart,iLast:ULONG;VAR pBuf;cbBuf:ULONG):APIRET;
1604 APIENTRY; 'DOSCALLS' index 348;
1605FUNCTION DosScanEnv(VAR pszName:CSTRING;VAR ppszValue:PCHAR):APIRET;
1606 APIENTRY; 'DOSCALLS' index 227;
1607FUNCTION DosSearchPath(flag:ULONG;VAR pszPathOrName,pszFilename:CSTRING;
1608 VAR pBuf;cbBuf:ULONG):APIRET;
1609 APIENTRY; 'DOSCALLS' index 228;
1610FUNCTION DosQueryRASInfo(index:ULONG;VAR Addr:POINTER):APIRET;
1611 APIENTRY; 'DOSCALLS' index 112;
1612FUNCTION DosStartSession(VAR psd:STARTDATA;VAR pidSession:ULONG;
1613 VAR appid:PID):APIRET;
1614 APIENTRY; 'SESMGR' index 37;
1615FUNCTION DosSetSession(idSession:ULONG;VAR psd:STATUSDATA):APIRET;
1616 APIENTRY; 'SESMGR' index 39;
1617FUNCTION DosSelectSessionAPI(idSession:ULONG):APIRET;
1618 APIENTRY; 'SESMGR' index 38;
1619FUNCTION DosStopSession(scope,idSession:ULONG):APIRET;
1620 APIENTRY; 'SESMGR' index 40;
1621FUNCTION DosQueryAppType(CONST pszName:CSTRING;VAR pFlags:ULONG):APIRET;
1622 APIENTRY; 'DOSCALLS' index 323;
1623FUNCTION DosDevConfig(VAR pdevinfo;item:ULONG):APIRET;
1624 APIENTRY; 'DOSCALLS' index 231;
1625FUNCTION DosDevIOCtl(hDevice:HFILE;category,afunction:ULONG;
1626 VAR pParams;cbParmLenMax:ULONG;VAR pcbParmLen:ULONG;
1627 VAR pData;cbDataLenMax:ULONG;VAR pcbDataLen:ULONG):APIRET;
1628 APIENTRY; 'DOSCALLS' index 284;
1629FUNCTION DosPhysicalDisk(afunction:ULONG;VAR pBuf;cbBuf:ULONG;
1630 VAR pParams;cbParams:ULONG):APIRET;
1631 APIENTRY; 'DOSCALLS' index 287;
1632FUNCTION DosCallNPipe(VAR pszName:CSTRING;VAR pInbuf;cbIn:ULONG;VAR pOutbuf;
1633 cbOut:ULONG;VAR pcbActual:ULONG;msec:ULONG):APIRET;
1634 APIENTRY; 'DOSCALLS' index 240;
1635FUNCTION DosConnectNPipe(ahpipe:HPIPE):APIRET;
1636 APIENTRY; 'DOSCALLS' index 241;
1637FUNCTION DosDisConnectNPipe(ahpipe:HPIPE):APIRET;
1638 APIENTRY; 'DOSCALLS' index 242;
1639FUNCTION DosCreateNPipe(VAR pszName:CSTRING;VAR apHpipe:HPIPE;openmode,pipemode,
1640 cbInbuf,cbOutbuf,msec:ULONG):APIRET;
1641 APIENTRY; 'DOSCALLS' index 243;
1642FUNCTION DosPeekNPipe(ahpipe:HPIPE;VAR pBuf;cbBuf:ULONG;VAR pcbActual:ULONG;
1643 VAR pAvail:AVAILDATA;VAR pState:ULONG):APIRET;
1644 APIENTRY; 'DOSCALLS' index 244;
1645FUNCTION DosQueryNPHState(ahpipe:HPIPE;VAR pState:ULONG):APIRET;
1646 APIENTRY; 'DOSCALLS' index 245;
1647FUNCTION DosQueryNPipeInfo(ahpipe:HPIPE;infolevel:ULONG;VAR pBuf;
1648 cbBuf:ULONG):APIRET;
1649 APIENTRY; 'DOSCALLS' index 248;
1650FUNCTION DosQueryNPipeSemState(ahsem:HSEM;VAR pnpss:PIPESEMSTATE;
1651 cbBuf:ULONG):APIRET;
1652 APIENTRY; 'DOSCALLS' index 249;
1653FUNCTION DosRawReadNPipe(VAR pszName:CSTRING;cb:ULONG;VAR pLen:ULONG;
1654 VAR pBuf):APIRET;
1655 APIENTRY; 'DOSCALLS' index 246;
1656FUNCTION DosRawWriteNPipe(VAR pszName:CSTRING;cb:ULONG):APIRET;
1657 APIENTRY; 'DOSCALLS' index 247;
1658FUNCTION DosSetNPHState(ahpipe:HPIPE;state:ULONG):APIRET;
1659 APIENTRY; 'DOSCALLS' index 250;
1660FUNCTION DosSetNPipeSem(ahpipe:HPIPE;ahsem:HSEM;key:ULONG):APIRET;
1661 APIENTRY; 'DOSCALLS' index 251;
1662FUNCTION DosTransactNPipe(ahpipe:HPIPE;VAR pOutbuf;cbOut:ULONG;
1663 VAR pInbuf;cbIn:ULONG;VAR pcbRead:ULONG):APIRET;
1664 APIENTRY; 'DOSCALLS' index 252;
1665FUNCTION DosWaitNPipe(VAR pszName:CSTRING;msec:ULONG):APIRET;
1666 APIENTRY; 'DOSCALLS' index 253;
1667FUNCTION DosTmrQueryFreq(VAR pulTmrFreq:ULONG):APIRET;
1668 APIENTRY; 'DOSCALLS' index 362;
1669FUNCTION DosTmrQueryTime(VAR pqwTmrTime):APIRET;
1670 APIENTRY; 'DOSCALLS' index 363;
1671FUNCTION DosRegisterPerfCtrs(VAR pbDataBlk;VAR pbTextBlk;
1672 flFlags:ULONG):APIRET;
1673 APIENTRY; 'DOSCALLS' index 367;
1674FUNCTION DosOpenVDD(VAR pszVDD:CSTRING;VAR aphvdd:HVDD):APIRET;
1675 APIENTRY; 'DOSCALLS' index 308;
1676FUNCTION DosRequestVDD(ahvdd:HVDD;asgid:SGID;cmd,cbInput:ULONG;VAR pInput;
1677 cbOutput:ULONG;VAR pOutput):APIRET;
1678 APIENTRY; 'DOSCALLS' index 309;
1679FUNCTION DosCloseVDD(ahvdd:HVDD):APIRET;
1680 APIENTRY; 'DOSCALLS' index 310;
1681FUNCTION DosQueryDOSProperty(asgid:SGID;VAR pszName:CSTRING;cb:ULONG;VAR apch):APIRET;
1682 APIENTRY; 'DOSCALLS' index 373;
1683FUNCTION DosSetDOSProperty(asgid:SGID;VAR pszName:CSTRING;cb:ULONG;pch:CSTRING):APIRET;
1684 APIENTRY; 'DOSCALLS' index 374;
1685
1686END; {IMPORTS}
1687
1688
1689{OS/2 API errors ??}
1690
1691{exception instance is deleted if pBuf crosses 64K boundary}
1692FUNCTION DosQueryCurrentDir(disknum:LONGWORD;VAR pBuf;
1693 VAR pcbBuf:LONGWORD):LONGWORD;
1694
1695{ds and es are zeroed under some circumstances}
1696FUNCTION DosSelectSession(idSession:ULONG):APIRET;
1697
1698{additional parameter required in redirected function}
1699FUNCTION DosQueryMessageCP(VAR pb;cb:ULONG;VAR pszFilename:CSTRING;
1700 VAR cbBuf:ULONG):APIRET;
1701
1702{additional parameter required in redirected function}
1703FUNCTION DosGetMessage(VAR pTable;cTable:ULONG; VAR pBuf;cbBuf,msgnumber:ULONG;
1704 CONST pszFile:CSTRING;VAR pcbMsg:ULONG):APIRET;
1705
1706
1707IMPLEMENTATION
1708
1709
1710FUNCTION DosQueryCurrentDir(disknum:LONGWORD;VAR pBuf;
1711 VAR pcbBuf:LONGWORD):LONGWORD;
1712BEGIN
1713 //a bug in OS/2 ??
1714 //exception instance is deleted if pBuf crosses 64K boundary
1715 ASM
1716 XOR EAX,EAX
1717 DB $64,$FF,$30 //PUSHD FS:[EAX]
1718 END;
1719 Result := DosQueryCurrentDirAPI(disknum,pBuf,pcbBuf);
1720 ASM
1721 XOR EAX,EAX
1722 DB $64,$8F,$00 //POPD FS:[EAX]
1723 END;
1724END;
1725
1726
1727FUNCTION DosSelectSession(idSession:ULONG):APIRET;
1728BEGIN
1729 //a bug in OS/2 ???
1730 //DS and ES are sometimes set to 0 selectors !
1731 ASM
1732 DB $1E,06 //PUSH DS PUSH ES
1733 END;
1734 Result := DosSelectSessionAPI(idSession);
1735 ASM
1736 DB 07,$1F //POP ES POP DS
1737 END;
1738END;
1739
1740
1741
1742
1743IMPORTS
1744
1745FUNCTION DosIQueryMessageCP(VAR pb;cb:ULONG;VAR pszFilename:CSTRING;
1746 VAR cbBuf:ULONG;Signature:POINTER):APIRET;
1747 APIENTRY; 'MSG' index 8;
1748FUNCTION DosTrueGetMessage(Signature:POINTER;VAR pTable;cTable:ULONG;
1749 VAR pBuf;cbBuf,msgnumber:ULONG;
1750 CONST pszFile:CSTRING;VAR pcbMsg:ULONG):APIRET;
1751 APIENTRY; 'MSG' index 6;
1752
1753END; {IMPORTS}
1754
1755VAR
1756 MagicHeaderAddress:POINTER;
1757 MagicEndAddress:POINTER;
1758
1759{start of _MSGSEG32 segment}
1760ASSEMBLER
1761BseDos.!MagicHeaderStart PROC NEAR32
1762 DB $0FF
1763 DB $4D,$53,$47,$53,$45,$47,$33,$32, 0 //'MSGSEG32'
1764 DD $8001
1765 DD @BseDos.!MAGICHEADEREND
1766BseDos.!MagicHeaderStart ENDP
1767END;
1768
1769FUNCTION DosGetMessage(VAR pTable;cTable:ULONG; VAR pBuf;cbBuf,msgnumber:ULONG;
1770 CONST pszFile:CSTRING;VAR pcbMsg:ULONG):APIRET;
1771BEGIN
1772 Result := DosTrueGetMessage(MagicHeaderAddress,pTable,cTable,
1773 pBuf,cbBuf,msgnumber,pszFile,pcbMsg);
1774END;
1775
1776
1777FUNCTION DosQueryMessageCP(VAR pb;cb:ULONG;VAR pszFilename:CSTRING;
1778 VAR cbBuf:ULONG):APIRET;
1779BEGIN
1780 Result := DosIQueryMessageCP(pb,cb,pszFileName,cbBuf,MagicEndAddress);
1781END;
1782
1783ASSEMBLER
1784BseDos.!MagicHeaderEnd PROC NEAR32
1785 DD $0FFFF0000
1786BseDos.!MagicHeaderEnd ENDP
1787END;
1788
1789BEGIN
1790 ASM
1791 MOV EAX,@BseDos.!MagicHeaderStart
1792 MOV BseDos.MagicHeaderAddress,EAX
1793 MOV EAX,@BseDos.!MagicHeaderEnd
1794 MOV BseDos.MagicEndAddress,EAX
1795 END;
1796END.
Note: See TracBrowser for help on using the repository browser.