/* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)kern_xxx.c 7.3 (Berkeley) 08/27/88 */ #include "param.h" #include "systm.h" #include "dir.h" #include "user.h" #include "kernel.h" #include "proc.h" #include "reboot.h" gethostid() { u.u_r.r_val1 = hostid; } sethostid() { struct a { long hostid; } *uap = (struct a *)u.u_ap; if (suser()) hostid = uap->hostid; } gethostname() { register struct a { char *hostname; u_int len; } *uap = (struct a *)u.u_ap; register u_int len; len = uap->len; if (len > hostnamelen + 1) len = hostnamelen + 1; u.u_error = copyout((caddr_t)hostname, (caddr_t)uap->hostname, len); } sethostname() { register struct a { char *hostname; u_int len; } *uap = (struct a *)u.u_ap; if (!suser()) return; if (uap->len > sizeof (hostname) - 1) { u.u_error = EINVAL; return; } hostnamelen = uap->len; u.u_error = copyin((caddr_t)uap->hostname, hostname, uap->len); hostname[hostnamelen] = 0; } reboot() { register struct a { int opt; }; if (suser()) boot(((struct a *)u.u_ap)->opt); }