All DOS processes have this structure
Source position: amigados.pas line 833
type TProcess = record |
||
pr_Task: TTask; |
|
|
pr_MsgPort: TMsgPort; |
|
This is address from DOS functions |
pr_Size: Word; |
||
pr_SegArray: LongInt; |
||
pr_StackSize: LongWord; |
|
Size of process stack in bytes |
pr_gv: LongInt; |
||
pr_CliNum: LongInt; |
||
pr_sb: LongInt; |
||
pr_Result2: LongInt; |
|
Value of secondary result from last call |
pr_CurrentDir: LongInt; |
|
Lock associated with current directory |
pr_CIS: LongInt; |
|
Current CLI Input Stream |
pr_COS: LongInt; |
|
Current CLI Output Stream |
pr_ConsoleTask: PMsgPort; |
|
Console handler process for current window |
pr_FileSystemTask: PMsgPort; |
|
File handler process for current drive |
pr_CLI: LongInt; |
|
pointer to TConsoleLineInterpreter |
pr_ra: Pointer; |
||
pr_PktWait: Pointer; |
|
Function to be called when awaiting msg |
pr_WindowPtr: Pointer; |
|
Window for error printing |
pr_ProgramDir: LongInt; |
||
pr_Flags: LongWord; |
|
Flags telling dos about process (PRF_*) |
pr_ExitCode: Pointer; |
|
Code to call on exit of program or nil |
pr_ExitData: LongInt; |
|
Passed as an argument to pr_ExitCode. |
pr_Arguments: PChar; |
|
Arguments passed to the process at start |
pr_LocalVars: TMinList; |
|
Local environment variables |
pr_ShellPrivate: LongWord; |
|
for the use of the current shell |
pr_CES: LongInt; |
|
Error stream - if nil, use pr_COS |
pr_PrData: Pointer; |
||
pr_CurrentSeg: LongInt; |
||
pr_EmulPrivate: LongWord; |
||
pr_68kPrivate: LongWord; |
||
pr_ParentID: LongWord; |
||
pr_ProcessID: LongWord; |
||
pr_Reserved4: LongWord; |
||
pr_OGLContextData: Pointer; |
||
pr_Reserved5: Pointer; |
||
pr_CLibData: Pointer; |
||
pr_Reserved6: Pointer; |
||
pr_RestoreList: TMinList; |
||
pr_DeathSigTask: Pointer; |
||
pr_DeathSigBit: LongWord; |
||
pr_DeathMessage: Pointer; |
||
pr_EntryCode: Pointer; |
||
pr_EntryData: LongInt; |
||
pr_FinalCode: Pointer; |
||
pr_FinalData: LongInt; |
||
pr_DLNotifyData: LongWord; |
||
pr_PLNotifyData: LongWord; |
||
pr_UID: LongWord; |
||
pr_GID: LongWord; |
||
pr_Reserved3: LongInt; |
||
pr_Reserved2: LongInt; |
||
pr_Reserved1: LongInt; |
||
pr_Reserved0: LongInt; |
||
end; |
Create and Device Proc returns pointer to the MsgPort in this structure dev_proc = Address(SmallInt(DeviceProc()) - SizeOf(Task))