1dad91dbeSmckusick /*
28f6f57faSbostic * Copyright (c) 1982, 1986, 1989, 1993
38f6f57faSbostic * The Regents of the University of California. All rights reserved.
4dad91dbeSmckusick *
56b5c0b13Sbostic * %sccs.include.redist.c%
686ab5a26Smckusick *
7*ab04d79bScgd * @(#)kern_xxx.c 8.3 (Berkeley) 02/14/95
8dad91dbeSmckusick */
9eb1e2619Ssam
106e23d7a0Sbostic #include <sys/param.h>
116e23d7a0Sbostic #include <sys/systm.h>
126e23d7a0Sbostic #include <sys/kernel.h>
136e23d7a0Sbostic #include <sys/proc.h>
146e23d7a0Sbostic #include <sys/reboot.h>
15f9b3adc0Smckusick #include <vm/vm.h>
16b88d1839Smckusick #include <sys/sysctl.h>
17eb1e2619Ssam
18*ab04d79bScgd #include <sys/mount.h>
19*ab04d79bScgd #include <sys/syscallargs.h>
20*ab04d79bScgd
21b88d1839Smckusick /* ARGSUSED */
22*ab04d79bScgd int
reboot(p,uap,retval)23b88d1839Smckusick reboot(p, uap, retval)
24b88d1839Smckusick struct proc *p;
25*ab04d79bScgd struct reboot_args /* {
26*ab04d79bScgd syscallarg(int) opt;
27*ab04d79bScgd } */ *uap;
28*ab04d79bScgd register_t *retval;
29b88d1839Smckusick {
30b88d1839Smckusick int error;
31b88d1839Smckusick
32b88d1839Smckusick if (error = suser(p->p_ucred, &p->p_acflag))
33b88d1839Smckusick return (error);
34*ab04d79bScgd boot(SCARG(uap, opt));
35b88d1839Smckusick return (0);
36b88d1839Smckusick }
37b88d1839Smckusick
38b3d2fa9aStorek #if defined(COMPAT_43) || defined(COMPAT_SUNOS)
39eb1e2619Ssam
40d1ec48c2Skarels /* ARGSUSED */
41*ab04d79bScgd int
compat_43_gethostname(p,uap,retval)42*ab04d79bScgd compat_43_gethostname(p, uap, retval)
43d1ec48c2Skarels struct proc *p;
44*ab04d79bScgd struct compat_43_gethostname_args /* {
45*ab04d79bScgd syscallarg(char *) hostname;
46*ab04d79bScgd syscallarg(u_int) len;
47*ab04d79bScgd } */ *uap;
48*ab04d79bScgd register_t *retval;
49d1ec48c2Skarels {
50b88d1839Smckusick int name;
51eb1e2619Ssam
52b88d1839Smckusick name = KERN_HOSTNAME;
53*ab04d79bScgd return (kern_sysctl(&name, 1, SCARG(uap, hostname), &SCARG(uap, len),
54*ab04d79bScgd 0, 0));
55eb1e2619Ssam }
56eb1e2619Ssam
57d1ec48c2Skarels /* ARGSUSED */
58*ab04d79bScgd int
compat_43_sethostname(p,uap,retval)59*ab04d79bScgd compat_43_sethostname(p, uap, retval)
60d1ec48c2Skarels struct proc *p;
61*ab04d79bScgd register struct compat_43_sethostname_args /* {
62*ab04d79bScgd syscallarg(char *) hostname;
63*ab04d79bScgd syscallarg(u_int) len;
64*ab04d79bScgd } */ *uap;
65*ab04d79bScgd register_t *retval;
66d1ec48c2Skarels {
67b88d1839Smckusick int name;
6862e43227Shibler int error;
69eb1e2619Ssam
7062e43227Shibler if (error = suser(p->p_ucred, &p->p_acflag))
7162e43227Shibler return (error);
72b88d1839Smckusick name = KERN_HOSTNAME;
73*ab04d79bScgd return (kern_sysctl(&name, 1, 0, 0, SCARG(uap, hostname),
74*ab04d79bScgd SCARG(uap, len)));
75eb1e2619Ssam }
76eb1e2619Ssam
77b3d2fa9aStorek /* ARGSUSED */
78*ab04d79bScgd int
compat_43_gethostid(p,uap,retval)79*ab04d79bScgd compat_43_gethostid(p, uap, retval)
80b3d2fa9aStorek struct proc *p;
81*ab04d79bScgd void *uap;
82*ab04d79bScgd register_t *retval;
83b3d2fa9aStorek {
84b3d2fa9aStorek
85*ab04d79bScgd *(int32_t *)retval = hostid;
86b3d2fa9aStorek return (0);
87b3d2fa9aStorek }
88b3d2fa9aStorek #endif /* COMPAT_43 || COMPAT_SUNOS */
89b3d2fa9aStorek
90b3d2fa9aStorek #ifdef COMPAT_43
91b3d2fa9aStorek /* ARGSUSED */
92*ab04d79bScgd int
compat_43_sethostid(p,uap,retval)93*ab04d79bScgd compat_43_sethostid(p, uap, retval)
94b3d2fa9aStorek struct proc *p;
95*ab04d79bScgd struct compat_43_sethostid_args /* {
96*ab04d79bScgd syscallarg(int32_t) hostid;
97*ab04d79bScgd } */ *uap;
98*ab04d79bScgd register_t *retval;
99b3d2fa9aStorek {
100b3d2fa9aStorek int error;
101b3d2fa9aStorek
102b3d2fa9aStorek if (error = suser(p->p_ucred, &p->p_acflag))
103b3d2fa9aStorek return (error);
104*ab04d79bScgd hostid = SCARG(uap, hostid);
105b3d2fa9aStorek return (0);
106b3d2fa9aStorek }
107b3d2fa9aStorek
108*ab04d79bScgd int
compat_43_quota(p,uap,retval)109*ab04d79bScgd compat_43_quota(p, uap, retval)
110*ab04d79bScgd struct proc *p;
111*ab04d79bScgd void *uap;
112*ab04d79bScgd register_t *retval;
1133dada9edSmarc {
114472e6918Smckusick
115beaa65adSkarels return (ENOSYS);
1163dada9edSmarc }
117b88d1839Smckusick #endif /* COMPAT_43 */
118