xref: /original-bsd/sys/kern/kern_xxx.c (revision ab04d79b)
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