All DOS processes have this structure
Source position: amigados.pas line 541
type tProcess = record |
||
pr_Task: tTask; |
|
|
pr_MsgPort: tMsgPort; |
|
This is address from DOS functions |
pr_Pad: SmallInt; |
|
Remaining variables on 4 byte boundaries |
pr_SegList: LongInt; |
|
Array of seg lists used by this process |
pr_StackSize: LongInt; |
|
Size of process stack in bytes |
pr_GlobVec: Pointer; |
|
Global vector for this process |
pr_TaskNum: LongInt; |
|
CLI task number of zero if not a CLI |
pr_StackBase: LongInt; |
|
Pointer to high memory end of process stack |
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: Pointer; |
|
Console handler process for current window |
pr_FileSystemTask: Pointer; |
|
File handler process for current drive |
pr_CLI: LongInt; |
|
pointer to TConsoleLineInterpreter |
pr_ReturnAddr: Pointer; |
|
Pointer to previous stack frame |
pr_PktWait: Pointer; |
|
Function to be called when awaiting msg |
pr_WindowPtr: Pointer; |
|
Window for error printing |
pr_HomeDir: LongInt; |
|
Home directory of executing program |
pr_Flags: LongInt; |
|
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 |
end; |
Create and Device Proc returns pointer to the MsgPort in this structure dev_proc = Address(SmallInt(DeviceProc()) - SizeOf(Task))