Deleted Added
full compact
kern_xxx.c (183550) kern_xxx.c (184789)
1/*-
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)kern_xxx.c 8.2 (Berkeley) 11/14/93
30 */
31
32#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)kern_xxx.c 8.2 (Berkeley) 11/14/93
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/kern/kern_xxx.c 183550 2008-10-02 15:37:58Z zec $");
33__FBSDID("$FreeBSD: head/sys/kern/kern_xxx.c 184789 2008-11-09 10:45:13Z ed $");
34
35#include "opt_compat.h"
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/sysproto.h>
40#include <sys/kernel.h>
41#include <sys/priv.h>

--- 101 unchanged lines hidden (view full) ---

143 struct thread *td;
144 struct oquota_args *uap;
145{
146
147 return (ENOSYS);
148}
149#endif /* COMPAT_43 */
150
34
35#include "opt_compat.h"
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/sysproto.h>
40#include <sys/kernel.h>
41#include <sys/priv.h>

--- 101 unchanged lines hidden (view full) ---

143 struct thread *td;
144 struct oquota_args *uap;
145{
146
147 return (ENOSYS);
148}
149#endif /* COMPAT_43 */
150
151#ifdef COMPAT_FREEBSD4
151/*
152/*
152 * This is the FreeBSD-1.1 compatable uname(2) interface. These days it is
153 * This is the FreeBSD-1.1 compatible uname(2) interface. These days it is
153 * done in libc as a wrapper around a bunch of sysctl's. This must maintain
154 * the old 1.1 binary ABI.
155 */
156#if SYS_NMLN != 32
157#error "FreeBSD-1.1 uname syscall has been broken"
158#endif
159#ifndef _SYS_SYSPROTO_H_
160struct uname_args {
161 struct utsname *name;
162};
163#endif
164/* ARGSUSED */
165int
154 * done in libc as a wrapper around a bunch of sysctl's. This must maintain
155 * the old 1.1 binary ABI.
156 */
157#if SYS_NMLN != 32
158#error "FreeBSD-1.1 uname syscall has been broken"
159#endif
160#ifndef _SYS_SYSPROTO_H_
161struct uname_args {
162 struct utsname *name;
163};
164#endif
165/* ARGSUSED */
166int
166uname(td, uap)
167 struct thread *td;
168 struct uname_args *uap;
167freebsd4_uname(struct thread *td, struct freebsd4_uname_args *uap)
169{
170 int name[2], error;
171 size_t len;
172 char *s, *us;
173
174 name[0] = CTL_KERN;
175 name[1] = KERN_OSTYPE;
176 len = sizeof (uap->name->sysname);

--- 60 unchanged lines hidden (view full) ---

237#ifndef _SYS_SYSPROTO_H_
238struct getdomainname_args {
239 char *domainname;
240 int len;
241};
242#endif
243/* ARGSUSED */
244int
168{
169 int name[2], error;
170 size_t len;
171 char *s, *us;
172
173 name[0] = CTL_KERN;
174 name[1] = KERN_OSTYPE;
175 len = sizeof (uap->name->sysname);

--- 60 unchanged lines hidden (view full) ---

236#ifndef _SYS_SYSPROTO_H_
237struct getdomainname_args {
238 char *domainname;
239 int len;
240};
241#endif
242/* ARGSUSED */
243int
245getdomainname(td, uap)
246 struct thread *td;
247 struct getdomainname_args *uap;
244freebsd4_getdomainname(struct thread *td,
245 struct freebsd4_getdomainname_args *uap)
248{
246{
249 INIT_VPROCG(TD_TO_VPROCG(td));
250 char tmpdomainname[MAXHOSTNAMELEN];
251 int domainnamelen;
247 int name[2];
248 int error;
249 size_t len = uap->len;
252
250
253 mtx_lock(&hostname_mtx);
254 bcopy(V_domainname, tmpdomainname, sizeof(tmpdomainname));
255 mtx_unlock(&hostname_mtx);
256
257 domainnamelen = strlen(tmpdomainname) + 1;
258 if ((u_int)uap->len > domainnamelen)
259 uap->len = domainnamelen;
260 return (copyout(tmpdomainname, uap->domainname, uap->len));
251 name[0] = CTL_KERN;
252 name[1] = KERN_NISDOMAINNAME;
253 mtx_lock(&Giant);
254 error = userland_sysctl(td, name, 2, uap->domainname, &len,
255 1, 0, 0, 0, 0);
256 mtx_unlock(&Giant);
257 return(error);
261}
262
263#ifndef _SYS_SYSPROTO_H_
264struct setdomainname_args {
265 char *domainname;
266 int len;
267};
268#endif
269/* ARGSUSED */
270int
258}
259
260#ifndef _SYS_SYSPROTO_H_
261struct setdomainname_args {
262 char *domainname;
263 int len;
264};
265#endif
266/* ARGSUSED */
267int
271setdomainname(td, uap)
272 struct thread *td;
273 struct setdomainname_args *uap;
268freebsd4_setdomainname(struct thread *td,
269 struct freebsd4_setdomainname_args *uap)
274{
270{
275 INIT_VPROCG(TD_TO_VPROCG(td));
276 char tmpdomainname[MAXHOSTNAMELEN];
277 int error, domainnamelen;
271 int name[2];
272 int error;
278
273
279 error = priv_check(td, PRIV_SETDOMAINNAME);
280 if (error)
281 return (error);
282 if ((u_int)uap->len > sizeof(tmpdomainname) - 1)
283 return (EINVAL);
284 domainnamelen = uap->len;
285 error = copyin(uap->domainname, tmpdomainname, uap->len);
286 if (error == 0) {
287 tmpdomainname[domainnamelen] = 0;
288 mtx_lock(&hostname_mtx);
289 bcopy(tmpdomainname, V_domainname, sizeof(V_domainname));
290 mtx_unlock(&hostname_mtx);
291 }
274 name[0] = CTL_KERN;
275 name[1] = KERN_NISDOMAINNAME;
276 mtx_lock(&Giant);
277 error = userland_sysctl(td, name, 2, 0, 0, 0, uap->domainname,
278 uap->len, 0, 0);
279 mtx_unlock(&Giant);
292 return (error);
293}
280 return (error);
281}
282#endif /* COMPAT_FREEBSD4 */