0 | module System.Posix.Process
2 | import System.Posix.File
3 | import System.Posix.Signal
4 | import System.Posix.Process.Prim as P
6 | import public Data.C.Ptr
7 | import public System.Posix.Errno
8 | import public System.Posix.Process.Flags
9 | import public System.Posix.Process.ProcStatus
19 | getpid : HasIO io => io PidT
20 | getpid = primIO getpid
24 | getppid : HasIO io => io PidT
25 | getppid = primIO getppid
29 | getuid : HasIO io => io UidT
30 | getuid = primIO getuid
34 | geteuid : HasIO io => io UidT
35 | geteuid = primIO geteuid
39 | getgid : HasIO io => io GidT
40 | getgid = primIO getgid
44 | getegid : HasIO io => io GidT
45 | getegid = primIO getegid
49 | setuid : Has Errno es => EIO1 f => UidT -> f es ()
50 | setuid u = elift1 (P.setuid u)
54 | seteuid : Has Errno es => EIO1 f => UidT -> f es ()
55 | seteuid u = elift1 (P.seteuid u)
59 | setgid : Has Errno es => EIO1 f => GidT -> f es ()
60 | setgid g = elift1 (P.setgid g)
64 | setegid : Has Errno es => EIO1 f => GidT -> f es ()
65 | setegid g = elift1 (P.setegid g)
67 | parameters {auto has : Has Errno es}
78 | fork = elift1 P.fork
90 | -> (args : CArrayIO m (Maybe String))
91 | -> (env : CArrayIO n (Maybe String))
93 | execve s a env = elift1 (P.execve s a env)
98 | execle : String -> List String -> List (String,String) -> f es ()
99 | execle s a ps = elift1 (P.execle s a ps)
103 | execv : String -> CArrayIO m (Maybe String) -> f es ()
104 | execv s arr = elift1 (P.execv s arr)
109 | execvp : String -> CArrayIO m (Maybe String) -> f es ()
110 | execvp s arr = elift1 (P.execvp s arr)
115 | execlp : String -> List String -> f es ()
116 | execlp s ss = elift1 (P.execlp s ss)
124 | system : (cmd : String) -> f es ProcStatus
125 | system cmd = elift1 (P.system cmd)
133 | wait : f es (PidT, ProcStatus)
134 | wait = elift1 P.wait
142 | waitpid : PidT -> WaitFlags -> f es (PidT, ProcStatus)
143 | waitpid chld fs = elift1 (P.waitpid chld fs)
149 | waitid : IdType -> PidT -> WaitFlags -> f es Siginfo
150 | waitid t chld fs = elift1 (P.waitid t chld fs)