/* * linux/kernel/vserver/switch.c * * Virtual Server: Syscall Switch * * Copyright (C) 2003-2004 Herbert Pötzl * * V0.01 syscall switch * V0.02 added signal to context * V0.03 added rlimit functions * V0.04 added iattr, task/xid functions * */ #include #include #include #include static inline int vc_get_version(uint32_t id) { return VCI_VERSION; } #include #include #include #include #include #include extern asmlinkage int sys_vserver(uint32_t cmd, uint32_t id, void *data) { int ret = -ENOTSUP; switch (cmd) { case VCMD_get_version: ret = vc_get_version(id); break; case VCMD_new_s_context: ret = vc_new_s_context(id, data); break; case VCMD_set_ipv4root: ret = vc_set_ipv4root(id, data); break; case VCMD_get_rlimit: ret = vc_get_rlimit(id, data); break; case VCMD_set_rlimit: ret = vc_set_rlimit(id, data); break; case VCMD_get_rlimit_mask: ret = vc_get_rlimit_mask(id, data); break; case VCMD_ctx_kill: ret = vc_ctx_kill(id, data); break; case VCMD_get_iattr: ret = vc_get_iattr(id, data); break; case VCMD_set_iattr: ret = vc_set_iattr(id, data); break; case VCMD_task_xid: ret = vc_task_xid(id, data); break; case VCMD_vx_info: ret = vc_vx_info(id, data); break; case VCMD_enter_namespace: ret = vc_enter_namespace(id, data); break; } return ret; }