Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Nov 2008 12:12:01 +0100
From:      Ed Schouten <ed@80386.nl>
To:        emulation@FreeBSD.org, current@FreeBSD.org
Subject:   Request for review: uname(), setdomainname(), getdomainname() cleanups
Message-ID:  <20081107111201.GH1165@hoeg.nl>

next in thread | raw e-mail | index | archive | help

--Aq4SrlNverAHn87R
Content-Type: multipart/mixed; boundary="KbI68ipL6xvRMBYq"
Content-Disposition: inline


--KbI68ipL6xvRMBYq
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello all,

I just wrote this patch and I thought I'd better send it to the lists,
because it affects a lot of random things (Linux emulation, priv(9)
flags, etc).

Looking at kern_xxx.c, I see we've got a couple of functions there that
actually have to be #ifdef'd with COMPAT_*, while they aren't. Looking
at our CVS repository I can already confirm we don't need to implement
uname(), setdomainname() and getdomainname() on RELENG_5 and later, so I
put them in COMPAT_FREEBSD4. They are implemented as library routines
nowdays. I think they could even be marked as COMPAT_43, but just to be
sure I picked COMPAT_FREEBSD4.

Below is a list of things of interest:

- I noticed we have a PRIV_SETDOMAINNAME, but we don't use it inside
  sysctl_domainname(). This means that you can bypass PRIV_SETDOMAINNAME
  anyway, so remove it.

- I think it's better if we just implement getdomainname() and
  setdomainname() by calling userland_sysctl(). This makes it less
  likely to break if we would ever change sysctl_domainname() in
  kern_mib.c.

- To make the linuxolator compile without enabling COMPAT_FREEBSD4, I
  added a linux_setdomainname(). I also noticed linux_sethostname()
  called userland_sysctl() without holding Giant.

- It wasn't easy to make uname(), setdomainname() and getdomainname()
  work in COMPAT_FREEBSD32, because we would actually need a
  "COMPAT4+NOPROTO" option for syscalls.master. Because these system
  calls aren't likely to be used, I just disabled them. If it turns out
  we really need them, we could reintroduce them.

Any comments? If not, I'll commit it to SVN in a day or two. Thanks!

--=20
 Ed Schouten <ed@80386.nl>
 WWW: http://80386.nl/

--KbI68ipL6xvRMBYq
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="kern_xxx.diff"
Content-Transfer-Encoding: quoted-printable

Index: lib/libc/powerpc/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/powerpc/sys/Makefile.inc	(revision 184691)
+++ lib/libc/powerpc/sys/Makefile.inc	(working copy)
@@ -3,8 +3,7 @@
 MDASM+=3D	brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o yield.o
=20
 PSEUDO=3D	_getlogin.o _exit.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/arm/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/arm/sys/Makefile.inc	(revision 184691)
+++ lib/libc/arm/sys/Makefile.inc	(working copy)
@@ -3,8 +3,7 @@
 MDASM=3D Ovfork.S brk.S cerror.S pipe.S ptrace.S sbrk.S shmat.S sigreturn.=
S syscall.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o vfork.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o vfork.o yield.o
=20
 PSEUDO=3D _exit.o _getlogin.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/sparc64/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/sparc64/sys/Makefile.inc	(revision 184691)
+++ lib/libc/sparc64/sys/Makefile.inc	(working copy)
@@ -18,8 +18,7 @@
 MDASM+=3D	brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S sigacti=
on.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o yield.o
=20
 PSEUDO=3D	_getlogin.o _exit.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/ia64/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/ia64/sys/Makefile.inc	(revision 184691)
+++ lib/libc/ia64/sys/Makefile.inc	(working copy)
@@ -4,8 +4,7 @@
 	sbrk.S setlogin.S sigreturn.S swapcontext.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o vfork.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o vfork.o yield.o
=20
 PSEUDO=3D	_getlogin.o _exit.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/mips/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/mips/sys/Makefile.inc	(revision 184691)
+++ lib/libc/mips/sys/Makefile.inc	(working copy)
@@ -4,9 +4,8 @@
 	fork.S pipe.S ptrace.S sbrk.S shmat.S syscall.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o ftruncate.o getdomainname.o getlogin.o \
-	lseek.o mmap.o openbsd_poll.o pread.o \
-	pwrite.o setdomainname.o sstk.o truncate.o uname.o vfork.o yield.o
+NOASM=3D	break.o exit.o ftruncate.o getlogin.o lseek.o mmap.o \
+	openbsd_poll.o pread.o pwrite.o sstk.o truncate.o vfork.o yield.o
=20
 PSEUDO=3D _exit.o _getlogin.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/i386/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/i386/sys/Makefile.inc	(revision 184691)
