Relicense Sortix to the ISC license.
I hereby relicense all my work on Sortix under the ISC license as below.
All Sortix contributions by other people are already under this license,
are not substantial enough to be copyrightable, or have been removed.
All imported code from other projects is compatible with this license.
All GPL licensed code from other projects had previously been removed.
Copyright 2011-2016 Jonas 'Sortie' Termansen and contributors.
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2016-03-02 22:38:16 +00:00
|
|
|
/*
|
2016-03-26 11:36:07 +00:00
|
|
|
* Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016 Jonas 'Sortie' Termansen.
|
Relicense Sortix to the ISC license.
I hereby relicense all my work on Sortix under the ISC license as below.
All Sortix contributions by other people are already under this license,
are not substantial enough to be copyrightable, or have been removed.
All imported code from other projects is compatible with this license.
All GPL licensed code from other projects had previously been removed.
Copyright 2011-2016 Jonas 'Sortie' Termansen and contributors.
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2016-03-02 22:38:16 +00:00
|
|
|
*
|
|
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
|
|
* copyright notice and this permission notice appear in all copies.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
*
|
|
|
|
* sortix/kernel/syscall.h
|
|
|
|
* Handles system calls from user-space.
|
|
|
|
*/
|
2011-08-05 12:25:00 +00:00
|
|
|
|
2013-01-08 23:41:35 +00:00
|
|
|
#ifndef INCLUDE_SORTIX_KERNEL_SYSCALL_H
|
|
|
|
#define INCLUDE_SORTIX_KERNEL_SYSCALL_H
|
2011-08-05 12:25:00 +00:00
|
|
|
|
2014-10-16 22:04:47 +00:00
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
2014-02-25 21:39:57 +00:00
|
|
|
#include <stddef.h>
|
2014-10-16 22:04:47 +00:00
|
|
|
#include <stdint.h>
|
2014-02-25 21:39:57 +00:00
|
|
|
|
2014-10-16 22:04:47 +00:00
|
|
|
#include <sortix/dirent.h>
|
|
|
|
#include <sortix/exit.h>
|
|
|
|
#include <sortix/fork.h>
|
|
|
|
#include <sortix/itimerspec.h>
|
|
|
|
#include <sortix/poll.h>
|
|
|
|
#include <sortix/resource.h>
|
|
|
|
#include <sortix/sigaction.h>
|
|
|
|
#include <sortix/sigevent.h>
|
|
|
|
#include <sortix/sigset.h>
|
|
|
|
#include <sortix/stack.h>
|
|
|
|
#include <sortix/stat.h>
|
|
|
|
#include <sortix/statvfs.h>
|
2014-06-27 14:15:30 +00:00
|
|
|
#include <sortix/syscall.h>
|
2014-10-16 22:04:47 +00:00
|
|
|
#include <sortix/termios.h>
|
|
|
|
#include <sortix/timespec.h>
|
|
|
|
#include <sortix/tmns.h>
|
2016-01-23 19:56:07 +00:00
|
|
|
#include <sortix/winsize.h>
|
2013-01-08 23:41:35 +00:00
|
|
|
|
|
|
|
namespace Sortix {
|
|
|
|
|
2016-03-26 11:36:07 +00:00
|
|
|
#if defined(__i386__)
|
|
|
|
struct fchownat_request;
|
|
|
|
#endif
|
2014-10-16 22:04:47 +00:00
|
|
|
struct mmap_request;
|
|
|
|
|
|
|
|
int sys_accept4(int, void*, size_t*, int);
|
|
|
|
int sys_alarmns(const struct timespec*, struct timespec*);
|
|
|
|
int sys_bad_syscall(void);
|
|
|
|
int sys_bind(int, const void*, size_t);
|
|
|
|
int sys_clock_gettimeres(clockid_t, struct timespec*, struct timespec*);
|
|
|
|
int sys_clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*);
|
|
|
|
int sys_clock_settimeres(clockid_t, const struct timespec*, const struct timespec*);
|
|
|
|
int sys_close(int);
|
2015-05-13 15:48:53 +00:00
|
|
|
int sys_closefrom(int);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_connect(int, const void*, size_t);
|
|
|
|
int sys_dispmsg_issue(void*, size_t);
|
|
|
|
int sys_dup(int);
|
|
|
|
int sys_dup2(int, int);
|
|
|
|
int sys_dup3(int, int, int);
|
2015-01-22 23:29:04 +00:00
|
|
|
int sys_execve(const char*, char* const*, char* const*);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_exit_thread(int, int, const struct exit_thread*);
|
|
|
|
int sys_faccessat(int, const char*, int, int);
|
|
|
|
int sys_fchdir(int);
|
|
|
|
int sys_fchdirat(int, const char*);
|
|
|
|
int sys_fchmod(int, mode_t);
|
|
|
|
int sys_fchmodat(int, const char*, mode_t, int);
|
|
|
|
int sys_fchown(int, uid_t, gid_t);
|
|
|
|
int sys_fchownat(int, const char*, uid_t, gid_t, int);
|
2016-03-26 11:36:07 +00:00
|
|
|
#if defined(__i386__)
|
|
|
|
int sys_fchownat_wrapper(const struct fchownat_request*);
|
|
|
|
#endif
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_fchroot(int);
|
|
|
|
int sys_fchrootat(int, const char*);
|
|
|
|
int sys_fcntl(int, int, uintptr_t);
|
|
|
|
int sys_fsm_fsbind(int, int, int);
|
2015-01-22 01:35:04 +00:00
|
|
|
int sys_fsm_mountat(int, const char*, const struct stat*, int);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_fstat(int, struct stat*);
|
|
|
|
int sys_fstatat(int, const char*, struct stat*, int);
|
|
|
|
int sys_fstatvfs(int, struct statvfs*);
|
|
|
|
int sys_fstatvfsat(int, const char*, struct statvfs*, int);
|
|
|
|
int sys_fsync(int);
|
|
|
|
int sys_ftruncate(int, off_t);
|
2015-01-22 23:29:04 +00:00
|
|
|
int sys_futimens(int, const struct timespec*);
|
2014-10-16 22:04:47 +00:00
|
|
|
gid_t sys_getegid(void);
|
|
|
|
int sys_getentropy(void*, size_t);
|
|
|
|
uid_t sys_geteuid(void);
|
|
|
|
gid_t sys_getgid(void);
|
|
|
|
int sys_gethostname(char*, size_t);
|
|
|
|
size_t sys_getpagesize(void);
|
|
|
|
int sys_getpeername(int, struct sockaddr*, socklen_t*);
|
|
|
|
pid_t sys_getpgid(pid_t);
|
|
|
|
pid_t sys_getpid(void);
|
|
|
|
pid_t sys_getppid(void);
|
|
|
|
int sys_getpriority(int, id_t);
|
2016-11-15 20:08:41 +00:00
|
|
|
pid_t sys_getsid(pid_t);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_getsockname(int, struct sockaddr*, socklen_t*);
|
|
|
|
int sys_getsockopt(int, int, int, void*, size_t*);
|
|
|
|
int sys_gettermmode(int, unsigned*);
|
|
|
|
uid_t sys_getuid(void);
|
|
|
|
mode_t sys_getumask(void);
|
2016-01-23 19:56:07 +00:00
|
|
|
int sys_ioctl(int, int, uintptr_t);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_isatty(int);
|
|
|
|
ssize_t sys_kernelinfo(const char*, char*, size_t);
|
|
|
|
int sys_kill(pid_t, int);
|
|
|
|
int sys_linkat(int, const char*, int, const char*, int);
|
|
|
|
int sys_listen(int, int);
|
2015-01-22 01:35:04 +00:00
|
|
|
off_t sys_lseek(int, off_t, int);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_memstat(size_t*, size_t*);
|
|
|
|
int sys_mkdirat(int, const char*, mode_t);
|
|
|
|
int sys_mkpartition(int, off_t, off_t, int);
|
2016-11-15 20:14:56 +00:00
|
|
|
int sys_mkpty(int*, int*, int);
|
2014-10-16 22:04:47 +00:00
|
|
|
void* sys_mmap_wrapper(struct mmap_request*);
|
|
|
|
int sys_mprotect(const void*, size_t, int);
|
|
|
|
int sys_munmap(void*, size_t);
|
|
|
|
int sys_openat(int, const char*, int, mode_t);
|
2015-01-22 23:29:04 +00:00
|
|
|
int sys_pipe2(int*, int);
|
2015-03-21 12:05:37 +00:00
|
|
|
int sys_ppoll(struct pollfd*, size_t, const struct timespec*, const sigset_t*);
|
2014-10-16 22:04:47 +00:00
|
|
|
ssize_t sys_pread(int, void*, size_t, off_t);
|
|
|
|
ssize_t sys_preadv(int, const struct iovec*, int, off_t);
|
|
|
|
int sys_prlimit(pid_t, int, const struct rlimit*, struct rlimit*);
|
2015-07-30 23:20:39 +00:00
|
|
|
int sys_psctl(pid_t, int, void*);
|
2014-10-16 22:04:47 +00:00
|
|
|
ssize_t sys_pwrite(int, const void*, size_t, off_t);
|
|
|
|
ssize_t sys_pwritev(int, const struct iovec*, int, off_t);
|
|
|
|
int sys_raise(int);
|
|
|
|
uint64_t sys_rdmsr(uint32_t);
|
|
|
|
ssize_t sys_read(int, void*, size_t);
|
2015-11-20 01:57:09 +00:00
|
|
|
ssize_t sys_readdirents(int, struct dirent*, size_t);
|
2014-10-16 22:04:47 +00:00
|
|
|
ssize_t sys_readlinkat(int, const char*, char*, size_t);
|
|
|
|
ssize_t sys_readv(int, const struct iovec*, int);
|
|
|
|
ssize_t sys_recv(int, void*, size_t, int);
|
|
|
|
ssize_t sys_recvmsg(int, struct msghdr*, int);
|
|
|
|
int sys_renameat(int, const char*, int, const char*);
|
2015-10-27 16:34:54 +00:00
|
|
|
void sys_scram(int, const void*);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_sched_yield(void);
|
|
|
|
ssize_t sys_send(int, const void*, size_t, int);
|
|
|
|
ssize_t sys_sendmsg(int, const struct msghdr*, int);
|
|
|
|
int sys_setegid(gid_t);
|
|
|
|
int sys_seteuid(uid_t);
|
|
|
|
int sys_setgid(gid_t);
|
|
|
|
int sys_sethostname(const char*, size_t);
|
|
|
|
int sys_setpgid(pid_t, pid_t);
|
|
|
|
int sys_setpriority(int, id_t, int);
|
2016-11-15 20:08:41 +00:00
|
|
|
pid_t sys_setsid(void);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_setsockopt(int, int, int, const void*, size_t);
|
|
|
|
int sys_settermmode(int, unsigned);
|
|
|
|
int sys_setuid(uid_t);
|
|
|
|
int sys_shutdown(int, int);
|
|
|
|
int sys_sigaction(int, const struct sigaction*, struct sigaction*);
|
|
|
|
int sys_sigaltstack(const stack_t*, stack_t*);
|
|
|
|
int sys_sigpending(sigset_t*);
|
|
|
|
int sys_sigprocmask(int, const sigset_t*, sigset_t*);
|
|
|
|
int sys_sigsuspend(const sigset_t*);
|
2016-06-28 00:07:01 +00:00
|
|
|
int sys_socket(int, int, int);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_symlinkat(const char*, int, const char*);
|
2016-01-23 19:56:07 +00:00
|
|
|
int sys_tcdrain(int);
|
|
|
|
int sys_tcflow(int, int);
|
|
|
|
int sys_tcflush(int, int);
|
|
|
|
int sys_tcgetattr(int, struct termios*);
|
2014-10-16 22:04:47 +00:00
|
|
|
ssize_t sys_tcgetblob(int, const char*, void*, size_t);
|
|
|
|
int sys_tcgetpgrp(int);
|
2016-01-23 19:56:07 +00:00
|
|
|
pid_t sys_tcgetsid(int);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_tcgetwincurpos(int, struct wincurpos*);
|
|
|
|
int sys_tcgetwinsize(int, struct winsize*);
|
2016-01-23 19:56:07 +00:00
|
|
|
int sys_tcsendbreak(int, int);
|
|
|
|
int sys_tcsetattr(int, int, const struct termios*);
|
2014-10-16 22:04:47 +00:00
|
|
|
ssize_t sys_tcsetblob(int, const char*, const void*, size_t);
|
|
|
|
int sys_tcsetpgrp(int, pid_t);
|
|
|
|
pid_t sys_tfork(int, struct tfork*);
|
|
|
|
int sys_timens(struct tmns*);
|
2015-01-22 01:35:04 +00:00
|
|
|
int sys_timer_create(clockid_t, struct sigevent*, timer_t*);
|
2014-10-16 22:04:47 +00:00
|
|
|
int sys_timer_delete(timer_t);
|
|
|
|
int sys_timer_getoverrun(timer_t);
|
|
|
|
int sys_timer_gettime(timer_t, struct itimerspec*);
|
|
|
|
int sys_timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*);
|
|
|
|
int sys_truncateat(int, const char*, off_t);
|
|
|
|
mode_t sys_umask(mode_t);
|
|
|
|
int sys_unlinkat(int, const char*, int);
|
2014-05-07 12:14:38 +00:00
|
|
|
int sys_unmountat(int, const char*, int);
|
2015-01-22 23:29:04 +00:00
|
|
|
int sys_utimensat(int, const char*, const struct timespec*, int);
|
2014-10-16 22:04:47 +00:00
|
|
|
pid_t sys_waitpid(pid_t, int*, int);
|
|
|
|
ssize_t sys_write(int, const void*, size_t);
|
|
|
|
ssize_t sys_writev(int, const struct iovec*, int);
|
|
|
|
uint64_t sys_wrmsr(uint32_t, uint64_t);
|
2013-01-08 23:41:35 +00:00
|
|
|
|
|
|
|
} // namespace Sortix
|
2011-08-05 12:25:00 +00:00
|
|
|
|
|
|
|
#endif
|