diff options
author | phk <phk@FreeBSD.org> | 1995-11-09 20:22:12 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1995-11-09 20:22:12 +0000 |
commit | 1eeb24475eddba5b40adce284c823310245f1ee1 (patch) | |
tree | 8cc01d787701e787d6789ad2ed71e49be177620c /sys/kern/kern_xxx.c | |
parent | 32a0e55b55e12b1f404de18c6aefc03d706d7e28 (diff) | |
download | FreeBSD-src-1eeb24475eddba5b40adce284c823310245f1ee1.zip FreeBSD-src-1eeb24475eddba5b40adce284c823310245f1ee1.tar.gz |
Make the old compat functions use the sysctl front door, rather than
crashing through the walls.
This should save Peters blood pressure and netscapes uname call.
Diffstat (limited to 'sys/kern/kern_xxx.c')
-rw-r--r-- | sys/kern/kern_xxx.c | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/sys/kern/kern_xxx.c b/sys/kern/kern_xxx.c index b83ab62..83d8d5a 100644 --- a/sys/kern/kern_xxx.c +++ b/sys/kern/kern_xxx.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)kern_xxx.c 8.2 (Berkeley) 11/14/93 - * $Id: kern_xxx.c,v 1.13 1995/08/20 04:42:25 davidg Exp $ + * $Id: kern_xxx.c,v 1.14 1995/09/06 15:23:20 nate Exp $ */ #include <sys/param.h> @@ -94,10 +94,12 @@ ogethostname(p, uap, retval) struct gethostname_args *uap; int *retval; { - int name; + int name[2]; - name = KERN_HOSTNAME; - return (kern_sysctl(&name, 1, uap->hostname, &uap->len, 0, 0, p)); + name[0] = CTL_KERN; + name[1] = KERN_HOSTNAME; + return (userland_sysctl(p, name, 2, uap->hostname, &uap->len, + 1, 0, 0, 0)); } struct sethostname_args { @@ -111,13 +113,15 @@ osethostname(p, uap, retval) register struct sethostname_args *uap; int *retval; { - int name; + int name[2]; int error; + name[0] = CTL_KERN; + name[1] = KERN_HOSTNAME; if ((error = suser(p->p_ucred, &p->p_acflag))) return (error); - name = KERN_HOSTNAME; - return (kern_sysctl(&name, 1, 0, 0, uap->hostname, uap->len, p)); + return (userland_sysctl(p, name, 2, 0, 0, 0, + uap->hostname, uap->len, 0)); } struct gethostid_args { @@ -188,33 +192,36 @@ uname(p, uap, retval) struct uname_args *uap; int *retval; { - int name; - int len; - int rtval; + int name[2], len, rtval, junk; char *s, *us; - name = KERN_OSTYPE; + name[0] = CTL_KERN; + name[1] = KERN_OSTYPE; len = sizeof uap->name->sysname; - rtval = kern_sysctl(&name, 1, uap->name->sysname, &len, 0, 0, p); + rtval = userland_sysctl(p, name, 2, uap->name->sysname, &len, + 1, 0, 0, 0); if( rtval) return rtval; subyte( uap->name->sysname + sizeof(uap->name->sysname) - 1, 0); - name = KERN_HOSTNAME; + name[1] = KERN_HOSTNAME; len = sizeof uap->name->nodename; - rtval = kern_sysctl(&name, 1, uap->name->nodename, &len, 0, 0, p); + rtval = userland_sysctl(p, name, 2, uap->name->nodename, &len, + 1, 0, 0, 0); if( rtval) return rtval; subyte( uap->name->nodename + sizeof(uap->name->nodename) - 1, 0); - name = KERN_OSRELEASE; + name[1] = KERN_OSRELEASE; len = sizeof uap->name->release; - rtval = kern_sysctl(&name, 1, uap->name->release, &len, 0, 0, p); + rtval = userland_sysctl(p, name, 2, uap->name->release, &len, + 1, 0, 0, 0); if( rtval) return rtval; subyte( uap->name->release + sizeof(uap->name->release) - 1, 0); /* name = KERN_VERSION; len = sizeof uap->name->version; - rtval = kern_sysctl(&name, 1, uap->name->version, &len, 0, 0, p); + rtval = userland_sysctl(p, name, 2, uap->name->version, &len, + 1, 0, 0, 0); if( rtval) return rtval; subyte( uap->name->version + sizeof(uap->name->version) - 1, 0); */ @@ -233,9 +240,10 @@ uname(p, uap, retval) if( rtval) return rtval; - name = HW_MACHINE; + name[1] = HW_MACHINE; len = sizeof uap->name->machine; - rtval = hw_sysctl(&name, 1, uap->name->machine, &len, 0, 0, p); + rtval = userland_sysctl(p, name, 2, uap->name->machine, &len, + 1, 0, 0, 0); if( rtval) return rtval; subyte( uap->name->machine + sizeof(uap->name->machine) - 1, 0); |