diff options
author | Peter Hessler <phessler@cvs.openbsd.org> | 2008-06-09 23:15:48 +0000 |
---|---|---|
committer | Peter Hessler <phessler@cvs.openbsd.org> | 2008-06-09 23:15:48 +0000 |
commit | 232a3236a9e9580183131592af7460e45ae79e3d (patch) | |
tree | 0d4b04f507a836e6e9acac5c228543516343369d | |
parent | 83662fb96f65566b6b294030fd71876b664cfd38 (diff) |
Remove an arch-specific API that wasn't available in the first place, and
will be converted to a more generic one soon.
ok deraadt, oga
-rw-r--r-- | lib/libarch/amd64/Makefile | 10 | ||||
-rw-r--r-- | lib/libarch/amd64/amd64_get_mtrr.2 | 166 | ||||
-rw-r--r-- | lib/libarch/amd64/amd64_get_mtrr.c | 33 | ||||
-rw-r--r-- | lib/libarch/amd64/amd64_set_mtrr.c | 32 |
4 files changed, 4 insertions, 237 deletions
diff --git a/lib/libarch/amd64/Makefile b/lib/libarch/amd64/Makefile index 53cc79a3095..4ff020968f1 100644 --- a/lib/libarch/amd64/Makefile +++ b/lib/libarch/amd64/Makefile @@ -1,16 +1,14 @@ -# $OpenBSD: Makefile,v 1.6 2008/05/23 15:38:34 jasper Exp $ +# $OpenBSD: Makefile,v 1.7 2008/06/09 23:15:47 phessler Exp $ # $NetBSD: Makefile,v 1.1 1996/02/21 02:45:47 jtk Exp $ MANSUBDIR=amd64 -MAN+= amd64_iopl.2 amd64_get_ioperm.2 amd64_get_mtrr.2 -MLINKS+=amd64_get_ioperm.2 amd64_set_ioperm.2 \ - amd64_get_mtrr.2 amd64_set_mtrr.2 +MAN+= amd64_iopl.2 amd64_get_ioperm.2 +MLINKS+=amd64_get_ioperm.2 amd64_set_ioperm.2 .if ${MACHINE_ARCH} == "amd64" .PATH: ${LIBC}/amd64 NOPIC= -SRCS+= amd64_iopl.c amd64_get_ioperm.c \ - amd64_set_ioperm.c amd64_set_mtrr.c amd64_get_mtrr.c +SRCS+= amd64_iopl.c amd64_get_ioperm.c amd64_set_ioperm.c .include <bsd.lib.mk> .else NOPROG= diff --git a/lib/libarch/amd64/amd64_get_mtrr.2 b/lib/libarch/amd64/amd64_get_mtrr.2 deleted file mode 100644 index 57ca8e4e0f3..00000000000 --- a/lib/libarch/amd64/amd64_get_mtrr.2 +++ /dev/null @@ -1,166 +0,0 @@ -.\" $NetBSD: amd64_get_mtrr.2,v 1.6 2002/02/20 20:40:48 gmcgarry Exp $ -.\" -.\" Copyright (c) 2001 The NetBSD Foundation, Inc. -.\" All rights reserved. -.\" -.\" This code is derived from software contributed to The NetBSD Foundation -.\" by Gregory McGarry. -.\" -.\" 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. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the NetBSD -.\" Foundation, Inc. and its contributors. -.\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. -.\" -.Dd $Mdocdate: May 31 2007 $ -.Dt AMD64_GET_MTRR 3 amd64 -.Os -.Sh NAME -.Nm amd64_get_mtrr , -.Nm amd64_set_mtrr -.Nd access Memory Type Range Registers -.Sh SYNOPSIS -.Fd #include \*[Lt]sys/types.h\*[Gt] -.Fd #include \*[Lt]machine/sysarch.h\*[Gt] -.Fd #include \*[Lt]machine/mtrr.h\*[Gt] -.Ft int -.Fn amd64_get_mtrr "struct mtrr *mtrrp" "int *n" -.Ft int -.Fn amd64_set_mtrr "struct mtrr *mtrrp" "int *n" -.Sh DESCRIPTION -These functions provide an interface to the MTRR registers found on -686-class processors for controlling processor access to memory ranges. -This is most useful for accessing devices such as video accelerators -on -.Xr pci 4 -and -.Xr agp 4 -buses. -For example, enabling write-combining allows bus-write transfers -to be combined into a larger transfer before bursting over the bus. -This can increase performance of write operations 2.5 times or more. -.Pp -.Fa mtrrp -is a pointer to one or more mtrr structures, as described below. -The -.Fa n -argument is a pointer to an integer containing the number of structures -pointed to by -.Fa mtrrp . -For -.Fn amd64_set_mtrr -the integer pointed to by -.Fa n -will be updated to reflect the actual number of MTRRs successfully set. -For -.Fn amd64_get_mtrr -no more than -.Fa n -structures will be copied out, and the integer value pointed to by -.Fa n -will be updated to reflect the actual number of valid structures -retrieved. -A NULL argument to -.Fa mtrrp -will result in just the number of MTRRs available being returned -in the integer pointed to by -.Fa n . -.Pp -The argument -.Fa mtrrp -has the following structure: -.Bd -literal -struct mtrr { - uint64_t base; - uint64_t len; - uint8_t type; - int flags; - pid_t owner; -}; -.Ed -.Pp -The location of the mapping is described by its physical base address -.Em base -and length -.Em len . -Valid values for -.Em type -are: -.Pp -.Bl -tag -offset indent -width MTRR_TYPE_UNDEF1 -compact -.It MTRR_TYPE_UC -uncached memory -.It MTRR_TYPE_WC -use write-combining -.It MTRR_TYPE_WT -use write-through caching -.It MTRR_TYPE_WP -write-protected memory -.It MTRR_TYPE_WB -use write-back caching -.El -.Pp -Valid values for -.Em flags -are: -.Pp -.Bl -tag -offset indent -width MTRR_PRIVATE -compact -.It MTRR_PRIVATE -own range, reset the MTRR when the current process exits -.It MTRR_FIXED -use fixed range MTRR -.It MTRR_VALID -entry is valid -.El -.Pp -The -.Em owner -member is the PID of the user process which claims the mapping. -It is only valid if MTRR_PRIVATE is set in -.Em flags . -To clear/reset MTRRs, use a -.Em flags -field without MTRR_VALID set. -.Sh RETURN VALUES -Upon successful completion zero is returned, otherwise \-1 is returned -on failure, and the global variable -.Va errno -is set to indicate the error. -The integer value pointed to by -.Fa n -will contain the number of successfully processed mtrr structures -in both cases. -.Sh ERRORS -.Bl -tag -width [EINVAL] -.It Bq Er ENOSYS -The currently running kernel or CPU has no MTRR support. -.It Bq Er EINVAL -The currently running kernel has no MTRR support, or one of the mtrr -structures pointed to by -.Fa mtrrp -is invalid. -.It Bq Er EBUSY -No unused MTRRs are available. -.El diff --git a/lib/libarch/amd64/amd64_get_mtrr.c b/lib/libarch/amd64/amd64_get_mtrr.c deleted file mode 100644 index 22980fbc36a..00000000000 --- a/lib/libarch/amd64/amd64_get_mtrr.c +++ /dev/null @@ -1,33 +0,0 @@ -/* $OpenBSD: amd64_get_mtrr.c,v 1.1 2004/02/28 23:51:35 deraadt Exp $ */ - -/* - * Copyright (c) 2004 Theo de Raadt - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <machine/segments.h> -#include <machine/sysarch.h> - -int -amd64_get_mtrr(struct mtrr *mtrr, int *n) -{ - struct amd64_get_mtrr_args a; - - a.mtrrp = mtrr; - a.n = n; - - return sysarch(AMD64_GET_MTRR, (void *)&a); -} diff --git a/lib/libarch/amd64/amd64_set_mtrr.c b/lib/libarch/amd64/amd64_set_mtrr.c deleted file mode 100644 index e20c5d17dc6..00000000000 --- a/lib/libarch/amd64/amd64_set_mtrr.c +++ /dev/null @@ -1,32 +0,0 @@ -/* $OpenBSD: amd64_set_mtrr.c,v 1.1 2004/02/28 23:51:35 deraadt Exp $ */ - -/* - * Copyright (c) 2004 Theo de Raadt - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <machine/segments.h> -#include <machine/sysarch.h> - -int -amd64_set_mtrr(struct mtrr *mtrr, int *n) -{ - struct amd64_set_mtrr_args a; - - a.mtrrp = mtrr; - a.n = n; - return sysarch(AMD64_SET_MTRR, (void *)&a); -} |