note a leak that needs fixing eventually
[trinity.git] / syscalls / mount.c
blob84ab1aac14e55b20d2ffb4c4dd5e5fc4e611f6e2
1 /*
2 * SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
3 char __user *, type, unsigned long, flags, void __user *, data)
4 */
6 #include <linux/fs.h>
7 #include "sanitise.h"
8 #include "compat.h"
10 //TODO: fill out 'type' with something random from /proc/filesystems
12 struct syscallentry syscall_mount = {
13 .name = "mount",
14 .num_args = 5,
15 .arg1name = "dev_name",
16 .arg1type = ARG_PATHNAME,
17 .arg2name = "dir_name",
18 .arg2type = ARG_PATHNAME,
19 .arg3name = "type",
20 .arg3type = ARG_ADDRESS,
21 .arg4name = "flags",
22 .arg4type = ARG_LIST,
23 .arg4list = {
24 .num = 29,
25 .values = {
26 MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC,
27 MS_SYNCHRONOUS, MS_REMOUNT, MS_MANDLOCK, MS_DIRSYNC,
28 MS_NOATIME, MS_NODIRATIME, MS_BIND, MS_MOVE,
29 MS_REC, MS_VERBOSE, MS_SILENT, MS_POSIXACL,
30 MS_UNBINDABLE, MS_PRIVATE, MS_SLAVE, MS_SHARED,
31 MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION, MS_STRICTATIME,
32 MS_SNAP_STABLE, MS_NOSEC, MS_BORN, MS_ACTIVE,
33 MS_NOUSER, },
35 .arg5name = "data",
36 .arg5type = ARG_ADDRESS,
37 .group = GROUP_VFS,