/* * Copyright (c) 1982, 1986, 1989 Regents of the University of California. * All rights reserved. * * Redistribution is only permitted until one year after the first shipment * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and * binary forms are permitted provided that: (1) source distributions retain * this entire copyright notice and comment, and (2) distributions including * binaries display the following acknowledgement: This product includes * software developed by the University of California, Berkeley and its * contributors'' in the documentation or other materials provided with the * distribution and in all advertising materials mentioning features or use * of this software. Neither the name of the University nor the names of * its contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * @(#)kern_xxx.c 7.14 (Berkeley) 6/28/90 */ #include "param.h" #include "systm.h" #include "user.h" #include "kernel.h" #include "proc.h" #include "reboot.h" /* ARGSUSED */ gethostid(p, uap, retval) struct proc *p; void *uap; long *retval; { *retval = hostid; return (0); } sethostid(p, uap, retval) struct proc *p; struct args { long hostid; } *uap; int *retval; { int error; if (error = suser(u.u_cred, &u.u_acflag)) return (error); hostid = uap->hostid; return (0); } /* ARGSUSED */ gethostname(p, uap, retval) struct proc *p; struct args { char *hostname; u_int len; } *uap; int *retval; { if (uap->len > hostnamelen + 1) uap->len = hostnamelen + 1; return (copyout((caddr_t)hostname, (caddr_t)uap->hostname, uap->len)); } /* ARGSUSED */ sethostname(p, uap, retval) struct proc *p; register struct args { char *hostname; u_int len; } *uap; int *retval; { int error; if (error = suser(u.u_cred, &u.u_acflag)) return (error); if (uap->len > sizeof (hostname) - 1) return (EINVAL); hostnamelen = uap->len; error = copyin((caddr_t)uap->hostname, hostname, uap->len); hostname[hostnamelen] = 0; return (error); } /* ARGSUSED */ reboot(p, uap, retval) struct proc *p; struct args { int opt; } *uap; int *retval; { int error; if (error = suser(u.u_cred, &u.u_acflag)) return (error); boot(uap->opt); return (0); } ovhangup() { return (EINVAL); } oldquota() { return (EINVAL); }