2 * KERN_SYSCALL.H - Split syscall prototypes
4 * Copyright (c) 2003 David P. Reese, Jr. <daver@gomerbud.com>
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * $DragonFly: src/sys/sys/kern_syscall.h,v 1.37 2007/06/16 19:57:08 dillon Exp $
31 #ifndef _SYS_KERN_SYSCALL_H_
32 #define _SYS_KERN_SYSCALL_H_
35 #error "This file should not be included by userland programs."
40 enum dup_type
{DUP_FIXED
, DUP_VARIABLE
};
69 * Prototypes for syscalls in kern/kern_descrip.c
71 int kern_dup(enum dup_type type
, int old
, int new, int *res
);
72 int kern_fcntl(int fd
, int cmd
, union fcntl_dat
*dat
, struct ucred
*cred
);
73 int kern_fstat(int fd
, struct stat
*st
);
76 * Prototypes for syscalls in kern/kern_exec.c
78 int kern_execve(struct nlookupdata
*nd
, struct image_args
*args
);
81 * Prototypes for syscalls in kern/kern_exit.c
83 int kern_wait(pid_t pid
, int *status
, int options
, struct rusage
*rusage
,
87 * Prototypes for syscalls in kern/kern_sig.c
89 int kern_sigaction(int sig
, struct sigaction
*act
, struct sigaction
*oact
);
90 int kern_sigprocmask(int how
, struct __sigset
*set
, struct __sigset
*oset
);
91 int kern_sigpending(struct __sigset
*set
);
92 int kern_sigsuspend(struct __sigset
*mask
);
93 int kern_sigaltstack(struct sigaltstack
*ss
, struct sigaltstack
*oss
);
94 int kern_kill(int sig
, pid_t pid
, lwpid_t tid
);
97 * Prototypes for syscalls in kern/sys_generic.c
99 int kern_preadv(int fd
, struct uio
*auio
, int flags
, int *res
);
100 int kern_pwritev(int fd
, struct uio
*auio
, int flags
, int *res
);
103 * Prototypes for syscalls in kern/kern_resource.c
105 int kern_setrlimit(u_int which
, struct rlimit
*limp
);
106 int kern_getrlimit(u_int which
, struct rlimit
*limp
);
109 * Prototypes for syscalls in kern/uipc_syscalls.c
111 int kern_accept(int s
, int fflags
, struct sockaddr
**name
, int *namelen
, int *res
);
112 int kern_bind(int s
, struct sockaddr
*sa
);
113 int kern_connect(int s
, int fflags
, struct sockaddr
*sa
);
114 int kern_listen(int s
, int backlog
);
115 int kern_getpeername(int s
, struct sockaddr
**name
, int *namelen
);
116 int kern_getsockopt(int s
, struct sockopt
*sopt
);
117 int kern_getsockname(int s
, struct sockaddr
**name
, int *namelen
);
118 int kern_recvmsg(int s
, struct sockaddr
**sa
, struct uio
*auio
,
119 struct mbuf
**control
, int *flags
, int *res
);
120 int kern_shutdown(int s
, int how
);
121 int kern_sendfile(struct vnode
*vp
, int s
, off_t offset
, size_t nbytes
,
122 struct mbuf
*mheader
, off_t
*sbytes
, int flags
);
123 int kern_sendmsg(int s
, struct sockaddr
*sa
, struct uio
*auio
,
124 struct mbuf
*control
, int flags
, int *res
);
125 int kern_setsockopt(int s
, struct sockopt
*sopt
);
126 int kern_socket(int domain
, int type
, int protocol
, int *res
);
127 int kern_socketpair(int domain
, int type
, int protocol
, int *sockv
);
130 * Prototypes for syscalls in kern/vfs_syscalls.c
132 int kern_access(struct nlookupdata
*nd
, int aflags
);
133 int kern_chdir(struct nlookupdata
*nd
);
134 int kern_chmod(struct nlookupdata
*nd
, int mode
);
135 int kern_chown(struct nlookupdata
*nd
, int uid
, int gid
);
136 int kern_chroot(struct nchandle
*nch
);
137 int kern_fstatfs(int fd
, struct statfs
*buf
);
138 int kern_ftruncate(int fd
, off_t length
);
139 int kern_futimes(int fd
, struct timeval
*tptr
);
140 int kern_getdirentries(int fd
, char *buf
, u_int count
, long *basep
, int *res
,
142 int kern_link(struct nlookupdata
*nd
, struct nlookupdata
*linknd
);
143 int kern_lseek(int fd
, off_t offset
, int whence
, off_t
*res
);
144 int kern_mountctl(const char *path
, int op
, struct file
*fp
,
145 const void *ctl
, int ctllen
,
146 void *buf
, int buflen
, int *res
);
147 int kern_mkdir(struct nlookupdata
*nd
, int mode
);
148 int kern_mkfifo(struct nlookupdata
*nd
, int mode
);
149 int kern_mknod(struct nlookupdata
*nd
, int mode
, int rmajor
, int rminor
);
150 int kern_open(struct nlookupdata
*nd
, int flags
, int mode
, int *res
);
151 int kern_close(int fd
);
152 int kern_closefrom(int fd
);
153 int kern_readlink(struct nlookupdata
*nd
, char *buf
, int count
, int *res
);
154 int kern_rename(struct nlookupdata
*fromnd
, struct nlookupdata
*tond
);
155 int kern_rmdir(struct nlookupdata
*nd
);
156 int kern_stat(struct nlookupdata
*nd
, struct stat
*st
);
157 int kern_statfs(struct nlookupdata
*nd
, struct statfs
*buf
);
158 int kern_symlink(struct nlookupdata
*nd
, char *path
, int mode
);
159 int kern_truncate(struct nlookupdata
*nd
, off_t length
);
160 int kern_unlink(struct nlookupdata
*nd
);
161 int kern_utimes(struct nlookupdata
*nd
, struct timeval
*tptr
);
162 struct uuid
*kern_uuidgen(struct uuid
*store
, size_t count
);
165 * Prototypes for syscalls in kern/vfs_cache.c
167 char *kern_getcwd(char *, size_t, int *);
170 * Prototypes for syscalls in vm/vm_mmap.c
172 int kern_mmap(struct vmspace
*, caddr_t addr
, size_t len
,
173 int prot
, int flags
, int fd
, off_t pos
, void **res
);
175 #endif /* !_SYS_KERN_SYSCALL_H_ */