+++ lib/libc/i386/sys/Makefile.inc	(working copy)
@@ -12,8 +12,7 @@
 	reboot.S sbrk.S setlogin.S sigreturn.S syscall.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o vfork.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o vfork.o yield.o
=20
 PSEUDO=3D	_getlogin.o _exit.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: lib/libc/amd64/sys/Makefile.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libc/amd64/sys/Makefile.inc	(revision 184691)
+++ lib/libc/amd64/sys/Makefile.inc	(working copy)
@@ -7,8 +7,7 @@
 	reboot.S sbrk.S setlogin.S sigreturn.S
=20
 # Don't generate default code for these syscalls:
-NOASM=3D	break.o exit.o getdomainname.o getlogin.o openbsd_poll.o \
-	setdomainname.o sstk.o uname.o vfork.o yield.o
+NOASM=3D	break.o exit.o getlogin.o openbsd_poll.o sstk.o vfork.o yield.o
=20
 PSEUDO=3D	_getlogin.o _exit.o
 .if !defined(WITHOUT_SYSCALL_COMPAT)
Index: sys/kern/init_sysent.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/kern/init_sysent.c	(revision 184691)
+++ sys/kern/init_sysent.c	(working copy)
@@ -190,9 +190,9 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 159 =3D nosys */
 	{ AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH, NULL, 0, 0 },	/* 160 =
=3D lgetfh */
 	{ AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH, NULL, 0, 0 },	/* 161=
 =3D getfh */
-	{ AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 162 =3D getdomainname */
-	{ AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 163 =3D setdomainname */
-	{ AS(uname_args), (sy_call_t *)uname, AUE_NULL, NULL, 0, 0 },	/* 164 =3D =
uname */
+	{ compat4(AS(freebsd4_getdomainname_args),getdomainname), AUE_SYSCTL, NUL=
L, 0, 0 },	/* 162 =3D old getdomainname */
+	{ compat4(AS(freebsd4_setdomainname_args),setdomainname), AUE_SYSCTL, NUL=
L, 0, 0 },	/* 163 =3D old setdomainname */
+	{ compat4(AS(freebsd4_uname_args),uname), AUE_NULL, NULL, 0, 0 },	/* 164 =
=3D old uname */
 	{ AS(sysarch_args), (sy_call_t *)sysarch, AUE_SYSARCH, NULL, 0, 0 },	/* 1=
65 =3D sysarch */
 	{ AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0 },	/* 166 =
=3D rtprio */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 167 =3D nosys */
Index: sys/kern/kern_xxx.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/kern/kern_xxx.c	(revision 184691)
+++ sys/kern/kern_xxx.c	(working copy)
@@ -148,6 +148,7 @@
 }
 #endif /* COMPAT_43 */
=20
+#ifdef COMPAT_FREEBSD4
 /*
  * This is the FreeBSD-1.1 compatable uname(2) interface.  These days it is
  * done in libc as a wrapper around a bunch of sysctl's.  This must mainta=
in
@@ -163,9 +164,7 @@
 #endif
 /* ARGSUSED */
 int
-uname(td, uap)
-	struct thread *td;
-	struct uname_args *uap;
+freebsd4_uname(struct thread *td, struct freebsd4_uname_args *uap)
 {
 	int name[2], error;
 	size_t len;
@@ -242,22 +241,20 @@
 #endif
 /* ARGSUSED */
 int
-getdomainname(td, uap)
-	struct thread *td;
-	struct getdomainname_args *uap;
+freebsd4_getdomainname(struct thread *td,
+    struct freebsd4_getdomainname_args *uap)
 {
-	INIT_VPROCG(TD_TO_VPROCG(td));
-	char tmpdomainname[MAXHOSTNAMELEN];
-	int domainnamelen;
+	int name[2];
+	int error;
+	size_t len =3D uap->len;
=20
-	mtx_lock(&hostname_mtx);
-	bcopy(V_domainname, tmpdomainname, sizeof(tmpdomainname));
-	mtx_unlock(&hostname_mtx);
-
-	domainnamelen =3D strlen(tmpdomainname) + 1;
-	if ((u_int)uap->len > domainnamelen)
-		uap->len =3D domainnamelen;
-	return (copyout(tmpdomainname, uap->domainname, uap->len));
+	name[0] =3D CTL_KERN;
+	name[1] =3D KERN_NISDOMAINNAME;
+	mtx_lock(&Giant);
+	error =3D userland_sysctl(td, name, 2, uap->domainname, &len,
+	    1, 0, 0, 0, 0);
+	mtx_unlock(&Giant);
+	return(error);
 }
=20
 #ifndef _SYS_SYSPROTO_H_
@@ -268,26 +265,18 @@
 #endif
 /* ARGSUSED */
 int
-setdomainname(td, uap)
-	struct thread *td;
-	struct setdomainname_args *uap;
+freebsd4_setdomainname(struct thread *td,
+    struct freebsd4_setdomainname_args *uap)
 {
-	INIT_VPROCG(TD_TO_VPROCG(td));
-	char tmpdomainname[MAXHOSTNAMELEN];
-	int error, domainnamelen;
+	int name[2];
+	int error;
=20
-	error =3D priv_check(td, PRIV_SETDOMAINNAME);
-	if (error)
-		return (error);
-	if ((u_int)uap->len > sizeof(tmpdomainname) - 1)
-		return (EINVAL);
-	domainnamelen =3D uap->len;
-	error =3D copyin(uap->domainname, tmpdomainname, uap->len);
-	if (error =3D=3D 0) {
-		tmpdomainname[domainnamelen] =3D 0;
-		mtx_lock(&hostname_mtx);
-		bcopy(tmpdomainname, V_domainname, sizeof(V_domainname));
-		mtx_unlock(&hostname_mtx);
-	}
+	name[0] =3D CTL_KERN;
+	name[1] =3D KERN_NISDOMAINNAME;
+	mtx_lock(&Giant);
+	error =3D userland_sysctl(td, name, 2, 0, 0, 0, uap->domainname,
+	    uap->len, 0, 0);
+	mtx_unlock(&Giant);
 	return (error);
 }
+#endif /* COMPAT_FREEBSD4 */
Index: sys/kern/syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/kern/syscalls.c	(revision 184691)
+++ sys/kern/syscalls.c	(working copy)
@@ -169,9 +169,9 @@
 	"#159",			/* 159 =3D nosys */
 	"lgetfh",			/* 160 =3D lgetfh */
 	"getfh",			/* 161 =3D getfh */
-	"getdomainname",			/* 162 =3D getdomainname */
-	"setdomainname",			/* 163 =3D setdomainname */
-	"uname",			/* 164 =3D uname */
+	"compat4.getdomainname",		/* 162 =3D old getdomainname */
+	"compat4.setdomainname",		/* 163 =3D old setdomainname */
+	"compat4.uname",		/* 164 =3D old uname */
 	"sysarch",			/* 165 =3D sysarch */
 	"rtprio",			/* 166 =3D rtprio */
 	"#167",			/* 167 =3D nosys */
Index: sys/kern/syscalls.master
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/kern/syscalls.master	(revision 184691)
+++ sys/kern/syscalls.master	(working copy)
@@ -320,11 +320,11 @@
 				    struct fhandle *fhp); }
 161	AUE_NFS_GETFH	STD	{ int getfh(char *fname, \
 				    struct fhandle *fhp); }
