2
$Id: doslibd.inc,v 1.5 2005/02/14 17:13:30 peter Exp $
3
This file is part of the Free Pascal run time library.
5
dos definitions (V50) for MorphOS/PowerPC
6
Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
9
Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
11
See the file COPYING.FPC, included in this distribution,
12
for details about the copyright.
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
**********************************************************************}
22
{ * dos global definitions (V50)
23
*********************************************************************
28
DOSNAME = 'dos.library';
37
MODE_READWRITE = 1004;
40
OFFSET_BEGINNING = -1;
43
OFFSET_BEGINING = OFFSET_BEGINNING; { * Typo fix * }
60
PDateStamp = ^TDateStamp;
61
TDateStamp = packed record
68
TICKS_PER_SECOND = 50;
72
PFileInfoBlock = ^TFileInfoBlock;
73
TFileInfoBlock = packed record
74
fib_DiskKey : LongInt;
75
fib_DirEntryType: LongInt;
76
fib_FileName : Array[0..107] Of Char;
77
fib_Protection : LongInt;
78
fib_EntryType : LongInt;
80
fib_NumBlocks : LongInt;
81
fib_Date : TDateStamp;
82
fib_Comment : Array[0..79] Of Char;
87
fib_Reserved : Array[0..31] Of Char;
93
FIBB_OTR_EXECUTE = 13;
109
FIBF_OTR_READ = (1 Shl FIBB_OTR_READ);
110
FIBF_OTR_WRITE = (1 Shl FIBB_OTR_WRITE);
111
FIBF_OTR_EXECUTE = (1 Shl FIBB_OTR_EXECUTE);
112
FIBF_OTR_DELETE = (1 Shl FIBB_OTR_DELETE);
113
FIBF_GRP_READ = (1 Shl FIBB_GRP_READ);
114
FIBF_GRP_WRITE = (1 Shl FIBB_GRP_WRITE);
115
FIBF_GRP_EXECUTE = (1 Shl FIBB_GRP_EXECUTE);
116
FIBF_GRP_DELETE = (1 Shl FIBB_GRP_DELETE);
118
FIBF_SCRIPT = (1 Shl FIBB_SCRIPT);
119
FIBF_PURE = (1 Shl FIBB_PURE);
120
FIBF_ARCHIVE = (1 Shl FIBB_ARCHIVE);
121
FIBF_READ = (1 Shl FIBB_READ);
122
FIBF_WRITE = (1 Shl FIBB_WRITE);
123
FIBF_EXECUTE = (1 Shl FIBB_EXECUTE);
124
FIBF_DELETE = (1 Shl FIBB_DELETE);
135
PInfoData = ^TInfoData;
136
TInfoData = packed record
137
id_NumSoftErrors: LongInt;
138
id_UnitNumber : LongInt;
139
id_DiskState : LongInt;
140
id_NumBlocks : LongInt;
141
id_NumBlocksUsed: LongInt;
142
id_BytesPerBlock: LongInt;
143
id_DiskType : LongInt;
144
id_VolumeNode : LongInt; {BPTR}
150
ID_WRITE_PROTECTED = 80;
154
ID_NO_DISK_PRESENT = -1;
155
ID_UNREADABLE_DISK = $42414400;
156
ID_DOS_DISK = $444F5300;
157
ID_FFS_DISK = $444F5301;
158
ID_INTER_DOS_DISK = $444F5302;
159
ID_INTER_FFS_DISK = $444F5303;
160
ID_FASTDIR_DOS_DISK = $444F5304;
161
ID_FASTDIR_FFS_DISK = $444F5305;
162
ID_LNFS_DOS_DISK = $444F5306;
163
ID_LNFS_FFS_DISK = $444F5307;
164
ID_NOT_REALLY_DOS = $4E444F53;
165
ID_KICKSTART_DISK = $4B49434B;
166
ID_MSDOS_DISK = $4d534400;
169
ERROR_NO_FREE_STORE = 103;
170
ERROR_TASK_TABLE_FULL = 105;
171
ERROR_BAD_TEMPLATE = 114;
172
ERROR_BAD_NUMBER = 115;
173
ERROR_REQUIRED_ARG_MISSING = 116;
174
ERROR_KEY_NEEDS_ARG = 117;
175
ERROR_TOO_MANY_ARGS = 118;
176
ERROR_UNMATCHED_QUOTES = 119;
177
ERROR_LINE_TOO_LONG = 120;
178
ERROR_FILE_NOT_OBJECT = 121;
179
ERROR_INVALID_RESIDENT_LIBRARY = 122;
180
ERROR_NO_DEFAULT_DIR = 201;
181
ERROR_OBJECT_IN_USE = 202;
182
ERROR_OBJECT_EXISTS = 203;
183
ERROR_DIR_NOT_FOUND = 204;
184
ERROR_OBJECT_NOT_FOUND = 205;
185
ERROR_BAD_STREAM_NAME = 206;
186
ERROR_OBJECT_TOO_LARGE = 207;
187
ERROR_ACTION_NOT_KNOWN = 209;
188
ERROR_INVALID_COMPONENT_NAME = 210;
189
ERROR_INVALID_LOCK = 211;
190
ERROR_OBJECT_WRONG_TYPE = 212;
191
ERROR_DISK_NOT_VALIDATED = 213;
192
ERROR_DISK_WRITE_PROTECTED = 214;
193
ERROR_RENAME_ACROSS_DEVICES = 215;
194
ERROR_DIRECTORY_NOT_EMPTY = 216;
195
ERROR_TOO_MANY_LEVELS = 217;
196
ERROR_DEVICE_NOT_MOUNTED = 218;
197
ERROR_SEEK_ERROR = 219;
198
ERROR_COMMENT_TOO_BIG = 220;
199
ERROR_DISK_FULL = 221;
200
ERROR_DELETE_PROTECTED = 222;
201
ERROR_WRITE_PROTECTED = 223;
202
ERROR_READ_PROTECTED = 224;
203
ERROR_NOT_A_DOS_DISK = 225;
205
ERROR_NO_MORE_ENTRIES = 232;
207
ERROR_IS_SOFT_LINK = 233;
208
ERROR_OBJECT_LINKED = 234;
209
ERROR_BAD_HUNK = 235;
210
ERROR_NOT_IMPLEMENTED = 236;
211
ERROR_RECORD_NOT_LOCKED = 240;
212
ERROR_LOCK_COLLISION = 241;
213
ERROR_LOCK_TIMEOUT = 242;
214
ERROR_UNLOCK_ERROR = 243;
223
SIGBREAKB_CTRL_C = 12;
224
SIGBREAKB_CTRL_D = 13;
225
SIGBREAKB_CTRL_E = 14;
226
SIGBREAKB_CTRL_F = 15;
228
SIGBREAKF_CTRL_C = (1 Shl SIGBREAKB_CTRL_C);
229
SIGBREAKF_CTRL_D = (1 Shl SIGBREAKB_CTRL_D);
230
SIGBREAKF_CTRL_E = (1 Shl SIGBREAKB_CTRL_E);
231
SIGBREAKF_CTRL_F = (1 Shl SIGBREAKB_CTRL_F);
236
LOCK_SAME_VOLUME = 1;
237
LOCK_SAME_HANDLER = LOCK_SAME_VOLUME;
256
DOS_EXALLCONTROL = 1;
264
{ * dos date/time definitions
265
*********************************************************************
270
{ * Required to avoid conflict with default types * }
271
_PDateTime = ^_TDateTime;
272
_TDateTime = packed record
273
dat_Stamp : TDateStamp;
276
dat_StrDay : Pointer;
277
dat_StrDate: Pointer;
278
dat_StrTime: Pointer;
286
DTF_SUBST = (1 Shl DTB_SUBST);
288
DTF_FUTURE = (1 Shl DTB_FUTURE);
295
FORMAT_MAX = FORMAT_CDN;
300
{ * dos extended structures definitions
301
*********************************************************************
306
PProcess = ^TProcess;
307
TProcess = packed record
309
pr_MsgPort : TMsgPort;
311
pr_SegList : DWord; { BPTR }
312
pr_StackSize : LongInt; { 68k stacksize! }
313
pr_GlobVec : Pointer;
314
pr_TaskNum : LongInt;
315
pr_StackBase : DWord; { BPTR }
316
pr_Result2 : LongInt;
317
pr_CurrentDir : DWord; { BPTR }
318
pr_CIS : DWord; { BPTR }
319
pr_COS : DWord; { BPTR }
320
pr_ConsoleTask : Pointer;
321
pr_FileSystemTask: Pointer;
322
pr_CLI : DWord; { BPTR }
323
pr_ReturnAddr : Pointer;
324
pr_PktWait : Pointer;
325
pr_WindowPtr : Pointer;
326
pr_HomeDir : DWord; { BPTR }
328
pr_ExitCode : Pointer; { Procedure }
329
pr_ExitData : LongInt;
330
pr_Arguments : PChar;
331
pr_LocalVars : TMinList;
332
pr_ShellPrivate : DWord;
333
pr_CES : DWord; { BPTR }
338
PRF_FREESEGLIST = (1 Shl PRB_FREESEGLIST);
341
PRF_FREECURRDIR = (1 Shl PRB_FREECURRDIR);
344
PRF_FREECLI = (1 Shl PRB_FREECLI);
347
PRF_CLOSEINPUT = (1 Shl PRB_CLOSEINPUT);
350
PRF_CLOSEOUTPUT = (1 Shl PRB_CLOSEOUTPUT);
353
PRF_FREEARGS = (1 Shl PRB_FREEARGS);
357
PFileHandle = ^TFileHandle;
358
TFileHandle = packed record
360
fh_Interactive: LongInt;
370
{ *** V50 MorphOS *** }
371
fh_BufSize : LongInt;
372
fh_OrigBuf : LongInt;
376
PDOSPacket = ^TDOSPacket;
377
TDOSPacket = packed record
381
0 : ( dp_Action : Longint;
386
1 : ( dp_Type: Longint;
400
PStandardPacket = ^TStandardPacket;
401
TStandardPacket = packed record
410
ACTION_GET_BLOCK = 2; { *** OBSOLETE *** }
414
ACTION_CURRENT_VOLUME = 7;
415
ACTION_LOCATE_OBJECT = 8;
416
ACTION_RENAME_DISK = 9;
419
ACTION_FREE_LOCK = 15;
420
ACTION_DELETE_OBJECT = 16;
421
ACTION_RENAME_OBJECT = 17;
422
ACTION_MORE_CACHE = 18;
423
ACTION_COPY_DIR = 19;
424
ACTION_WAIT_CHAR = 20;
425
ACTION_SET_PROTECT = 21;
426
ACTION_CREATE_DIR = 22;
427
ACTION_EXAMINE_OBJECT = 23;
428
ACTION_EXAMINE_NEXT = 24;
429
ACTION_DISK_INFO = 25;
432
ACTION_SET_COMMENT = 28;
436
ACTION_DISK_TYPE = 32;
437
ACTION_DISK_CHANGE = 33;
438
ACTION_SET_DATE = 34;
440
ACTION_SAME_LOCK = 40;
442
ACTION_SCREEN_MODE = 994;
444
ACTION_CHANGE_SIGNAL = 995;
446
ACTION_READ_RETURN = 1001;
447
ACTION_WRITE_RETURN = 1002;
449
ACTION_FINDUPDATE = 1004;
450
ACTION_FINDINPUT = 1005;
451
ACTION_FINDOUTPUT = 1006;
454
ACTION_FORMAT = 1020;
455
ACTION_MAKE_LINK = 1021;
457
ACTION_SET_FILE_SIZE = 1022;
458
ACTION_WRITE_PROTECT = 1023;
460
ACTION_READ_LINK = 1024;
461
ACTION_FH_FROM_LOCK = 1026;
462
ACTION_IS_FILESYSTEM = 1027;
463
ACTION_CHANGE_MODE = 1028;
465
ACTION_COPY_DIR_FH = 1030;
466
ACTION_PARENT_FH = 1031;
467
ACTION_EXAMINE_ALL = 1033;
468
ACTION_EXAMINE_FH = 1034;
470
ACTION_EXAMINE_ALL_END = 1035;
471
ACTION_SET_OWNER = 1036;
473
ACTION_LOCK_RECORD = 2008;
474
ACTION_FREE_RECORD = 2009;
476
ACTION_ADD_NOTIFY = 4097;
477
ACTION_REMOVE_NOTIFY = 4098;
479
ACTION_SERIALIZE_DISK = 4200;
481
ACTION_GET_DISK_FSSM = 4201;
482
ACTION_FREE_DISK_FSSM = 4202;
486
PErrorString = ^TErrorString;
487
TErrorString = packed record
488
estr_Nums: Pointer; { ^LongInt }
489
estr_Byte: Pointer; { ^Byte }
493
PRootNode = ^TRootNode;
494
TRootNode = packed record
495
rn_TaskArray : DWord; { BPTR }
496
rn_ConsoleSegment : DWord; { BPTR }
497
rn_Time : TDateStamp;
498
rn_RestartSeg : LongInt;
499
rn_Info : DWord; { BPTR }
500
rn_FileHandlerSegment: DWord; { BPTR }
501
rn_CliList : TMinList;
502
rn_BootProc : PMsgPort;
503
rn_ShellSegment : DWord; { BPTR }
508
PDOSLibrary = ^TDOSLibrary;
509
TDOSLibrary = packed record
516
dl_Errors : PErrorString;
517
dl_TimeReq : PTimeRequest;
518
dl_UtilityBase : PLibrary;
519
dl_IntuitionBase: PLibrary;
525
RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
528
RNF_PRIVATE1 = (1 Shl RNB_PRIVATE1);
532
PCliProcList = ^TCliProcList;
533
TCliProcList = packed record
536
cpl_Array: Array[0..0] Of PMsgPort;
540
PDOSInfo = ^TDOSInfo;
541
TDOSInfo = packed record
543
0 : ( di_ResList: DWord; { BPTR }
545
1 : ( di_McName : DWord; { BPTR }
546
di_DevInfo : DWord; { BPTR }
547
di_Devices : DWord; { BPTR }
548
di_Handlers : DWord; { BPTR }
549
di_NetHand : Pointer;
550
di_DevLock : TSignalSemaphore;
551
di_EntryLock : TSignalSemaphore;
552
di_DeleteLock: TSignalSemaphore;
557
PSegment = ^TSegment;
558
TSegment = packed record
559
seg_Next : DWord; { BPTR }
561
seg_Seg : DWord; { BPTR }
562
seg_Name : Array[0..3] Of Byte;
563
{ * seg_Name continues * }
570
CMD_NOTLOADED = -998;
575
PCommandLineInterface = ^TCommandLineInterface;
576
TCommandLineInterface = packed record
577
cli_Result2 : LongInt;
578
cli_SetName : DWord; { BSTR }
579
cli_CommandDir : DWord; { BPTR }
580
cli_ReturnCode : LongInt;
581
cli_CommandName : DWord; { BSTR }
582
cli_FailLevel : LongInt;
583
cli_Prompt : DWord; { BSTR }
584
cli_StandardInput : DWord; { BPTR }
585
cli_CurrentInput : DWord; { BPTR }
586
cli_CommandFile : DWord; { BSTR }
587
cli_Interactive : LongInt;
588
cli_Background : LongInt;
589
cli_CurrentOutput : DWord; { BPTR }
590
cli_DefaultStack : LongInt;
591
cli_StandardOutput: DWord; { BPTR }
592
cli_Module : DWord; { BPTR }
596
PDeviceList = ^TDeviceList;
597
TDeviceList = packed record
598
dl_Next : DWord; { BPTR }
601
dl_Lock : DWord; { BPTR }
602
dl_VolumeDate: TDateStamp;
603
dl_LockList : DWord; { BPTR }
604
dl_DiskType : LongInt;
606
dl_Name : DWord; { BSTR }
610
PDevInfo = ^TDevInfo;
611
TDevInfo = packed record
612
dvi_Next : DWord; { BPTR }
615
dvi_Lock : DWord; { BPTR }
616
dvi_Handler : DWord; { BSTR }
617
dvi_StackSize: LongInt;
618
dvi_Priority : LongInt;
619
dvi_Startup : LongInt;
620
dvi_SegList : DWord; { BPTR }
621
dvi_GlobVec : DWord; { BPTR }
622
dvi_Name : DWord; { BSTR }
626
PAssignList = ^TAssignList;
627
TAssignList = packed record
628
al_Next: PAssignList;
629
al_Lock: DWord; { BPTR }
633
PDOSList = ^TDOSList;
634
TDOSList = packed record
635
dol_Next: DWord; { BPTR }
638
dol_Lock: DWord; { BPTR }
640
0: ( dol_handler : record
641
dol_Handler : DWord; { BSTR }
642
dol_StackSize: LongInt;
643
dol_Priority : LongInt;
645
dol_SegList : DWord; { BPTR }
646
dol_GlobVec : DWord; { BPTR }
649
1: ( dol_volume : record
650
dol_VolumeDate: TDateStamp;
651
dol_LockList : DWord; { BPTR }
652
dol_DiskType : LongInt;
655
2: ( dol_assign : record
656
dol_AssignName: PChar;
657
dol_List : PAssignList;
660
3: ( dol_Misc: array[0..23] of Byte;
661
dol_Name: DWord; { BPTR }
676
PDevProc = ^TDevProc;
677
TDevProc = packed record
679
dvp_Lock : DWord; { BPTR }
681
dvp_DevNode: PDOSList;
687
DVPF_UNLOCK = (1 Shl DVPB_UNLOCK);
690
DVPF_ASSIGN = (1 Shl DVPB_ASSIGN);
694
LDF_READ = (1 Shl LDB_READ);
697
LDF_WRITE = (1 Shl LDB_WRITE);
700
LDF_DEVICES = (1 Shl LDB_DEVICES);
703
LDF_VOLUMES = (1 Shl LDB_VOLUMES);
706
LDF_ASSIGNS = (1 Shl LDB_ASSIGNS);
709
LDF_ENTRY = (1 Shl LDB_ENTRY);
712
LDF_DELETE = (1 Shl LDB_DELETE);
714
LDF_ALL = (LDF_DEVICES Or LDF_VOLUMES Or LDF_ASSIGNS);
718
PFileLock = ^TFileLock;
719
TFileLock = packed record
720
fl_Link : DWord; { BPTR }
724
fl_Volume: DWord; { BPTR }
736
ABORT_DISK_ERROR = 296;
742
RUN_SYSTEM_ASYNCH = -3;
755
{ * dos asl definitions
756
*********************************************************************
762
TAChain = packed record
765
an_Lock : DWord; { BPTR }
766
an_Info : TFileInfoBlock;
768
an_String: Array[0..0] Of Char;
769
{ * an_String continues * }
773
PAnchorPath = ^TAnchorPath;
774
TAnchorPath = packed record
776
0 : ( ap_First: PAChain;
779
1 : ( ap_Base : PAChain;
780
ap_Current : PAChain;
781
ap_BreakBits : LongInt;
782
ap_FoundBreak: LongInt;
784
ap_Reserved : ShortInt;
785
ap_Strlen : SmallInt;
786
ap_Info : TFileInfoBlock;
787
ap_Buf : Array[0..0] of Char;
788
{ * an_Buf continues * }
795
APF_DOWILD = (1 Shl APB_DOWILD);
798
APF_ITSWILD = (1 Shl APB_ITSWILD);
801
APF_DODIR = (1 Shl APB_DODIR);
804
APF_DIDDIR = (1 Shl APB_DIDDIR);
807
APF_NOMEMERR = (1 Shl APB_NOMEMERR);
810
APF_DODOT = (1 Shl APB_DODOT);
813
APF_DirChanged = (1 Shl APB_DirChanged);
815
APB_FollowHLinks = 7;
816
APF_FollowHLinks = (1 Shl APB_FollowHLinks);
820
APSF_EXTENDED = (1 Shl APSB_EXTENDED);
822
APEB_DoMultiAssigns = 0;
823
APEF_DoMultiAssigns = (1 Shl APEB_DoMultiAssigns);
825
APEB_FutureExtension = 7;
826
APEF_FutureExtension = (1 Shl APEB_FutureExtension);
830
DDF_PatternBit = (1 Shl DDB_PatternBit);
833
DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
836
DDF_Completed = (1 Shl DDB_Completed);
839
DDF_AllBit = (1 Shl DDB_AllBit);
842
DDF_Single = (1 Shl DDB_Single);
863
ERROR_BUFFER_OVERFLOW = 303;
865
ERROR_NOT_EXECUTABLE = 305;
869
{ * dos hunk definitions
870
*********************************************************************
882
HUNK_ABSRELOC32 = HUNK_RELOC32;
885
HUNK_RELRELOC16 = HUNK_RELOC16;
888
HUNK_RELRELOC8 = HUNK_RELOC8;
906
HUNK_RELOC32SHORT = 1020;
908
HUNK_RELRELOC32 = 1021;
909
HUNK_ABSRELOC16 = 1022;
916
HUNKF_ADVISORY = (1 Shl HUNKB_ADVISORY);
917
HUNKF_CHIP = (1 Shl HUNKB_CHIP);
918
HUNKF_FAST = (1 Shl HUNKB_FAST);
927
EXT_ABSREF32 = EXT_REF32;
930
EXT_ABSCOMMON = EXT_COMMON;
933
EXT_RELREF16 = EXT_REF16;
936
EXT_RELREF8 = EXT_REF8;
951
{ * dos ExAll definitions
952
*********************************************************************
967
PExAllData = ^TExAllData;
968
TExAllData = packed record
969
ed_Next : PExAllData;
983
PExAllControl = ^TExAllControl;
984
TexAllControl = packed record
985
eac_Entries : Cardinal;
986
eac_LastKey : Cardinal;
987
eac_MatchString: PChar;
988
eac_MatchFunc : PHook;
994
{ * dos record definitions
995
*********************************************************************
1001
REC_EXCLUSIVE_IMMED = 1;
1003
REC_SHARED_IMMED = 3;
1007
PRecordLock = ^TRecordLock;
1008
TRecordLock = packed record
1010
rec_Offset: Cardinal;
1011
rec_Length: Cardinal;
1012
rec_Mode : Cardinal;
1017
{ * dos tag definitions (V50)
1018
*********************************************************************
1023
SYS_Dummy = (TAG_USER + 32);
1024
SYS_Input = (SYS_Dummy + 1);
1025
SYS_Output = (SYS_Dummy + 2);
1026
SYS_Asynch = (SYS_Dummy + 3);
1027
SYS_UserShell = (SYS_Dummy + 4);
1028
SYS_CustomShell = (SYS_Dummy + 5);
1031
SYS_FilterTags = (SYS_Dummy + 6); { * filters the tags passed down to CreateNewProc(), default: TRUE * }
1034
NP_Dummy = (TAG_USER + 1000);
1035
NP_Seglist = (NP_Dummy + 1);
1036
NP_FreeSeglist = (NP_Dummy + 2);
1037
NP_Entry = (NP_Dummy + 3);
1038
NP_Input = (NP_Dummy + 4);
1039
NP_Output = (NP_Dummy + 5);
1040
NP_CloseInput = (NP_Dummy + 6);
1041
NP_CloseOutput = (NP_Dummy + 7);
1042
NP_Error = (NP_Dummy + 8);
1043
NP_CloseError = (NP_Dummy + 9);
1044
NP_CurrentDir = (NP_Dummy + 10);
1045
NP_StackSize = (NP_Dummy + 11);
1046
NP_Name = (NP_Dummy + 12);
1047
NP_Priority = (NP_Dummy + 13);
1048
NP_ConsoleTask = (NP_Dummy + 14);
1049
NP_WindowPtr = (NP_Dummy + 15);
1050
NP_HomeDir = (NP_Dummy + 16);
1051
NP_CopyVars = (NP_Dummy + 17);
1052
NP_Cli = (NP_Dummy + 18);
1053
NP_Path = (NP_Dummy + 19);
1054
NP_CommandName = (NP_Dummy + 20);
1055
NP_Arguments = (NP_Dummy + 21);
1057
NP_NotifyOnDeath = (NP_Dummy + 22);
1058
NP_Synchronous = (NP_Dummy + 23);
1059
NP_ExitCode = (NP_Dummy + 24);
1060
NP_ExitData = (NP_Dummy + 25);
1063
NP_SeglistArray = (NP_Dummy + 26);
1064
NP_UserData = (NP_Dummy + 27);
1065
NP_StartupMsg = (NP_Dummy + 28); { * PMessage, ReplyMsg'd at exit * }
1066
NP_TaskMsgPort = (NP_Dummy + 29); { * ^PMsgPort, create MsgPort, automagic delete * }
1068
NP_CodeType = (NP_Dummy + 100);
1069
NP_PPC_Arg1 = (NP_Dummy + 101);
1070
NP_PPC_Arg2 = (NP_Dummy + 102);
1071
NP_PPC_Arg3 = (NP_Dummy + 103);
1072
NP_PPC_Arg4 = (NP_Dummy + 104);
1073
NP_PPC_Arg5 = (NP_Dummy + 105);
1074
NP_PPC_Arg6 = (NP_Dummy + 106);
1075
NP_PPC_Arg7 = (NP_Dummy + 107);
1076
NP_PPC_Arg8 = (NP_Dummy + 108);
1077
NP_PPCStackSize = (NP_Dummy + 109);
1080
ADO_Dummy = (TAG_USER + 2000);
1081
ADO_FH_Mode = (ADO_Dummy + 1);
1083
ADO_DirLen = (ADO_Dummy + 2);
1084
ADO_CommNameLen = (ADO_Dummy + 3);
1085
ADO_CommFileLen = (ADO_Dummy + 4);
1086
ADO_PromptLen = (ADO_Dummy + 5);
1089
ADDS_Dummy = (TAG_USER + 3000);
1090
ADDS_Name = (ADDS_Dummy + 1); { * Segment name * }
1091
ADDS_Seglist = (ADDS_Dummy + 2); { * Seglist for this segment * }
1092
ADDS_Filename = (ADDS_Dummy + 3); { * Name of the file to load when needed. Ignored if Seglist is given. * }
1093
ADDS_Type = (ADDS_Dummy + 4); { * Segment type * }
1096
FNDS_Dummy = (TAG_USER + 3100);
1097
FNDS_Name = (FNDS_Dummy + 1); { * Segment name * }
1098
FNDS_From = (FNDS_Dummy + 2); { * Segment to start from * }
1099
FNDS_System = (FNDS_Dummy + 3); { * Look for a system segment ? * }
1100
FNDS_Load = (FNDS_Dummy + 4); { * Load the seglist if needed ? (Default: TRUE) * }
1104
{ * dos stdio definitions
1105
*********************************************************************
1119
{ * dos env-var definitions
1120
*********************************************************************
1125
PLocalVar = ^TLocalVar;
1126
TLocalVar = packed record
1140
LVF_IGNORE = (1 Shl LVB_IGNORE);
1142
GVB_GLOBAL_ONLY = 8;
1143
GVF_GLOBAL_ONLY = (1 Shl GVB_GLOBAL_ONLY);
1146
GVF_LOCAL_ONLY = (1 Shl GVB_LOCAL_ONLY);
1148
GVB_BINARY_VAR = 10;
1149
GVF_BINARY_VAR = (1 Shl GVB_BINARY_VAR);
1151
GVB_DONT_NULL_TERM = 11;
1152
GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
1155
GVF_SAVE_VAR = (1 Shl GVB_SAVE_VAR);
1159
{ * dos ReadArgs definitions
1160
*********************************************************************
1165
PCSource = ^TCSource;
1166
TCSource = packed record
1174
TRDArgs = packed record
1175
RDA_Source : TCSource;
1176
RDA_DAList : LongInt;
1178
RDA_BufSiz : LongInt;
1180
RDA_Flags : LongInt;
1186
RDAF_STDIN = (1 Shl RDAB_STDIN);
1189
RDAF_NOALLOC = (1 Shl RDAB_NOALLOC);
1192
RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
1195
MAX_TEMPLATE_ITEMS = 100;
1196
MAX_MULTIARGS = 128;
1200
{ * dos filehandler definitions
1201
*********************************************************************
1206
PDosEnvec = ^TDosEnvec;
1207
TDosEnvec = packed record
1208
de_TableSize : Cardinal;
1209
de_SizeBlock : Cardinal;
1210
de_SecOrg : Cardinal;
1211
de_Surfaces : Cardinal;
1212
de_SectorPerBlock: Cardinal;
1213
de_BlocksPerTrack: Cardinal;
1214
de_Reserved : Cardinal;
1215
de_PreAlloc : Cardinal;
1216
de_Interleave : Cardinal;
1217
de_LowCyl : Cardinal;
1218
de_HighCyl : Cardinal;
1219
de_NumBuffers : Cardinal;
1220
de_BufMemType : Cardinal;
1221
de_MaxTransfer : Cardinal;
1223
de_BootPri : LongInt;
1224
de_DosType : Cardinal;
1226
de_Control : Cardinal;
1227
de_BootBlocks : Cardinal;
1237
DE_BLKSPERTRACK = 5;
1238
DE_RESERVEDBLKS = 6;
1246
DE_MAXTRANSFER = 13;
1256
PFileSysStartupMsg = ^TFileSysStartupMsg;
1257
TFileSysStartupMsg = packed record
1258
fssm_Unit : Cardinal;
1259
fssm_Device : LongInt;
1260
fssm_Environ: LongInt;
1261
fssm_Flags : Cardinal;
1265
PDeviceNode = ^TDeviceNode;
1266
TDeviceNode = packed record
1271
dn_Handler : LongInt;
1272
dn_StackSize: Cardinal;
1273
dn_Priority : LongInt;
1274
dn_Startup : LongInt;
1275
dn_SegList : LongInt;
1276
dn_GlobalVec: LongInt;
1282
{ * dos notification definitions
1283
*********************************************************************
1288
NOTIFY_CLASS = $40000000;
1289
NOTIFY_CODE = $1234;
1293
PNotifyRequest = ^TNotifyRequest;
1294
TNotifyRequest = packed record
1297
nr_UserData: Cardinal;
1298
nr_Flags : Cardinal;
1301
0 : ( nr_Msg : record
1304
1 : ( nr_Signal : record
1307
nr_pad : Array[0..2] Of Byte;
1310
nr_Reserved: Array[0..3] Of Cardinal;
1311
nr_MsgCount: Cardinal;
1312
nr_Handler : PMsgPort;
1316
PNotifyMessage = ^TNotifyMessage;
1317
TNotifyMessage = packed record
1318
nm_ExecMessage: TMessage;
1319
nm_Class : Cardinal;
1321
nm_NReq : PNotifyRequest;
1322
nm_DoNotTouch : Cardinal;
1323
nm_DoNotTouch2: Cardinal;
1328
NRB_SEND_MESSAGE = 0;
1329
NRB_SEND_SIGNAL = 1;
1331
NRB_NOTIFY_INITIAL = 4;
1336
NRF_SEND_MESSAGE = (1 Shl NRB_SEND_MESSAGE);
1337
NRF_SEND_SIGNAL = (1 Shl NRB_SEND_SIGNAL);
1338
NRF_WAIT_REPLY = (1 Shl NRB_WAIT_REPLY);
1339
NRF_NOTIFY_INITIAL = (1 Shl NRB_NOTIFY_INITIAL);
1341
NRF_MAGIC = (1 Shl NRB_MAGIC);
1344
NR_HANDLER_FLAGS = $ffff0000;
1348
{ * dos.library segtracker include
1349
*********************************************************************
1354
SEG_SEM = 'SegTracker';
1359
TSegSem = packed record
1360
seg_Semaphore: TSignalSemaphore;
1361
seg_Find : Procedure; { Name = seg_Find(REG(a0, ULONG Address), REG(a1, ULONG *SegNum), REG(a2, ULONG *Offset)) }
1362
seg_List : TMinList;
1366
PSegArray = ^TSegArray;
1367
TSegArray = packed record
1368
seg_Address: Cardinal;
1369
seg_Size : Cardinal;
1373
PSegNode = ^TSegNode;
1374
TSegNode = packed record
1375
seg_Node : TMinNode;
1377
seg_Array: Array[0..0] Of TSegArray;
1383
$Log: doslibd.inc,v $
1384
Revision 1.5 2005/02/14 17:13:30 peter
1387
Revision 1.4 2005/01/12 07:59:05 karoly
1388
* Integers changed to SmallInt to be compatible with all modes
1390
Revision 1.3 2005/01/10 04:58:52 karoly
1391
* fixed alignment problem in TDosList