From owner-svn-src-user@FreeBSD.ORG Fri May 10 06:46:52 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id C7BF0309; Fri, 10 May 2013 06:46:52 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id A98301BE; Fri, 10 May 2013 06:46:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r4A6kqdw044717; Fri, 10 May 2013 06:46:52 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r4A6kqxe044715; Fri, 10 May 2013 06:46:52 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <201305100646.r4A6kqxe044715@svn.freebsd.org> From: Dmitry Chagin Date: Fri, 10 May 2013 06:46:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r250440 - user/dchagin/lemul/sys/compat/linux X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 May 2013 06:46:52 -0000 Author: dchagin Date: Fri May 10 06:46:52 2013 New Revision: 250440 URL: http://svnweb.freebsd.org/changeset/base/250440 Log: Get ready to commit x86_64 Linux emulation. Add sysctl variables for the 64-bit Linuxulator. Modified: user/dchagin/lemul/sys/compat/linux/linux_mib.c user/dchagin/lemul/sys/compat/linux/linux_mib.h Modified: user/dchagin/lemul/sys/compat/linux/linux_mib.c ============================================================================== --- user/dchagin/lemul/sys/compat/linux/linux_mib.c Fri May 10 06:45:27 2013 (r250439) +++ user/dchagin/lemul/sys/compat/linux/linux_mib.c Fri May 10 06:46:52 2013 (r250440) @@ -137,7 +137,7 @@ static struct linux_prison lprison0 = { static unsigned linux_osd_jail_slot; -static SYSCTL_NODE(_compat, OID_AUTO, linux, CTLFLAG_RW, 0, +static SYSCTL_NODE(_compat, OID_AUTO, LINUX_OID, CTLFLAG_RW, 0, "Linux mode"); static int linux_set_osname(struct thread *td, char *osname); @@ -145,7 +145,7 @@ static int linux_set_osrelease(struct th static int linux_set_oss_version(struct thread *td, int oss_version); static int -linux_sysctl_osname(SYSCTL_HANDLER_ARGS) +__linuxN(sysctl_osname)(SYSCTL_HANDLER_ARGS) { char osname[LINUX_MAX_UTSNAME]; int error; @@ -166,13 +166,13 @@ linux_sysctl_osname(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_compat_linux, OID_AUTO, osname, +SYSCTL_PROC(LINUX_COMPAT_OID, OID_AUTO, osname, CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, - 0, 0, linux_sysctl_osname, "A", + 0, 0, __linuxN(sysctl_osname), "A", "Linux kernel OS name"); static int -linux_sysctl_osrelease(SYSCTL_HANDLER_ARGS) +__linuxN(sysctl_osrelease)(SYSCTL_HANDLER_ARGS) { char osrelease[LINUX_MAX_UTSNAME]; int error; @@ -193,13 +193,13 @@ linux_sysctl_osrelease(SYSCTL_HANDLER_AR return (error); } -SYSCTL_PROC(_compat_linux, OID_AUTO, osrelease, +SYSCTL_PROC(LINUX_COMPAT_OID, OID_AUTO, osrelease, CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, - 0, 0, linux_sysctl_osrelease, "A", + 0, 0, __linuxN(sysctl_osrelease), "A", "Linux kernel OS release"); static int -linux_sysctl_oss_version(SYSCTL_HANDLER_ARGS) +__linuxN(sysctl_oss_version)(SYSCTL_HANDLER_ARGS) { int oss_version; int error; @@ -220,9 +220,9 @@ linux_sysctl_oss_version(SYSCTL_HANDLER_ return (error); } -SYSCTL_PROC(_compat_linux, OID_AUTO, oss_version, +SYSCTL_PROC(LINUX_COMPAT_OID, OID_AUTO, oss_version, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, - 0, 0, linux_sysctl_oss_version, "I", + 0, 0, __linuxN(sysctl_oss_version), "I", "Linux OSS version"); /* @@ -543,6 +543,15 @@ linux_prison_set(void *obj, void *data) return (0); } +#if defined(__amd64__) && !defined(COMPAT_LINUX32) +SYSCTL_JAIL_PARAM_SYS_NODE(linux64, CTLFLAG_RW, "Jail Linux parameters"); +SYSCTL_JAIL_PARAM_STRING(_linux64, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME, + "Jail Linux kernel OS name"); +SYSCTL_JAIL_PARAM_STRING(_linux64, osrelease, CTLFLAG_RW, LINUX_MAX_UTSNAME, + "Jail Linux kernel OS release"); +SYSCTL_JAIL_PARAM(_linux64, oss_version, CTLTYPE_INT | CTLFLAG_RW, + "I", "Jail Linux OSS version"); +#else SYSCTL_JAIL_PARAM_SYS_NODE(linux, CTLFLAG_RW, "Jail Linux parameters"); SYSCTL_JAIL_PARAM_STRING(_linux, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME, "Jail Linux kernel OS name"); @@ -550,6 +559,7 @@ SYSCTL_JAIL_PARAM_STRING(_linux, osrelea "Jail Linux kernel OS release"); SYSCTL_JAIL_PARAM(_linux, oss_version, CTLTYPE_INT | CTLFLAG_RW, "I", "Jail Linux OSS version"); +#endif static int linux_prison_get(void *obj, void *data) @@ -828,7 +838,7 @@ linux_debug(int syscall, int toggle, int */ #define LINUX_MAX_DEBUGSTR 16 static int -linux_sysctl_debug(SYSCTL_HANDLER_ARGS) +__linuxN(sysctl_debug)(SYSCTL_HANDLER_ARGS) { char value[LINUX_MAX_DEBUGSTR], *p; int error, sysc, toggle; @@ -850,9 +860,9 @@ linux_sysctl_debug(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_compat_linux, OID_AUTO, debug, +SYSCTL_PROC(LINUX_COMPAT_OID, OID_AUTO, debug, CTLTYPE_STRING | CTLFLAG_RW, - 0, 0, linux_sysctl_debug, "A", + 0, 0, __linuxN(sysctl_debug), "A", "Linux debugging control"); #endif /* DEBUG || KTR */ Modified: user/dchagin/lemul/sys/compat/linux/linux_mib.h ============================================================================== --- user/dchagin/lemul/sys/compat/linux/linux_mib.h Fri May 10 06:45:27 2013 (r250439) +++ user/dchagin/lemul/sys/compat/linux/linux_mib.h Fri May 10 06:46:52 2013 (r250440) @@ -58,4 +58,12 @@ int linux_kernver(struct thread *td); #define linux_use26(t) (linux_kernver(t) >= LINUX_KERNVER_2006000) +#if defined(__amd64__) && !defined(COMPAT_LINUX32) +#define LINUX_OID linux64 +#else +#define LINUX_OID linux +#endif +#define __linuxN(x) __CONCAT(__CONCAT(LINUX_OID,_),x) +#define LINUX_COMPAT_OID __CONCAT(_compat_,LINUX_OID) + #endif /* _LINUX_MIB_H_ */