-162	AUE_SYSCTL	STD	{ int getdomainname(char *domainname, \
+162	AUE_SYSCTL	COMPAT4	{ int getdomainname(char *domainname, \
 				    int len); }
-163	AUE_SYSCTL	STD	{ int setdomainname(char *domainname, \
+163	AUE_SYSCTL	COMPAT4	{ int setdomainname(char *domainname, \
 				    int len); }
-164	AUE_NULL	STD	{ int uname(struct utsname *name); }
+164	AUE_NULL	COMPAT4	{ int uname(struct utsname *name); }
 165	AUE_SYSARCH	STD	{ int sysarch(int op, char *parms); }
 166	AUE_RTPRIO	STD	{ int rtprio(int function, pid_t pid, \
 				    struct rtprio *rtp); }
Index: sys/kern/systrace_args.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/kern/systrace_args.c	(revision 184691)
+++ sys/kern/systrace_args.c	(working copy)
@@ -864,29 +864,6 @@
 		*n_args =3D 2;
 		break;
 	}
-	/* getdomainname */
-	case 162: {
-		struct getdomainname_args *p =3D params;
-		uarg[0] =3D (intptr_t) p->domainname; /* char * */
-		iarg[1] =3D p->len; /* int */
-		*n_args =3D 2;
-		break;
-	}
-	/* setdomainname */
-	case 163: {
-		struct setdomainname_args *p =3D params;
-		uarg[0] =3D (intptr_t) p->domainname; /* char * */
-		iarg[1] =3D p->len; /* int */
-		*n_args =3D 2;
-		break;
-	}
-	/* uname */
-	case 164: {
-		struct uname_args *p =3D params;
-		uarg[0] =3D (intptr_t) p->name; /* struct utsname * */
-		*n_args =3D 1;
-		break;
-	}
 	/* sysarch */
 	case 165: {
 		struct sysarch_args *p =3D params;
@@ -4441,42 +4418,6 @@
 			break;
 		};
 		break;
-	/* getdomainname */
-	case 162:
-		switch(ndx) {
-		case 0:
-			p =3D "char *";
-			break;
-		case 1:
-			p =3D "int";
-			break;
-		default:
-			break;
-		};
-		break;
-	/* setdomainname */
-	case 163:
-		switch(ndx) {
-		case 0:
-			p =3D "char *";
-			break;
-		case 1:
-			p =3D "int";
-			break;
-		default:
-			break;
-		};
-		break;
-	/* uname */
-	case 164:
-		switch(ndx) {
-		case 0:
-			p =3D "struct utsname *";
-			break;
-		default:
-			break;
-		};
-		break;
 	/* sysarch */
 	case 165:
 		switch(ndx) {
Index: sys/compat/freebsd32/freebsd32_syscall.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/compat/freebsd32/freebsd32_syscall.h	(revision 184691)
+++ sys/compat/freebsd32/freebsd32_syscall.h	(working copy)
@@ -156,9 +156,9 @@
 #define	FREEBSD32_SYS_freebsd4_freebsd32_statfs	157
 #define	FREEBSD32_SYS_freebsd4_freebsd32_fstatfs	158
 #define	FREEBSD32_SYS_getfh	161
-#define	FREEBSD32_SYS_getdomainname	162
-#define	FREEBSD32_SYS_setdomainname	163
-#define	FREEBSD32_SYS_uname	164
+				/* 162 is obsolete getdomainname */
+				/* 163 is obsolete setdomainname */
+				/* 164 is obsolete uname */
 #define	FREEBSD32_SYS_sysarch	165
 #define	FREEBSD32_SYS_rtprio	166
 #define	FREEBSD32_SYS_freebsd32_semsys	169
Index: sys/compat/freebsd32/freebsd32_sysent.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/compat/freebsd32/freebsd32_sysent.c	(revision 184691)
+++ sys/compat/freebsd32/freebsd32_sysent.c	(working copy)
@@ -200,9 +200,9 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 159 =3D nosys */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 160 =3D lgetfh */
 	{ AS(getfh_args), (sy_call_t *)getfh, AUE_NFS_GETFH, NULL, 0, 0 },	/* 161=
 =3D getfh */
-	{ AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 162 =3D getdomainname */
-	{ AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 163 =3D setdomainname */
-	{ AS(uname_args), (sy_call_t *)uname, AUE_NULL, NULL, 0, 0 },	/* 164 =3D =
uname */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 162 =3D obsolete ge=
tdomainname */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 163 =3D obsolete se=
tdomainname */
+	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 164 =3D obsolete un=
ame */
 	{ AS(sysarch_args), (sy_call_t *)sysarch, AUE_SYSARCH, NULL, 0, 0 },	/* 1=
65 =3D sysarch */
 	{ AS(rtprio_args), (sy_call_t *)rtprio, AUE_RTPRIO, NULL, 0, 0 },	/* 166 =
=3D rtprio */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 167 =3D nosys */
Index: sys/compat/freebsd32/syscalls.master
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/compat/freebsd32/syscalls.master	(revision 184691)
+++ sys/compat/freebsd32/syscalls.master	(working copy)
@@ -295,11 +295,9 @@
 160	AUE_LGETFH	UNIMPL	lgetfh
 161	AUE_NFS_GETFH	NOPROTO	{ int getfh(char *fname, \
 				    struct fhandle *fhp); }
-162	AUE_SYSCTL	NOPROTO	{ int getdomainname(char *domainname, \
-				    int len); }
-163	AUE_SYSCTL	NOPROTO	{ int setdomainname(char *domainname, \
-				    int len); }
-164	AUE_NULL	NOPROTO	{ int uname(struct utsname *name); }
+162	AUE_NULL	OBSOL	getdomainname
+163	AUE_NULL	OBSOL	setdomainname
+164	AUE_NULL	OBSOL	uname
 165	AUE_SYSARCH	NOPROTO	{ int sysarch(int op, char *parms); }
 166	AUE_RTPRIO	NOPROTO	{ int rtprio(int function, pid_t pid, \
 				    struct rtprio *rtp); }
Index: sys/compat/freebsd32/freebsd32_syscalls.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/compat/freebsd32/freebsd32_syscalls.c	(revision 184691)
+++ sys/compat/freebsd32/freebsd32_syscalls.c	(working copy)
@@ -169,9 +169,9 @@
 	"#159",			/* 159 =3D nosys */
 	"#160",			/* 160 =3D lgetfh */
 	"getfh",			/* 161 =3D getfh */
-	"getdomainname",			/* 162 =3D getdomainname */
-	"setdomainname",			/* 163 =3D setdomainname */
-	"uname",			/* 164 =3D uname */
+	"obs_getdomainname",			/* 162 =3D obsolete getdomainname */
+	"obs_setdomainname",			/* 163 =3D obsolete setdomainname */
+	"obs_uname",			/* 164 =3D obsolete uname */
 	"sysarch",			/* 165 =3D sysarch */
 	"rtprio",			/* 166 =3D rtprio */
 	"#167",			/* 167 =3D nosys */
Index: sys/compat/linux/linux_misc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/compat/linux/linux_misc.c	(revision 184691)
+++ sys/compat/linux/linux_misc.c	(working copy)
@@ -1682,6 +1682,7 @@
 linux_sethostname(struct thread *td, struct linux_sethostname_args *args)
 {
 	int name[2];
+	int error;
=20
 #ifdef DEBUG
 	if (ldebug(sethostname))
@@ -1690,11 +1691,34 @@
=20
 	name[0] =3D CTL_KERN;
 	name[1] =3D KERN_HOSTNAME;
-	return (userland_sysctl(td, name, 2, 0, 0, 0, args->hostname,
-	    args->len, 0, 0));
+	mtx_lock(&Giant);
+	error =3D userland_sysctl(td, name, 2, 0, 0, 0, args->hostname,
+	    args->len, 0, 0);
+	mtx_unlock(&Giant);
+	return (error);
 }
=20
 int
+linux_setdomainname(struct thread *td, struct linux_setdomainname_args *ar=
gs)
+{
+	int name[2];
+	int error;
+
+#ifdef DEBUG
+	if (ldebug(setdomainname))
+		printf(ARGS(setdomainname, "*, %i"), args->len);
+#endif
+
+	name[0] =3D CTL_KERN;
+	name[1] =3D KERN_NISDOMAINNAME;
+	mtx_lock(&Giant);
+	error =3D userland_sysctl(td, name, 2, 0, 0, 0, args->name,
+	    args->len, 0, 0);
+	mtx_unlock(&Giant);
+	return (error);
+}
+
+int
 linux_exit_group(struct thread *td, struct linux_exit_group_args *args)
 {
 	struct linux_emuldata *em, *td_em, *tmp_em;
Index: sys/i386/linux/linux_syscall.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/i386/linux/linux_syscall.h	(revision 184691)
+++ sys/i386/linux/linux_syscall.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.93 2008/05=
/13 20:01:27 rdivacky Exp=20
+ * created from FreeBSD: head/sys/i386/linux/syscalls.master 178976 2008-0=
5-13 20:01:27Z rdivacky=20
  */
=20
 #define	LINUX_SYS_exit	1
@@ -116,7 +116,7 @@
 #define	LINUX_SYS_fsync	118
 #define	LINUX_SYS_linux_sigreturn	119
 #define	LINUX_SYS_linux_clone	120
-#define	LINUX_SYS_setdomainname	121
+#define	LINUX_SYS_linux_setdomainname	121
 #define	LINUX_SYS_linux_newuname	122
 #define	LINUX_SYS_linux_modify_ldt	123
 #define	LINUX_SYS_linux_adjtimex	124
Index: sys/i386/linux/linux_sysent.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/i386/linux/linux_sysent.c	(revision 184691)
+++ sys/i386/linux/linux_sysent.c	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.93 2008/05=
/13 20:01:27 rdivacky Exp=20
+ * created from FreeBSD: head/sys/i386/linux/syscalls.master 178976 2008-0=
5-13 20:01:27Z rdivacky=20
  */
=20
 #include <sys/param.h>
@@ -139,7 +139,7 @@
 	{ AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0 },	/* 118 =3D=
 fsync */
 	{ AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn, AUE_SIGRETURN, =
NULL, 0, 0 },	/* 119 =3D linux_sigreturn */
 	{ AS(linux_clone_args), (sy_call_t *)linux_clone, AUE_RFORK, NULL, 0, 0 }=
,	/* 120 =3D linux_clone */
-	{ AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 121 =3D setdomainname */
+	{ AS(linux_setdomainname_args), (sy_call_t *)linux_setdomainname, AUE_SYS=
CTL, NULL, 0, 0 },	/* 121 =3D linux_setdomainname */
 	{ AS(linux_newuname_args), (sy_call_t *)linux_newuname, AUE_NULL, NULL, 0=
, 0 },	/* 122 =3D linux_newuname */
 	{ AS(linux_modify_ldt_args), (sy_call_t *)linux_modify_ldt, AUE_NULL, NUL=
L, 0, 0 },	/* 123 =3D linux_modify_ldt */
 	{ 0, (sy_call_t *)linux_adjtimex, AUE_ADJTIME, NULL, 0, 0 },	/* 124 =3D l=
inux_adjtimex */
Index: sys/i386/linux/syscalls.master
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/i386/linux/syscalls.master	(revision 184691)
+++ sys/i386/linux/syscalls.master	(working copy)
@@ -217,7 +217,7 @@
 ; linux uses some strange calling convention here so we have to use the du=
mmy arg
 120	AUE_RFORK	STD	{ int linux_clone(l_int flags, void *stack, \
 				    void *parent_tidptr, int dummy, void * child_tidptr); }
-121	AUE_SYSCTL	NOPROTO { int setdomainname(char *name, \
+121	AUE_SYSCTL	STD	{ int linux_setdomainname(char *name, \
 				    int len); }
 122	AUE_NULL	STD	{ int linux_newuname( \
 				    struct l_new_utsname *buf); }
Index: sys/i386/linux/linux_proto.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/i386/linux/linux_proto.h	(revision 184691)
+++ sys/i386/linux/linux_proto.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.93 2008/05=
/13 20:01:27 rdivacky Exp=20
+ * created from FreeBSD: head/sys/i386/linux/syscalls.master 178976 2008-0=
5-13 20:01:27Z rdivacky=20
  */
=20
 #ifndef _LINUX_SYSPROTO_H_
@@ -381,6 +381,10 @@
 	char dummy_l_[PADL_(int)]; int dummy; char dummy_r_[PADR_(int)];
 	char child_tidptr_l_[PADL_(void *)]; void * child_tidptr; char child_tidp=
tr_r_[PADR_(void *)];
 };
+struct linux_setdomainname_args {
+	char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)];
+	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
+};
 struct linux_newuname_args {
 	char buf_l_[PADL_(struct l_new_utsname *)]; struct l_new_utsname * buf; c=
har buf_r_[PADR_(struct l_new_utsname *)];
 };
@@ -1097,6 +1101,7 @@
 int	linux_ipc(struct thread *, struct linux_ipc_args *);
 int	linux_sigreturn(struct thread *, struct linux_sigreturn_args *);
 int	linux_clone(struct thread *, struct linux_clone_args *);
+int	linux_setdomainname(struct thread *, struct linux_setdomainname_args *=
);
 int	linux_newuname(struct thread *, struct linux_newuname_args *);
 int	linux_modify_ldt(struct thread *, struct linux_modify_ldt_args *);
 int	linux_adjtimex(struct thread *, struct linux_adjtimex_args *);
@@ -1360,6 +1365,7 @@
 #define	LINUX_SYS_AUE_linux_ipc	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sigreturn	AUE_SIGRETURN
 #define	LINUX_SYS_AUE_linux_clone	AUE_RFORK
+#define	LINUX_SYS_AUE_linux_setdomainname	AUE_SYSCTL
 #define	LINUX_SYS_AUE_linux_newuname	AUE_NULL
 #define	LINUX_SYS_AUE_linux_modify_ldt	AUE_NULL
 #define	LINUX_SYS_AUE_linux_adjtimex	AUE_ADJTIME
Index: sys/amd64/linux32/linux32_syscall.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/amd64/linux32/linux32_syscall.h	(revision 184691)
+++ sys/amd64/linux32/linux32_syscall.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008=
/05/13 20:01:26 rdivacky Exp=20
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 178976 200=
8-05-13 20:01:27Z rdivacky=20
  */
=20
 #define	LINUX_SYS_exit	1
@@ -112,7 +112,7 @@
 #define	LINUX_SYS_fsync	118
 #define	LINUX_SYS_linux_sigreturn	119
 #define	LINUX_SYS_linux_clone	120
-#define	LINUX_SYS_setdomainname	121
+#define	LINUX_SYS_linux_setdomainname	121
 #define	LINUX_SYS_linux_newuname	122
 #define	LINUX_SYS_linux_adjtimex	124
 #define	LINUX_SYS_linux_mprotect	125
Index: sys/amd64/linux32/syscalls.master
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/amd64/linux32/syscalls.master	(revision 184691)
+++ sys/amd64/linux32/syscalls.master	(working copy)
@@ -216,7 +216,7 @@
 ; linux uses some strange calling convention here so we have to use the du=
mmy arg
 120	AUE_RFORK	STD	{ int linux_clone(l_int flags, void *stack, \
 				    void *parent_tidptr, int dummy, void * child_tidptr); }
-121	AUE_SYSCTL	NOPROTO	{ int setdomainname(char *name, \
+121	AUE_SYSCTL	STD	{ int linux_setdomainname(char *name, \
 				    int len); }
 122	AUE_NULL	STD	{ int linux_newuname( \
 				    struct l_new_utsname *buf); }
Index: sys/amd64/linux32/linux32_sysent.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/amd64/linux32/linux32_sysent.c	(revision 184691)
+++ sys/amd64/linux32/linux32_sysent.c	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008=
/05/13 20:01:26 rdivacky Exp=20
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 178976 200=
8-05-13 20:01:27Z rdivacky=20
  */
=20
 #include "opt_compat.h"
@@ -140,7 +140,7 @@
 	{ AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0 },	/* 118 =3D=
 fsync */
 	{ AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn, AUE_SIGRETURN, =
NULL, 0, 0 },	/* 119 =3D linux_sigreturn */
 	{ AS(linux_clone_args), (sy_call_t *)linux_clone, AUE_RFORK, NULL, 0, 0 }=
,	/* 120 =3D linux_clone */
-	{ AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0=
, 0 },	/* 121 =3D setdomainname */
+	{ AS(linux_setdomainname_args), (sy_call_t *)linux_setdomainname, AUE_SYS=
CTL, NULL, 0, 0 },	/* 121 =3D linux_setdomainname */
 	{ AS(linux_newuname_args), (sy_call_t *)linux_newuname, AUE_NULL, NULL, 0=
, 0 },	/* 122 =3D linux_newuname */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 123 =3D modify_ldt =
*/
 	{ 0, (sy_call_t *)linux_adjtimex, AUE_ADJTIME, NULL, 0, 0 },	/* 124 =3D l=
inux_adjtimex */
Index: sys/amd64/linux32/linux32_proto.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/amd64/linux32/linux32_proto.h	(revision 184691)
+++ sys/amd64/linux32/linux32_proto.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008=
/05/13 20:01:26 rdivacky Exp=20
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 178976 200=
8-05-13 20:01:27Z rdivacky=20
  */
=20
 #ifndef _LINUX_SYSPROTO_H_
@@ -378,6 +378,10 @@
 	char dummy_l_[PADL_(int)]; int dummy; char dummy_r_[PADR_(int)];
 	char child_tidptr_l_[PADL_(void *)]; void * child_tidptr; char child_tidp=
tr_r_[PADR_(void *)];
 };
+struct linux_setdomainname_args {
+	char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)];
+	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
+};
 struct linux_newuname_args {
 	char buf_l_[PADL_(struct l_new_utsname *)]; struct l_new_utsname * buf; c=
har buf_r_[PADR_(struct l_new_utsname *)];
 };
@@ -1077,6 +1081,7 @@
 int	linux_ipc(struct thread *, struct linux_ipc_args *);
 int	linux_sigreturn(struct thread *, struct linux_sigreturn_args *);
 int	linux_clone(struct thread *, struct linux_clone_args *);
+int	linux_setdomainname(struct thread *, struct linux_setdomainname_args *=
);
 int	linux_newuname(struct thread *, struct linux_newuname_args *);
 int	linux_adjtimex(struct thread *, struct linux_adjtimex_args *);
 int	linux_mprotect(struct thread *, struct linux_mprotect_args *);
@@ -1339,6 +1344,7 @@
 #define	LINUX_SYS_AUE_linux_ipc	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sigreturn	AUE_SIGRETURN
 #define	LINUX_SYS_AUE_linux_clone	AUE_RFORK
+#define	LINUX_SYS_AUE_linux_setdomainname	AUE_SYSCTL
 #define	LINUX_SYS_AUE_linux_newuname	AUE_NULL
 #define	LINUX_SYS_AUE_linux_adjtimex	AUE_ADJTIME
 #define	LINUX_SYS_AUE_linux_mprotect	AUE_MPROTECT
Index: sys/sys/syscall.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/sys/syscall.h	(revision 184691)
+++ sys/sys/syscall.h	(working copy)
@@ -161,9 +161,9 @@
 #define	SYS_freebsd4_fstatfs	158
 #define	SYS_lgetfh	160
 #define	SYS_getfh	161
-#define	SYS_getdomainname	162
-#define	SYS_setdomainname	163
-#define	SYS_uname	164
+#define	SYS_freebsd4_getdomainname	162
+#define	SYS_freebsd4_setdomainname	163
+#define	SYS_freebsd4_uname	164
 #define	SYS_sysarch	165
 #define	SYS_rtprio	166
 #define	SYS_semsys	169
Index: sys/sys/syscall.mk
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/sys/syscall.mk	(revision 184691)
+++ sys/sys/syscall.mk	(working copy)
@@ -113,9 +113,9 @@
 	freebsd4_fstatfs.o \
 	lgetfh.o \
 	getfh.o \
-	getdomainname.o \
-	setdomainname.o \
-	uname.o \
+	freebsd4_getdomainname.o \
+	freebsd4_setdomainname.o \
+	freebsd4_uname.o \
 	sysarch.o \
 	rtprio.o \
 	semsys.o \
Index: sys/sys/sysproto.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/sys/sysproto.h	(revision 184691)
+++ sys/sys/sysproto.h	(working copy)
@@ -500,17 +500,6 @@
 	char fname_l_[PADL_(char *)]; char * fname; char fname_r_[PADR_(char *)];
 	char fhp_l_[PADL_(struct fhandle *)]; struct fhandle * fhp; char fhp_r_[P=
ADR_(struct fhandle *)];
 };
-struct getdomainname_args {
-	char domainname_l_[PADL_(char *)]; char * domainname; char domainname_r_[=
PADR_(char *)];
-	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
-};
-struct setdomainname_args {
-	char domainname_l_[PADL_(char *)]; char * domainname; char domainname_r_[=
PADR_(char *)];
-	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
-};
-struct uname_args {
-	char name_l_[PADL_(struct utsname *)]; struct utsname * name; char name_r=
_[PADR_(struct utsname *)];
-};
 struct sysarch_args {
 	char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)];
 	char parms_l_[PADL_(char *)]; char * parms; char parms_r_[PADR_(char *)];
@@ -1743,9 +1732,6 @@
 int	nfssvc(struct thread *, struct nfssvc_args *);
 int	lgetfh(struct thread *, struct lgetfh_args *);
 int	getfh(struct thread *, struct getfh_args *);
-int	getdomainname(struct thread *, struct getdomainname_args *);
-int	setdomainname(struct thread *, struct setdomainname_args *);
-int	uname(struct thread *, struct uname_args *);
 int	sysarch(struct thread *, struct sysarch_args *);
 int	rtprio(struct thread *, struct rtprio_args *);
 int	semsys(struct thread *, struct semsys_args *);
@@ -2181,6 +2167,17 @@
 	char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
 	char buf_l_[PADL_(struct ostatfs *)]; struct ostatfs * buf; char buf_r_[P=
ADR_(struct ostatfs *)];
 };
+struct freebsd4_getdomainname_args {
+	char domainname_l_[PADL_(char *)]; char * domainname; char domainname_r_[=
PADR_(char *)];
+	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
+};
+struct freebsd4_setdomainname_args {
+	char domainname_l_[PADL_(char *)]; char * domainname; char domainname_r_[=
PADR_(char *)];
+	char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
+};
+struct freebsd4_uname_args {
+	char name_l_[PADL_(struct utsname *)]; struct utsname * name; char name_r=
_[PADR_(struct utsname *)];
+};
 struct freebsd4_fhstatfs_args {
 	char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fh=
p; char u_fhp_r_[PADR_(const struct fhandle *)];
 	char buf_l_[PADL_(struct ostatfs *)]; struct ostatfs * buf; char buf_r_[P=
ADR_(struct ostatfs *)];
@@ -2205,6 +2202,9 @@
 int	freebsd4_getfsstat(struct thread *, struct freebsd4_getfsstat_args *);
 int	freebsd4_statfs(struct thread *, struct freebsd4_statfs_args *);
 int	freebsd4_fstatfs(struct thread *, struct freebsd4_fstatfs_args *);
+int	freebsd4_getdomainname(struct thread *, struct freebsd4_getdomainname_=
args *);
+int	freebsd4_setdomainname(struct thread *, struct freebsd4_setdomainname_=
args *);
+int	freebsd4_uname(struct thread *, struct freebsd4_uname_args *);
 int	freebsd4_fhstatfs(struct thread *, struct freebsd4_fhstatfs_args *);
 int	freebsd4_sendfile(struct thread *, struct freebsd4_sendfile_args *);
 int	freebsd4_sigaction(struct thread *, struct freebsd4_sigaction_args *);
@@ -2325,9 +2325,6 @@
 #define	SYS_AUE_nfssvc	AUE_NFS_SVC
 #define	SYS_AUE_lgetfh	AUE_LGETFH
 #define	SYS_AUE_getfh	AUE_NFS_GETFH
-#define	SYS_AUE_getdomainname	AUE_SYSCTL
-#define	SYS_AUE_setdomainname	AUE_SYSCTL
-#define	SYS_AUE_uname	AUE_NULL
 #define	SYS_AUE_sysarch	AUE_SYSARCH
 #define	SYS_AUE_rtprio	AUE_RTPRIO
 #define	SYS_AUE_semsys	AUE_SEMSYS
Index: sys/sys/priv.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/sys/priv.h	(revision 184691)
+++ sys/sys/priv.h	(working copy)
@@ -84,7 +84,6 @@
 #define	PRIV_CLOCK_SETTIME	17	/* Can call clock_settime. */
 #define	PRIV_SETTIMEOFDAY	18	/* Can call settimeofday. */
 #define	PRIV_SETHOSTID		19	/* Can call sethostid. */
-#define	PRIV_SETDOMAINNAME	20	/* Can call setdomainname. */
=20
 /*
  * Audit subsystem privileges.

--KbI68ipL6xvRMBYq--

--Aq4SrlNverAHn87R
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAkkUIoEACgkQ52SDGA2eCwX88ACggEVBj9DtkbCO+pfU/TD7VqBx
r+8AnRc0uR3ht5WZAg0kI1FtzOUrSN1W
=8Dka
-----END PGP SIGNATURE-----

--Aq4SrlNverAHn87R--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081107111201.GH1165>