summaryrefslogtreecommitdiff
path: root/Source/Library/Interface/Process.iface.h
blob: 4d3217f591503cfe72809410b23a528daca54a4d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef DEF_PROCESS_IFACE_H
#define DEF_PROCESS_IFACE_H

#define E_AUTODELETE 0x0FFFFF03

#define PRIF_OBJTYPE 0x20

//S = static, GET = get, C = current, PR = process
#define PRIF_SGETCPR 0	//Get current process (R) | no arguments
#define PRIF_SRUN 1	//Run a new process (R) | S:executable_name
#define PRIF_SWAIT 2	//Wait for a process to end (i:return value) | R:process to wait for

#define PRIF_EXIT 0x01	//Exit from current process (v) | no arguments
#define PRIF_ALLOCPAGES 0x02	//Allocate frames for pages (v) | i:position, i:count
#define PRIF_FREEPAGES 0x03	//Free frames for pages (v) | i:position, i:count
#define PRIF_GETPID 0x04	//Get PID of a process (i) | no arguments
#define PRIF_GETPPID 0x05	//Get PPID of a process (i) | no arguments

#define PRIF_ARGC 0x10	//Get argument count for a process (i) | no arguments
#define PRIF_ARGV 0x11	//Get argument value for a process (S) | i:argument_index

#define PRIF_START 0x20	//Start execution of a child process (v) | no arguments
#define PRIF_AUTODELETE 0x21	//Set a child to auto-delete itself when it ends (v) | b:does it autodelete?
#define PRIF_PUSHARG 0x28	//Push an argument to a child process (v) | S:argument
#define PRIF_SETOUTVT 0x29	//Set output VirtualTerminal for a child process (v) | r:virtual terminal
#define PRIF_SETINVT 0x30	//Set input VirtualTerminal for a child process (v) | r:virtual terminal

//Authenticate with password/without password (being in group root)
#define PRIF_AUTHPW 0x40	//Authenticate current process to a user (b:succeeded?) | S:username, S:password
#define PRIF_AUTHNOPW 0x41	//Authenticate to a user without password, root only (b:succeeded?) | S:username

#endif