#include <linux/sched.h>
#include <linux/vs_context.h>
#include <linux/vserver/namespace.h>
+#include <linux/vserver/namespace_cmd.h>
#include <linux/dcache.h>
#include <linux/mount.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
-/* virtual host info names */
-
-static char * vx_vhi_name(struct vx_info *vxi, int id)
-{
- switch (id) {
- case VHIN_CONTEXT:
- return vxi->vx_name;
- case VHIN_SYSNAME:
- return vxi->cvirt.utsname.sysname;
- case VHIN_NODENAME:
- return vxi->cvirt.utsname.nodename;
- case VHIN_RELEASE:
- return vxi->cvirt.utsname.release;
- case VHIN_VERSION:
- return vxi->cvirt.utsname.version;
- case VHIN_MACHINE:
- return vxi->cvirt.utsname.machine;
- case VHIN_DOMAINNAME:
- return vxi->cvirt.utsname.domainname;
- default:
- return NULL;
- }
- return NULL;
-}
-
-int vc_set_vhi_name(uint32_t id, void __user *data)
-{
- struct vx_info *vxi;
- struct vcmd_vx_vhi_name_v0 vc_data;
- char *name;
-
- if (!capable(CAP_SYS_ADMIN))
- return -EPERM;
- if (copy_from_user (&vc_data, data, sizeof(vc_data)))
- return -EFAULT;
-
- vxi = locate_vx_info(id);
- if (!vxi)
- return -ESRCH;
-
- name = vx_vhi_name(vxi, vc_data.field);
- if (name)
- memcpy(name, vc_data.name, 65);
- put_vx_info(vxi);
- return (name ? 0 : -EFAULT);
-}
-
-int vc_get_vhi_name(uint32_t id, void __user *data)
-{
- struct vx_info *vxi;
- struct vcmd_vx_vhi_name_v0 vc_data;
- char *name;
-
- if (copy_from_user (&vc_data, data, sizeof(vc_data)))
- return -EFAULT;
-
- vxi = locate_vx_info(id);
- if (!vxi)
- return -ESRCH;
-
- name = vx_vhi_name(vxi, vc_data.field);
- if (!name)
- goto out_put;
-
- memcpy(vc_data.name, name, 65);
- if (copy_to_user (data, &vc_data, sizeof(vc_data)))
- return -EFAULT;
-out_put:
- put_vx_info(vxi);
- return (name ? 0 : -EFAULT);
-}
-
/* namespace functions */
#include <linux/namespace.h>