Date: Mon, 19 Mar 2012 21:57:32 +0000 (UTC) From: Tijl Coosemans <tijl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r233209 - in head/sys: amd64/include i386/include pc98/include x86/include Message-ID: <201203192157.q2JLvWUB088100@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tijl Date: Mon Mar 19 21:57:31 2012 New Revision: 233209 URL: http://svn.freebsd.org/changeset/base/233209 Log: Copy amd64 sysarch.h to x86 and merge with i386 sysarch.h. Replace amd64/i386/pc98 sysarch.h with stubs. Added: head/sys/x86/include/sysarch.h - copied, changed from r233203, head/sys/amd64/include/sysarch.h Modified: head/sys/amd64/include/sysarch.h head/sys/i386/include/sysarch.h head/sys/pc98/include/sysarch.h Modified: head/sys/amd64/include/sysarch.h ============================================================================== --- head/sys/amd64/include/sysarch.h Mon Mar 19 21:47:50 2012 (r233208) +++ head/sys/amd64/include/sysarch.h Mon Mar 19 21:57:31 2012 (r233209) @@ -1,103 +1,6 @@ /*- - * Copyright (c) 1993 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. 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 BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -/* - * Architecture specific syscalls (AMD64) - */ -#ifndef _MACHINE_SYSARCH_H_ -#define _MACHINE_SYSARCH_H_ - -#include <sys/cdefs.h> - -#define I386_GET_LDT 0 -#define I386_SET_LDT 1 -#define LDT_AUTO_ALLOC 0xffffffff - /* I386_IOPL */ -#define I386_GET_IOPERM 3 -#define I386_SET_IOPERM 4 - -/* XXX Not implementable #define I386_VM86 6 */ - -#define I386_GET_FSBASE 7 -#define I386_SET_FSBASE 8 -#define I386_GET_GSBASE 9 -#define I386_SET_GSBASE 10 -#define I386_GET_XFPUSTATE 11 - -/* Leave space for 0-127 for to avoid translating syscalls */ -#define AMD64_GET_FSBASE 128 -#define AMD64_SET_FSBASE 129 -#define AMD64_GET_GSBASE 130 -#define AMD64_SET_GSBASE 131 -#define AMD64_GET_XFPUSTATE 132 - -struct i386_ldt_args { - unsigned int start; - struct user_segment_descriptor *descs __packed; - unsigned int num; -}; - -struct i386_ioperm_args { - unsigned int start; - unsigned int length; - int enable; -}; - -struct i386_get_xfpustate { - unsigned int addr; - int len; -}; - -struct amd64_get_xfpustate { - void *addr; - int len; -}; - -#ifndef _KERNEL -__BEGIN_DECLS -int amd64_get_fsbase(void **); -int amd64_get_gsbase(void **); -int amd64_set_fsbase(void *); -int amd64_set_gsbase(void *); -int sysarch(int, void *); -__END_DECLS -#else -struct thread; -union descriptor; - -int amd64_get_ldt(struct thread *, struct i386_ldt_args *); -int amd64_set_ldt(struct thread *, struct i386_ldt_args *, - struct user_segment_descriptor *); -int amd64_get_ioperm(struct thread *, struct i386_ioperm_args *); -int amd64_set_ioperm(struct thread *, struct i386_ioperm_args *); -#endif - -#endif /* !_MACHINE_SYSARCH_H_ */ +#include <x86/sysarch.h> Modified: head/sys/i386/include/sysarch.h ============================================================================== --- head/sys/i386/include/sysarch.h Mon Mar 19 21:47:50 2012 (r233208) +++ head/sys/i386/include/sysarch.h Mon Mar 19 21:57:31 2012 (r233209) @@ -1,104 +1,6 @@ /*- - * Copyright (c) 1993 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. 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 BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -/* - * Architecture specific syscalls (i386) - */ -#ifndef _MACHINE_SYSARCH_H_ -#define _MACHINE_SYSARCH_H_ - -#define I386_GET_LDT 0 -#define I386_SET_LDT 1 -#define LDT_AUTO_ALLOC 0xffffffff - /* I386_IOPL */ -#define I386_GET_IOPERM 3 -#define I386_SET_IOPERM 4 - /* xxxxx */ -#define I386_VM86 6 -#define I386_GET_FSBASE 7 -#define I386_SET_FSBASE 8 -#define I386_GET_GSBASE 9 -#define I386_SET_GSBASE 10 -#define I386_GET_XFPUSTATE 11 - -struct i386_ldt_args { - unsigned int start; - union descriptor *descs; - unsigned int num; -}; - -struct i386_ioperm_args { - unsigned int start; - unsigned int length; - int enable; -}; - -struct i386_vm86_args { - int sub_op; /* sub-operation to perform */ - char *sub_args; /* args */ -}; - -struct i386_get_xfpustate { - void *addr; - int len; -}; - -#ifndef _KERNEL -#include <sys/cdefs.h> - -union descriptor; -struct dbreg; - -__BEGIN_DECLS -int i386_get_ldt(int, union descriptor *, int); -int i386_set_ldt(int, union descriptor *, int); -int i386_get_ioperm(unsigned int, unsigned int *, int *); -int i386_set_ioperm(unsigned int, unsigned int, int); -int i386_vm86(int, void *); -int i386_get_fsbase(void **); -int i386_get_gsbase(void **); -int i386_set_fsbase(void *); -int i386_set_gsbase(void *); -int i386_set_watch(int, unsigned int, int, int, struct dbreg *); -int i386_clr_watch(int, struct dbreg *); -int sysarch(int, void *); -__END_DECLS -#else -struct thread; -union descriptor; - -int i386_get_ldt(struct thread *, struct i386_ldt_args *); -int i386_set_ldt(struct thread *, struct i386_ldt_args *, union descriptor *); -int i386_get_ioperm(struct thread *, struct i386_ioperm_args *); -int i386_set_ioperm(struct thread *, struct i386_ioperm_args *); -#endif - -#endif /* !_MACHINE_SYSARCH_H_ */ +#include <x86/sysarch.h> Modified: head/sys/pc98/include/sysarch.h ============================================================================== --- head/sys/pc98/include/sysarch.h Mon Mar 19 21:47:50 2012 (r233208) +++ head/sys/pc98/include/sysarch.h Mon Mar 19 21:57:31 2012 (r233209) @@ -3,4 +3,4 @@ */ /* $FreeBSD$ */ -#include <i386/sysarch.h> +#include <x86/sysarch.h> Copied and modified: head/sys/x86/include/sysarch.h (from r233203, head/sys/amd64/include/sysarch.h) ============================================================================== --- head/sys/amd64/include/sysarch.h Mon Mar 19 21:24:50 2012 (r233203, copy source) +++ head/sys/x86/include/sysarch.h Mon Mar 19 21:57:31 2012 (r233209) @@ -30,7 +30,7 @@ */ /* - * Architecture specific syscalls (AMD64) + * Architecture specific syscalls (X86) */ #ifndef _MACHINE_SYSARCH_H_ #define _MACHINE_SYSARCH_H_ @@ -43,9 +43,8 @@ /* I386_IOPL */ #define I386_GET_IOPERM 3 #define I386_SET_IOPERM 4 - -/* XXX Not implementable #define I386_VM86 6 */ - + /* xxxxx */ +#define I386_VM86 6 /* XXX Not implementable on amd64 */ #define I386_GET_FSBASE 7 #define I386_SET_FSBASE 8 #define I386_GET_GSBASE 9 @@ -59,16 +58,33 @@ #define AMD64_SET_GSBASE 131 #define AMD64_GET_XFPUSTATE 132 +struct i386_ioperm_args { + unsigned int start; + unsigned int length; + int enable; +}; + +#ifdef __i386__ struct i386_ldt_args { unsigned int start; - struct user_segment_descriptor *descs __packed; + union descriptor *descs; unsigned int num; }; -struct i386_ioperm_args { +struct i386_vm86_args { + int sub_op; /* sub-operation to perform */ + char *sub_args; /* args */ +}; + +struct i386_get_xfpustate { + void *addr; + int len; +}; +#else +struct i386_ldt_args { unsigned int start; - unsigned int length; - int enable; + struct user_segment_descriptor *descs __packed; + unsigned int num; }; struct i386_get_xfpustate { @@ -80,9 +96,24 @@ struct amd64_get_xfpustate { void *addr; int len; }; +#endif #ifndef _KERNEL +union descriptor; +struct dbreg; + __BEGIN_DECLS +int i386_get_ldt(int, union descriptor *, int); +int i386_set_ldt(int, union descriptor *, int); +int i386_get_ioperm(unsigned int, unsigned int *, int *); +int i386_set_ioperm(unsigned int, unsigned int, int); +int i386_vm86(int, void *); +int i386_get_fsbase(void **); +int i386_get_gsbase(void **); +int i386_set_fsbase(void *); +int i386_set_gsbase(void *); +int i386_set_watch(int, unsigned int, int, int, struct dbreg *); +int i386_clr_watch(int, struct dbreg *); int amd64_get_fsbase(void **); int amd64_get_gsbase(void **); int amd64_set_fsbase(void *); @@ -93,6 +124,10 @@ __END_DECLS struct thread; union descriptor; +int i386_get_ldt(struct thread *, struct i386_ldt_args *); +int i386_set_ldt(struct thread *, struct i386_ldt_args *, union descriptor *); +int i386_get_ioperm(struct thread *, struct i386_ioperm_args *); +int i386_set_ioperm(struct thread *, struct i386_ioperm_args *); int amd64_get_ldt(struct thread *, struct i386_ldt_args *); int amd64_set_ldt(struct thread *, struct i386_ldt_args *, struct user_segment_descriptor *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203192157.q2JLvWUB088100>