| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2021, Andreas Kling <kling@serenityos.org> | 
					
						
							| 
									
										
										
										
											2021-11-27 15:23:16 +01:00
										 |  |  |  * Copyright (c) 2021, Kenneth Myhra <kennethmyhra@gmail.com> | 
					
						
							| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <AK/Error.h>
 | 
					
						
							| 
									
										
										
										
											2021-12-06 21:24:18 +01:00
										 |  |  | #include <grp.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-29 22:03:19 +01:00
										 |  |  | #include <pwd.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-22 16:11:03 +01:00
										 |  |  | #include <signal.h>
 | 
					
						
							| 
									
										
										
										
											2021-12-13 18:38:48 +01:00
										 |  |  | #include <spawn.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-23 11:10:19 +01:00
										 |  |  | #include <sys/stat.h>
 | 
					
						
							| 
									
										
										
										
											2021-12-13 18:43:39 +01:00
										 |  |  | #include <sys/wait.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-29 23:28:10 +01:00
										 |  |  | #include <termios.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-27 22:01:40 +01:00
										 |  |  | #include <time.h>
 | 
					
						
							| 
									
										
										
										
											2021-12-21 01:27:51 +01:00
										 |  |  | #include <utime.h>
 | 
					
						
							| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-23 10:59:50 +01:00
										 |  |  | namespace Core::System { | 
					
						
							| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-23 10:59:50 +01:00
										 |  |  | #ifdef __serenity__
 | 
					
						
							| 
									
										
										
										
											2021-11-27 14:23:58 -08:00
										 |  |  | ErrorOr<void> pledge(StringView promises, StringView execpromises = {}); | 
					
						
							| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  | ErrorOr<void> unveil(StringView path, StringView permissions); | 
					
						
							| 
									
										
										
										
											2021-11-24 22:36:13 +01:00
										 |  |  | ErrorOr<Array<int, 2>> pipe2(int flags); | 
					
						
							| 
									
										
										
										
											2021-11-28 09:12:29 +01:00
										 |  |  | ErrorOr<void> sendfd(int sockfd, int fd); | 
					
						
							|  |  |  | ErrorOr<int> recvfd(int sockfd, int options); | 
					
						
							| 
									
										
										
										
											2021-11-25 23:04:52 +01:00
										 |  |  | ErrorOr<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destination_buf); | 
					
						
							| 
									
										
										
										
											2021-12-16 19:31:50 +01:00
										 |  |  | ErrorOr<void> setgroups(Span<gid_t const>); | 
					
						
							| 
									
										
										
										
											2021-12-16 20:23:21 +01:00
										 |  |  | ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags); | 
					
						
							| 
									
										
										
										
											2021-11-23 10:59:50 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-22 16:11:03 +01:00
										 |  |  | ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action); | 
					
						
							| 
									
										
										
										
											2021-11-23 21:03:53 +01:00
										 |  |  | #ifdef __APPLE__
 | 
					
						
							|  |  |  | ErrorOr<sig_t> signal(int signal, sig_t handler); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | ErrorOr<sighandler_t> signal(int signal, sighandler_t handler); | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2021-11-23 11:10:19 +01:00
										 |  |  | ErrorOr<struct stat> fstat(int fd); | 
					
						
							|  |  |  | ErrorOr<int> fcntl(int fd, int command, ...); | 
					
						
							| 
									
										
										
										
											2021-11-23 11:47:32 +01:00
										 |  |  | ErrorOr<void*> mmap(void* address, size_t, int protection, int flags, int fd, off_t, size_t alignment = 0, StringView name = {}); | 
					
						
							| 
									
										
										
										
											2021-11-23 11:51:11 +01:00
										 |  |  | ErrorOr<void> munmap(void* address, size_t); | 
					
						
							| 
									
										
										
										
											2021-11-23 11:59:16 +01:00
										 |  |  | ErrorOr<int> open(StringView path, int options, ...); | 
					
						
							| 
									
										
										
										
											2021-11-23 12:05:56 +01:00
										 |  |  | ErrorOr<void> close(int fd); | 
					
						
							| 
									
										
										
										
											2021-11-23 12:16:07 +01:00
										 |  |  | ErrorOr<void> ftruncate(int fd, off_t length); | 
					
						
							| 
									
										
										
										
											2021-11-23 12:22:21 +01:00
										 |  |  | ErrorOr<struct stat> stat(StringView path); | 
					
						
							| 
									
										
										
										
											2021-12-02 22:41:40 +01:00
										 |  |  | ErrorOr<struct stat> lstat(StringView path); | 
					
						
							| 
									
										
										
										
											2021-11-27 13:02:33 -08:00
										 |  |  | ErrorOr<ssize_t> read(int fd, Bytes buffer); | 
					
						
							|  |  |  | ErrorOr<ssize_t> write(int fd, ReadonlyBytes buffer); | 
					
						
							| 
									
										
										
										
											2021-11-23 16:06:56 +01:00
										 |  |  | ErrorOr<void> kill(pid_t, int signal); | 
					
						
							| 
									
										
										
										
											2021-11-28 12:08:28 +01:00
										 |  |  | ErrorOr<int> dup(int source_fd); | 
					
						
							| 
									
										
										
										
											2021-11-24 22:36:28 +01:00
										 |  |  | ErrorOr<int> dup2(int source_fd, int destination_fd); | 
					
						
							| 
									
										
										
										
											2021-11-24 23:24:53 +01:00
										 |  |  | ErrorOr<String> ptsname(int fd); | 
					
						
							| 
									
										
										
										
											2021-11-27 10:13:33 +01:00
										 |  |  | ErrorOr<String> gethostname(); | 
					
						
							| 
									
										
										
										
											2021-11-29 23:07:33 +01:00
										 |  |  | ErrorOr<void> ioctl(int fd, unsigned request, ...); | 
					
						
							| 
									
										
										
										
											2021-11-29 23:28:10 +01:00
										 |  |  | ErrorOr<struct termios> tcgetattr(int fd); | 
					
						
							|  |  |  | ErrorOr<void> tcsetattr(int fd, int optional_actions, struct termios const&); | 
					
						
							| 
									
										
										
										
											2021-11-27 15:46:11 +01:00
										 |  |  | ErrorOr<void> chmod(StringView pathname, mode_t mode); | 
					
						
							| 
									
										
										
										
											2021-11-27 15:23:16 +01:00
										 |  |  | ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid); | 
					
						
							| 
									
										
										
										
											2021-11-29 22:03:19 +01:00
										 |  |  | ErrorOr<struct passwd> getpwnam(StringView name); | 
					
						
							| 
									
										
										
										
											2021-12-06 21:24:18 +01:00
										 |  |  | ErrorOr<struct group> getgrnam(StringView name); | 
					
						
							| 
									
										
										
										
											2021-11-27 22:01:40 +01:00
										 |  |  | ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts); | 
					
						
							| 
									
										
										
										
											2021-12-13 18:38:48 +01:00
										 |  |  | ErrorOr<pid_t> posix_spawnp(StringView const path, posix_spawn_file_actions_t* const file_actions, posix_spawnattr_t* const attr, char* const arguments[], char* const envp[]); | 
					
						
							| 
									
										
										
										
											2021-12-13 18:43:39 +01:00
										 |  |  | ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options); | 
					
						
							| 
									
										
										
										
											2021-12-16 19:17:44 +01:00
										 |  |  | ErrorOr<void> setuid(uid_t); | 
					
						
							|  |  |  | ErrorOr<void> seteuid(uid_t); | 
					
						
							|  |  |  | ErrorOr<void> setgid(gid_t); | 
					
						
							|  |  |  | ErrorOr<void> setegid(gid_t); | 
					
						
							| 
									
										
										
										
											2021-12-16 19:24:58 +01:00
										 |  |  | ErrorOr<bool> isatty(int fd); | 
					
						
							| 
									
										
										
										
											2021-12-16 20:23:21 +01:00
										 |  |  | ErrorOr<void> symlink(StringView target, StringView link_path); | 
					
						
							| 
									
										
										
										
											2021-12-16 20:27:25 +01:00
										 |  |  | ErrorOr<void> mkdir(StringView path, mode_t); | 
					
						
							| 
									
										
										
										
											2021-12-16 20:28:54 +01:00
										 |  |  | ErrorOr<pid_t> fork(); | 
					
						
							| 
									
										
										
										
											2021-12-16 21:10:59 +01:00
										 |  |  | ErrorOr<int> mkstemp(Span<char> pattern); | 
					
						
							| 
									
										
										
										
											2021-12-16 21:12:23 +01:00
										 |  |  | ErrorOr<void> fchmod(int fd, mode_t mode); | 
					
						
							| 
									
										
										
										
											2021-12-16 21:40:42 +01:00
										 |  |  | ErrorOr<void> rename(StringView old_path, StringView new_path); | 
					
						
							| 
									
										
										
										
											2021-12-20 19:48:30 +01:00
										 |  |  | ErrorOr<void> utime(StringView path, Optional<struct utimbuf>); | 
					
						
							| 
									
										
										
										
											2021-11-22 15:43:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | } |