summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hessler <phessler@cvs.openbsd.org>2008-06-09 23:15:48 +0000
committerPeter Hessler <phessler@cvs.openbsd.org>2008-06-09 23:15:48 +0000
commit232a3236a9e9580183131592af7460e45ae79e3d (patch)
tree0d4b04f507a836e6e9acac5c228543516343369d
parent83662fb96f65566b6b294030fd71876b664cfd38 (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/Makefile10
-rw-r--r--lib/libarch/amd64/amd64_get_mtrr.2166
-rw-r--r--lib/libarch/amd64/amd64_get_mtrr.c33
-rw-r--r--lib/libarch/amd64/amd64_set_mtrr.c32
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);
-}