/* * Whee.. Weird sysv syscall. */ SYSCALL_DEFINE3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2) { int retval = -EINVAL; switch (option) { case 1: retval = fs_index((const char __user *) arg1); break; case 2: retval = fs_name(arg1, (char __user *) arg2); break; case 3: retval = fs_maxindex(); break; } return retval; }
/* * Whee.. Weird sysv syscall. */ asmlinkage long sys_sysfs(int option, unsigned long arg1, unsigned long arg2) { int retval = -EINVAL; switch (option) { case 1: retval = fs_index((const char __user *) arg1); break; case 2: retval = fs_name(arg1, (char __user *) arg2); break; case 3: retval = fs_maxindex(); break; } return retval; }
/* * Whee.. Weird sysv syscall. */ asmlinkage int sys_sysfs(int option, unsigned long arg1, unsigned long arg2) { int retval = -EINVAL; lock_kernel(); switch (option) { case 1: retval = fs_index((const char *) arg1); break; case 2: retval = fs_name(arg1, (char *) arg2); break; case 3: retval = fs_maxindex(); break; } unlock_kernel(); return retval; }
/* * Whee.. Weird sysv syscall. */ asmlinkage int sys_sysfs(int option, ...) { va_list args; int retval = -EINVAL; unsigned int index; va_start(args, option); switch (option) { case 1: retval = fs_index(va_arg(args, const char *)); break; case 2: index = va_arg(args, unsigned int); retval = fs_name(index, va_arg(args, char *)); break; case 3: retval = fs_maxindex(); break; } va_end(args); return retval; }