mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:47:44 +00:00
Kernel: Make all syscall functions return KResultOr<T>
This makes it a lot easier to return errors since we no longer have to worry about negating EFOO errors and can just return them flat.
This commit is contained in:
parent
9af1e1a3bf
commit
ac71775de5
70 changed files with 747 additions and 742 deletions
290
Kernel/Process.h
290
Kernel/Process.h
|
@ -212,151 +212,151 @@ public:
|
|||
void stop_tracing();
|
||||
void tracer_trap(Thread&, const RegisterState&);
|
||||
|
||||
int sys$yield();
|
||||
int sys$sync();
|
||||
int sys$beep();
|
||||
int sys$get_process_name(Userspace<char*> buffer, size_t buffer_size);
|
||||
int sys$set_process_name(Userspace<const char*> user_name, size_t user_name_length);
|
||||
int sys$watch_file(Userspace<const char*> path, size_t path_length);
|
||||
int sys$dbgputch(u8);
|
||||
int sys$dbgputstr(Userspace<const u8*>, int length);
|
||||
int sys$dump_backtrace();
|
||||
pid_t sys$gettid();
|
||||
int sys$donate(pid_t tid);
|
||||
int sys$ftruncate(int fd, off_t);
|
||||
pid_t sys$setsid();
|
||||
pid_t sys$getsid(pid_t);
|
||||
int sys$setpgid(pid_t pid, pid_t pgid);
|
||||
pid_t sys$getpgrp();
|
||||
pid_t sys$getpgid(pid_t);
|
||||
uid_t sys$getuid();
|
||||
gid_t sys$getgid();
|
||||
uid_t sys$geteuid();
|
||||
gid_t sys$getegid();
|
||||
pid_t sys$getpid();
|
||||
pid_t sys$getppid();
|
||||
int sys$getresuid(Userspace<uid_t*>, Userspace<uid_t*>, Userspace<uid_t*>);
|
||||
int sys$getresgid(Userspace<gid_t*>, Userspace<gid_t*>, Userspace<gid_t*>);
|
||||
mode_t sys$umask(mode_t);
|
||||
int sys$open(Userspace<const Syscall::SC_open_params*>);
|
||||
int sys$close(int fd);
|
||||
ssize_t sys$read(int fd, Userspace<u8*>, ssize_t);
|
||||
ssize_t sys$readv(int fd, Userspace<const struct iovec*> iov, int iov_count);
|
||||
ssize_t sys$write(int fd, const u8*, ssize_t);
|
||||
ssize_t sys$writev(int fd, Userspace<const struct iovec*> iov, int iov_count);
|
||||
int sys$fstat(int fd, Userspace<stat*>);
|
||||
int sys$stat(Userspace<const Syscall::SC_stat_params*>);
|
||||
int sys$lseek(int fd, off_t, int whence);
|
||||
int sys$kill(pid_t pid_or_pgid, int sig);
|
||||
KResultOr<int> sys$yield();
|
||||
KResultOr<int> sys$sync();
|
||||
KResultOr<int> sys$beep();
|
||||
KResultOr<int> sys$get_process_name(Userspace<char*> buffer, size_t buffer_size);
|
||||
KResultOr<int> sys$set_process_name(Userspace<const char*> user_name, size_t user_name_length);
|
||||
KResultOr<int> sys$watch_file(Userspace<const char*> path, size_t path_length);
|
||||
KResultOr<int> sys$dbgputch(u8);
|
||||
KResultOr<int> sys$dbgputstr(Userspace<const u8*>, int length);
|
||||
KResultOr<int> sys$dump_backtrace();
|
||||
KResultOr<pid_t> sys$gettid();
|
||||
KResultOr<int> sys$donate(pid_t tid);
|
||||
KResultOr<int> sys$ftruncate(int fd, off_t);
|
||||
KResultOr<pid_t> sys$setsid();
|
||||
KResultOr<pid_t> sys$getsid(pid_t);
|
||||
KResultOr<int> sys$setpgid(pid_t pid, pid_t pgid);
|
||||
KResultOr<pid_t> sys$getpgrp();
|
||||
KResultOr<pid_t> sys$getpgid(pid_t);
|
||||
KResultOr<uid_t> sys$getuid();
|
||||
KResultOr<gid_t> sys$getgid();
|
||||
KResultOr<uid_t> sys$geteuid();
|
||||
KResultOr<gid_t> sys$getegid();
|
||||
KResultOr<pid_t> sys$getpid();
|
||||
KResultOr<pid_t> sys$getppid();
|
||||
KResultOr<int> sys$getresuid(Userspace<uid_t*>, Userspace<uid_t*>, Userspace<uid_t*>);
|
||||
KResultOr<int> sys$getresgid(Userspace<gid_t*>, Userspace<gid_t*>, Userspace<gid_t*>);
|
||||
KResultOr<mode_t> sys$umask(mode_t);
|
||||
KResultOr<int> sys$open(Userspace<const Syscall::SC_open_params*>);
|
||||
KResultOr<int> sys$close(int fd);
|
||||
KResultOr<ssize_t> sys$read(int fd, Userspace<u8*>, ssize_t);
|
||||
KResultOr<ssize_t> sys$readv(int fd, Userspace<const struct iovec*> iov, int iov_count);
|
||||
KResultOr<ssize_t> sys$write(int fd, const u8*, ssize_t);
|
||||
KResultOr<ssize_t> sys$writev(int fd, Userspace<const struct iovec*> iov, int iov_count);
|
||||
KResultOr<int> sys$fstat(int fd, Userspace<stat*>);
|
||||
KResultOr<int> sys$stat(Userspace<const Syscall::SC_stat_params*>);
|
||||
KResultOr<int> sys$lseek(int fd, off_t, int whence);
|
||||
KResultOr<int> sys$kill(pid_t pid_or_pgid, int sig);
|
||||
[[noreturn]] void sys$exit(int status);
|
||||
int sys$sigreturn(RegisterState& registers);
|
||||
pid_t sys$waitid(Userspace<const Syscall::SC_waitid_params*>);
|
||||
FlatPtr sys$mmap(Userspace<const Syscall::SC_mmap_params*>);
|
||||
FlatPtr sys$mremap(Userspace<const Syscall::SC_mremap_params*>);
|
||||
int sys$munmap(void*, size_t size);
|
||||
int sys$set_mmap_name(Userspace<const Syscall::SC_set_mmap_name_params*>);
|
||||
int sys$mprotect(void*, size_t, int prot);
|
||||
int sys$madvise(void*, size_t, int advice);
|
||||
int sys$msyscall(void*);
|
||||
int sys$purge(int mode);
|
||||
int sys$select(const Syscall::SC_select_params*);
|
||||
int sys$poll(Userspace<const Syscall::SC_poll_params*>);
|
||||
ssize_t sys$get_dir_entries(int fd, void*, ssize_t);
|
||||
int sys$getcwd(Userspace<char*>, size_t);
|
||||
int sys$chdir(Userspace<const char*>, size_t);
|
||||
int sys$fchdir(int fd);
|
||||
int sys$adjtime(Userspace<const timeval*>, Userspace<timeval*>);
|
||||
int sys$gettimeofday(Userspace<timeval*>);
|
||||
int sys$clock_gettime(clockid_t, Userspace<timespec*>);
|
||||
int sys$clock_settime(clockid_t, Userspace<const timespec*>);
|
||||
int sys$clock_nanosleep(Userspace<const Syscall::SC_clock_nanosleep_params*>);
|
||||
int sys$gethostname(Userspace<char*>, ssize_t);
|
||||
int sys$sethostname(Userspace<const char*>, ssize_t);
|
||||
int sys$uname(Userspace<utsname*>);
|
||||
int sys$readlink(Userspace<const Syscall::SC_readlink_params*>);
|
||||
int sys$ttyname(int fd, Userspace<char*>, size_t);
|
||||
int sys$ptsname(int fd, Userspace<char*>, size_t);
|
||||
pid_t sys$fork(RegisterState&);
|
||||
int sys$execve(Userspace<const Syscall::SC_execve_params*>);
|
||||
int sys$dup2(int old_fd, int new_fd);
|
||||
int sys$sigaction(int signum, const sigaction* act, sigaction* old_act);
|
||||
int sys$sigprocmask(int how, Userspace<const sigset_t*> set, Userspace<sigset_t*> old_set);
|
||||
int sys$sigpending(Userspace<sigset_t*>);
|
||||
int sys$getgroups(ssize_t, Userspace<gid_t*>);
|
||||
int sys$setgroups(ssize_t, Userspace<const gid_t*>);
|
||||
int sys$pipe(int pipefd[2], int flags);
|
||||
int sys$killpg(pid_t pgrp, int sig);
|
||||
int sys$seteuid(uid_t);
|
||||
int sys$setegid(gid_t);
|
||||
int sys$setuid(uid_t);
|
||||
int sys$setgid(gid_t);
|
||||
int sys$setresuid(uid_t, uid_t, uid_t);
|
||||
int sys$setresgid(gid_t, gid_t, gid_t);
|
||||
unsigned sys$alarm(unsigned seconds);
|
||||
int sys$access(Userspace<const char*> pathname, size_t path_length, int mode);
|
||||
int sys$fcntl(int fd, int cmd, u32 extra_arg);
|
||||
int sys$ioctl(int fd, unsigned request, FlatPtr arg);
|
||||
int sys$mkdir(Userspace<const char*> pathname, size_t path_length, mode_t mode);
|
||||
clock_t sys$times(Userspace<tms*>);
|
||||
int sys$utime(Userspace<const char*> pathname, size_t path_length, Userspace<const struct utimbuf*>);
|
||||
int sys$link(Userspace<const Syscall::SC_link_params*>);
|
||||
int sys$unlink(Userspace<const char*> pathname, size_t path_length);
|
||||
int sys$symlink(Userspace<const Syscall::SC_symlink_params*>);
|
||||
int sys$rmdir(Userspace<const char*> pathname, size_t path_length);
|
||||
int sys$mount(Userspace<const Syscall::SC_mount_params*>);
|
||||
int sys$umount(Userspace<const char*> mountpoint, size_t mountpoint_length);
|
||||
int sys$chmod(Userspace<const char*> pathname, size_t path_length, mode_t);
|
||||
int sys$fchmod(int fd, mode_t);
|
||||
int sys$chown(Userspace<const Syscall::SC_chown_params*>);
|
||||
int sys$fchown(int fd, uid_t, gid_t);
|
||||
int sys$socket(int domain, int type, int protocol);
|
||||
int sys$bind(int sockfd, Userspace<const sockaddr*> addr, socklen_t);
|
||||
int sys$listen(int sockfd, int backlog);
|
||||
int sys$accept(int sockfd, Userspace<sockaddr*>, Userspace<socklen_t*>);
|
||||
int sys$connect(int sockfd, Userspace<const sockaddr*>, socklen_t);
|
||||
int sys$shutdown(int sockfd, int how);
|
||||
ssize_t sys$sendmsg(int sockfd, Userspace<const struct msghdr*>, int flags);
|
||||
ssize_t sys$recvmsg(int sockfd, Userspace<struct msghdr*>, int flags);
|
||||
int sys$getsockopt(Userspace<const Syscall::SC_getsockopt_params*>);
|
||||
int sys$setsockopt(Userspace<const Syscall::SC_setsockopt_params*>);
|
||||
int sys$getsockname(Userspace<const Syscall::SC_getsockname_params*>);
|
||||
int sys$getpeername(Userspace<const Syscall::SC_getpeername_params*>);
|
||||
int sys$sched_setparam(pid_t pid, Userspace<const struct sched_param*>);
|
||||
int sys$sched_getparam(pid_t pid, Userspace<struct sched_param*>);
|
||||
int sys$create_thread(void* (*)(void*), Userspace<const Syscall::SC_create_thread_params*>);
|
||||
void sys$exit_thread(Userspace<void*>);
|
||||
int sys$join_thread(pid_t tid, Userspace<void**> exit_value);
|
||||
int sys$detach_thread(pid_t tid);
|
||||
int sys$set_thread_name(pid_t tid, Userspace<const char*> buffer, size_t buffer_size);
|
||||
int sys$get_thread_name(pid_t tid, Userspace<char*> buffer, size_t buffer_size);
|
||||
int sys$rename(Userspace<const Syscall::SC_rename_params*>);
|
||||
int sys$mknod(Userspace<const Syscall::SC_mknod_params*>);
|
||||
int sys$halt();
|
||||
int sys$reboot();
|
||||
int sys$realpath(Userspace<const Syscall::SC_realpath_params*>);
|
||||
ssize_t sys$getrandom(Userspace<void*>, size_t, unsigned int);
|
||||
int sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*>);
|
||||
int sys$setkeymap(Userspace<const Syscall::SC_setkeymap_params*>);
|
||||
int sys$module_load(Userspace<const char*> path, size_t path_length);
|
||||
int sys$module_unload(Userspace<const char*> name, size_t name_length);
|
||||
int sys$profiling_enable(pid_t);
|
||||
int sys$profiling_disable(pid_t);
|
||||
int sys$futex(Userspace<const Syscall::SC_futex_params*>);
|
||||
int sys$chroot(Userspace<const char*> path, size_t path_length, int mount_flags);
|
||||
int sys$pledge(Userspace<const Syscall::SC_pledge_params*>);
|
||||
int sys$unveil(Userspace<const Syscall::SC_unveil_params*>);
|
||||
int sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2);
|
||||
int sys$get_stack_bounds(FlatPtr* stack_base, size_t* stack_size);
|
||||
int sys$ptrace(Userspace<const Syscall::SC_ptrace_params*>);
|
||||
int sys$sendfd(int sockfd, int fd);
|
||||
int sys$recvfd(int sockfd, int options);
|
||||
long sys$sysconf(int name);
|
||||
int sys$disown(ProcessID);
|
||||
FlatPtr sys$allocate_tls(size_t);
|
||||
int sys$prctl(int option, FlatPtr arg1, FlatPtr arg2);
|
||||
int sys$set_coredump_metadata(Userspace<const Syscall::SC_set_coredump_metadata_params*>);
|
||||
void sys$abort();
|
||||
int sys$anon_create(size_t, int options);
|
||||
KResultOr<int> sys$sigreturn(RegisterState& registers);
|
||||
KResultOr<pid_t> sys$waitid(Userspace<const Syscall::SC_waitid_params*>);
|
||||
KResultOr<FlatPtr> sys$mmap(Userspace<const Syscall::SC_mmap_params*>);
|
||||
KResultOr<FlatPtr> sys$mremap(Userspace<const Syscall::SC_mremap_params*>);
|
||||
KResultOr<int> sys$munmap(void*, size_t size);
|
||||
KResultOr<int> sys$set_mmap_name(Userspace<const Syscall::SC_set_mmap_name_params*>);
|
||||
KResultOr<int> sys$mprotect(void*, size_t, int prot);
|
||||
KResultOr<int> sys$madvise(void*, size_t, int advice);
|
||||
KResultOr<int> sys$msyscall(void*);
|
||||
KResultOr<int> sys$purge(int mode);
|
||||
KResultOr<int> sys$select(const Syscall::SC_select_params*);
|
||||
KResultOr<int> sys$poll(Userspace<const Syscall::SC_poll_params*>);
|
||||
KResultOr<ssize_t> sys$get_dir_entries(int fd, void*, ssize_t);
|
||||
KResultOr<int> sys$getcwd(Userspace<char*>, size_t);
|
||||
KResultOr<int> sys$chdir(Userspace<const char*>, size_t);
|
||||
KResultOr<int> sys$fchdir(int fd);
|
||||
KResultOr<int> sys$adjtime(Userspace<const timeval*>, Userspace<timeval*>);
|
||||
KResultOr<int> sys$gettimeofday(Userspace<timeval*>);
|
||||
KResultOr<int> sys$clock_gettime(clockid_t, Userspace<timespec*>);
|
||||
KResultOr<int> sys$clock_settime(clockid_t, Userspace<const timespec*>);
|
||||
KResultOr<int> sys$clock_nanosleep(Userspace<const Syscall::SC_clock_nanosleep_params*>);
|
||||
KResultOr<int> sys$gethostname(Userspace<char*>, ssize_t);
|
||||
KResultOr<int> sys$sethostname(Userspace<const char*>, ssize_t);
|
||||
KResultOr<int> sys$uname(Userspace<utsname*>);
|
||||
KResultOr<int> sys$readlink(Userspace<const Syscall::SC_readlink_params*>);
|
||||
KResultOr<int> sys$ttyname(int fd, Userspace<char*>, size_t);
|
||||
KResultOr<int> sys$ptsname(int fd, Userspace<char*>, size_t);
|
||||
KResultOr<pid_t> sys$fork(RegisterState&);
|
||||
KResultOr<int> sys$execve(Userspace<const Syscall::SC_execve_params*>);
|
||||
KResultOr<int> sys$dup2(int old_fd, int new_fd);
|
||||
KResultOr<int> sys$sigaction(int signum, const sigaction* act, sigaction* old_act);
|
||||
KResultOr<int> sys$sigprocmask(int how, Userspace<const sigset_t*> set, Userspace<sigset_t*> old_set);
|
||||
KResultOr<int> sys$sigpending(Userspace<sigset_t*>);
|
||||
KResultOr<int> sys$getgroups(ssize_t, Userspace<gid_t*>);
|
||||
KResultOr<int> sys$setgroups(ssize_t, Userspace<const gid_t*>);
|
||||
KResultOr<int> sys$pipe(int pipefd[2], int flags);
|
||||
KResultOr<int> sys$killpg(pid_t pgrp, int sig);
|
||||
KResultOr<int> sys$seteuid(uid_t);
|
||||
KResultOr<int> sys$setegid(gid_t);
|
||||
KResultOr<int> sys$setuid(uid_t);
|
||||
KResultOr<int> sys$setgid(gid_t);
|
||||
KResultOr<int> sys$setresuid(uid_t, uid_t, uid_t);
|
||||
KResultOr<int> sys$setresgid(gid_t, gid_t, gid_t);
|
||||
KResultOr<unsigned> sys$alarm(unsigned seconds);
|
||||
KResultOr<int> sys$access(Userspace<const char*> pathname, size_t path_length, int mode);
|
||||
KResultOr<int> sys$fcntl(int fd, int cmd, u32 extra_arg);
|
||||
KResultOr<int> sys$ioctl(int fd, unsigned request, FlatPtr arg);
|
||||
KResultOr<int> sys$mkdir(Userspace<const char*> pathname, size_t path_length, mode_t mode);
|
||||
KResultOr<clock_t> sys$times(Userspace<tms*>);
|
||||
KResultOr<int> sys$utime(Userspace<const char*> pathname, size_t path_length, Userspace<const struct utimbuf*>);
|
||||
KResultOr<int> sys$link(Userspace<const Syscall::SC_link_params*>);
|
||||
KResultOr<int> sys$unlink(Userspace<const char*> pathname, size_t path_length);
|
||||
KResultOr<int> sys$symlink(Userspace<const Syscall::SC_symlink_params*>);
|
||||
KResultOr<int> sys$rmdir(Userspace<const char*> pathname, size_t path_length);
|
||||
KResultOr<int> sys$mount(Userspace<const Syscall::SC_mount_params*>);
|
||||
KResultOr<int> sys$umount(Userspace<const char*> mountpoint, size_t mountpoint_length);
|
||||
KResultOr<int> sys$chmod(Userspace<const char*> pathname, size_t path_length, mode_t);
|
||||
KResultOr<int> sys$fchmod(int fd, mode_t);
|
||||
KResultOr<int> sys$chown(Userspace<const Syscall::SC_chown_params*>);
|
||||
KResultOr<int> sys$fchown(int fd, uid_t, gid_t);
|
||||
KResultOr<int> sys$socket(int domain, int type, int protocol);
|
||||
KResultOr<int> sys$bind(int sockfd, Userspace<const sockaddr*> addr, socklen_t);
|
||||
KResultOr<int> sys$listen(int sockfd, int backlog);
|
||||
KResultOr<int> sys$accept(int sockfd, Userspace<sockaddr*>, Userspace<socklen_t*>);
|
||||
KResultOr<int> sys$connect(int sockfd, Userspace<const sockaddr*>, socklen_t);
|
||||
KResultOr<int> sys$shutdown(int sockfd, int how);
|
||||
KResultOr<ssize_t> sys$sendmsg(int sockfd, Userspace<const struct msghdr*>, int flags);
|
||||
KResultOr<ssize_t> sys$recvmsg(int sockfd, Userspace<struct msghdr*>, int flags);
|
||||
KResultOr<int> sys$getsockopt(Userspace<const Syscall::SC_getsockopt_params*>);
|
||||
KResultOr<int> sys$setsockopt(Userspace<const Syscall::SC_setsockopt_params*>);
|
||||
KResultOr<int> sys$getsockname(Userspace<const Syscall::SC_getsockname_params*>);
|
||||
KResultOr<int> sys$getpeername(Userspace<const Syscall::SC_getpeername_params*>);
|
||||
KResultOr<int> sys$sched_setparam(pid_t pid, Userspace<const struct sched_param*>);
|
||||
KResultOr<int> sys$sched_getparam(pid_t pid, Userspace<struct sched_param*>);
|
||||
KResultOr<int> sys$create_thread(void* (*)(void*), Userspace<const Syscall::SC_create_thread_params*>);
|
||||
[[noreturn]] void sys$exit_thread(Userspace<void*>);
|
||||
KResultOr<int> sys$join_thread(pid_t tid, Userspace<void**> exit_value);
|
||||
KResultOr<int> sys$detach_thread(pid_t tid);
|
||||
KResultOr<int> sys$set_thread_name(pid_t tid, Userspace<const char*> buffer, size_t buffer_size);
|
||||
KResultOr<int> sys$get_thread_name(pid_t tid, Userspace<char*> buffer, size_t buffer_size);
|
||||
KResultOr<int> sys$rename(Userspace<const Syscall::SC_rename_params*>);
|
||||
KResultOr<int> sys$mknod(Userspace<const Syscall::SC_mknod_params*>);
|
||||
KResultOr<int> sys$halt();
|
||||
KResultOr<int> sys$reboot();
|
||||
KResultOr<int> sys$realpath(Userspace<const Syscall::SC_realpath_params*>);
|
||||
KResultOr<ssize_t> sys$getrandom(Userspace<void*>, size_t, unsigned int);
|
||||
KResultOr<int> sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*>);
|
||||
KResultOr<int> sys$setkeymap(Userspace<const Syscall::SC_setkeymap_params*>);
|
||||
KResultOr<int> sys$module_load(Userspace<const char*> path, size_t path_length);
|
||||
KResultOr<int> sys$module_unload(Userspace<const char*> name, size_t name_length);
|
||||
KResultOr<int> sys$profiling_enable(pid_t);
|
||||
KResultOr<int> sys$profiling_disable(pid_t);
|
||||
KResultOr<int> sys$futex(Userspace<const Syscall::SC_futex_params*>);
|
||||
KResultOr<int> sys$chroot(Userspace<const char*> path, size_t path_length, int mount_flags);
|
||||
KResultOr<int> sys$pledge(Userspace<const Syscall::SC_pledge_params*>);
|
||||
KResultOr<int> sys$unveil(Userspace<const Syscall::SC_unveil_params*>);
|
||||
KResultOr<int> sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2);
|
||||
KResultOr<int> sys$get_stack_bounds(FlatPtr* stack_base, size_t* stack_size);
|
||||
KResultOr<int> sys$ptrace(Userspace<const Syscall::SC_ptrace_params*>);
|
||||
KResultOr<int> sys$sendfd(int sockfd, int fd);
|
||||
KResultOr<int> sys$recvfd(int sockfd, int options);
|
||||
KResultOr<long> sys$sysconf(int name);
|
||||
KResultOr<int> sys$disown(ProcessID);
|
||||
KResultOr<FlatPtr> sys$allocate_tls(size_t);
|
||||
KResultOr<int> sys$prctl(int option, FlatPtr arg1, FlatPtr arg2);
|
||||
KResultOr<int> sys$set_coredump_metadata(Userspace<const Syscall::SC_set_coredump_metadata_params*>);
|
||||
[[noreturn]] void sys$abort();
|
||||
KResultOr<int> sys$anon_create(size_t, int options);
|
||||
|
||||
template<bool sockname, typename Params>
|
||||
int get_sock_or_peer_name(const Params&);
|
||||
|
@ -479,7 +479,7 @@ private:
|
|||
bool dump_perfcore();
|
||||
|
||||
KResult do_exec(NonnullRefPtr<FileDescription> main_program_description, Vector<String> arguments, Vector<String> environment, RefPtr<FileDescription> interpreter_description, Thread*& new_main_thread, u32& prev_flags, const Elf32_Ehdr& main_program_header);
|
||||
ssize_t do_write(FileDescription&, const UserOrKernelBuffer&, size_t);
|
||||
KResultOr<ssize_t> do_write(FileDescription&, const UserOrKernelBuffer&, size_t);
|
||||
|
||||
KResultOr<RefPtr<FileDescription>> find_elf_interpreter_for_executable(const String& path, const Elf32_Ehdr& elf_header, int nread, size_t file_size);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue