xref: /minix/minix/servers/vfs/table.c (revision 9f988b79)
1 /* This file contains the table used to map system call numbers onto the
2  * routines that perform them.
3  */
4 
5 #define _TABLE
6 
7 #include "fs.h"
8 #include <minix/callnr.h>
9 #include <minix/com.h>
10 #include "file.h"
11 #include "lock.h"
12 #include "vnode.h"
13 #include "vmnt.h"
14 
15 #define CALL(n) [((n) - VFS_BASE)]
16 
17 int (* const call_vec[NR_VFS_CALLS])(void) = {
18 	CALL(VFS_READ)		= do_read,		/* read(2) */
19 	CALL(VFS_WRITE)		= do_write,		/* write(2) */
20 	CALL(VFS_LSEEK)		= do_lseek,		/* lseek(2) */
21 	CALL(VFS_OPEN)		= do_open,		/* open(2) */
22 	CALL(VFS_CREAT)		= do_creat,		/* creat(2) */
23 	CALL(VFS_CLOSE)		= do_close,		/* close(2) */
24 	CALL(VFS_LINK)		= do_link,		/* link(2) */
25 	CALL(VFS_UNLINK)	= do_unlink,		/* unlink(2) */
26 	CALL(VFS_CHDIR)		= do_chdir,		/* chdir(2) */
27 	CALL(VFS_MKDIR)		= do_mkdir,		/* mkdir(2) */
28 	CALL(VFS_MKNOD)		= do_mknod,		/* mknod(2) */
29 	CALL(VFS_CHMOD)		= do_chmod,		/* chmod(2) */
30 	CALL(VFS_CHOWN)		= do_chown,		/* chown(2) */
31 	CALL(VFS_MOUNT)		= do_mount,		/* mount(2) */
32 	CALL(VFS_UMOUNT)	= do_umount,		/* umount(2) */
33 	CALL(VFS_ACCESS)	= do_access,		/* access(2) */
34 	CALL(VFS_SYNC)		= do_sync,		/* sync(2) */
35 	CALL(VFS_RENAME)	= do_rename,		/* rename(2) */
36 	CALL(VFS_RMDIR)		= do_unlink,		/* rmdir(2) */
37 	CALL(VFS_SYMLINK)	= do_slink,		/* symlink(2) */
38 	CALL(VFS_READLINK)	= do_rdlink,		/* readlink(2) */
39 	CALL(VFS_STAT)		= do_stat,		/* stat(2) */
40 	CALL(VFS_FSTAT)		= do_fstat,		/* fstat(2) */
41 	CALL(VFS_LSTAT)		= do_lstat,		/* lstat(2) */
42 	CALL(VFS_IOCTL)		= do_ioctl,		/* ioctl(2) */
43 	CALL(VFS_FCNTL)		= do_fcntl,		/* fcntl(2) */
44 	CALL(VFS_PIPE2)		= do_pipe2,		/* pipe2(2) */
45 	CALL(VFS_UMASK)		= do_umask,		/* umask(2) */
46 	CALL(VFS_CHROOT)	= do_chroot,		/* chroot(2) */
47 	CALL(VFS_GETDENTS)	= do_getdents,		/* getdents(2) */
48 	CALL(VFS_SELECT)	= do_select,		/* select(2) */
49 	CALL(VFS_FCHDIR)	= do_fchdir,		/* fchdir(2) */
50 	CALL(VFS_FSYNC)		= do_fsync,		/* fsync(2) */
51 	CALL(VFS_TRUNCATE)	= do_truncate,		/* truncate(2) */
52 	CALL(VFS_FTRUNCATE)	= do_ftruncate,		/* ftruncate(2) */
53 	CALL(VFS_FCHMOD)	= do_chmod,		/* fchmod(2) */
54 	CALL(VFS_FCHOWN)	= do_chown,		/* fchown(2) */
55 	CALL(VFS_UTIMENS)	= do_utimens,		/* [fl]utime[n]s(2) */
56 	CALL(VFS_VMCALL)	= do_vm_call,
57 	CALL(VFS_GETVFSSTAT)	= do_getvfsstat,	/* getvfsstat(2) */
58 	CALL(VFS_STATVFS1)	= do_statvfs,		/* statvfs(2) */
59 	CALL(VFS_FSTATVFS1)	= do_fstatvfs,		/* fstatvfs(2) */
60 	CALL(VFS_GETRUSAGE)	= do_getrusage,		/* (obsolete) */
61 	CALL(VFS_SVRCTL)	= do_svrctl,		/* svrctl(2) */
62 	CALL(VFS_GCOV_FLUSH)	= do_gcov_flush,	/* gcov_flush(2) */
63 	CALL(VFS_MAPDRIVER)	= do_mapdriver,		/* mapdriver(2) */
64 	CALL(VFS_COPYFD)	= do_copyfd,		/* copyfd(2) */
65 	CALL(VFS_CHECKPERMS)	= do_checkperms,	/* checkperms(2) */
66 	CALL(VFS_GETSYSINFO)	= do_getsysinfo,	/* getsysinfo(2) */
67 };
68