diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2016-03-24 04:56:09 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2016-03-24 04:56:09 +0000 |
commit | 06456ba3b2aeb195a33e45543899cd6635970735 (patch) | |
tree | 2c48eef06101fb5e0601d10a7e5093701a2b8590 /lib/libarch/i386 | |
parent | de55781ae318a6442cab130d6d09ec19efc89ef2 (diff) |
Delete i386_{get,set}_ioperm(2) APIs and underlying sysarch(2) bits.
They're no longer used by anything and should let us simplify the TSS
handling.
ok mikeb@ naddy@
Diffstat (limited to 'lib/libarch/i386')
-rw-r--r-- | lib/libarch/i386/Makefile | 10 | ||||
-rw-r--r-- | lib/libarch/i386/i386_get_ioperm.2 | 122 | ||||
-rw-r--r-- | lib/libarch/i386/i386_get_ioperm.c | 46 | ||||
-rw-r--r-- | lib/libarch/i386/i386_set_ioperm.c | 46 |
4 files changed, 4 insertions, 220 deletions
diff --git a/lib/libarch/i386/Makefile b/lib/libarch/i386/Makefile index 873c20531ef..0a1aa651f61 100644 --- a/lib/libarch/i386/Makefile +++ b/lib/libarch/i386/Makefile @@ -1,18 +1,16 @@ -# $OpenBSD: Makefile,v 1.8 2016/03/03 12:41:29 naddy Exp $ +# $OpenBSD: Makefile,v 1.9 2016/03/24 04:56:08 guenther Exp $ # $NetBSD: Makefile,v 1.1 1996/02/21 02:45:47 jtk Exp $ MAN+= i386_get_fsbase.2 i386_get_gsbase.2 \ - i386_iopl.2 i386_get_ioperm.2 \ - i386_vm86.2 + i386_iopl.2 i386_vm86.2 MANSUBDIR=i386 MLINKS+=i386_get_fsbase.2 i386_set_fsbase.2 \ - i386_get_gsbase.2 i386_set_gsbase.2 \ - i386_get_ioperm.2 i386_set_ioperm.2 + i386_get_gsbase.2 i386_set_gsbase.2 .if ${MACHINE} == "i386" .PATH: ${LIBC}/i386 NOPIC= -SRCS+= i386_iopl.c i386_get_ioperm.c i386_set_ioperm.c \ +SRCS+= i386_iopl.c \ i386_get_fsbase.c i386_get_gsbase.c \ i386_set_fsbase.c i386_set_gsbase.c \ i386_vm86.c diff --git a/lib/libarch/i386/i386_get_ioperm.2 b/lib/libarch/i386/i386_get_ioperm.2 deleted file mode 100644 index 997ea04e57d..00000000000 --- a/lib/libarch/i386/i386_get_ioperm.2 +++ /dev/null @@ -1,122 +0,0 @@ -.\" $OpenBSD: i386_get_ioperm.2,v 1.16 2015/09/10 17:55:21 schwarze Exp $ -.\" $NetBSD: i386_get_ioperm.2,v 1.3 1996/02/27 22:57:17 jtc Exp $ -.\" -.\" Copyright (c) 1996 The NetBSD Foundation, Inc. -.\" All rights reserved. -.\" -.\" This code is derived from software contributed to The NetBSD Foundation -.\" by John T. Kohl and Charles M. Hannum. -.\" -.\" 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. -.\" -.\" 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 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. -.\" -.Dd $Mdocdate: September 10 2015 $ -.Dt I386_GET_IOPERM 2 i386 -.Os -.Sh NAME -.Nm i386_get_ioperm , -.Nm i386_set_ioperm -.Nd manage i386 per-process I/O permission bitmap -.Sh SYNOPSIS -.In sys/types.h -.In machine/sysarch.h -.Ft int -.Fn i386_get_ioperm "u_long *iomap" -.Ft int -.Fn i386_set_ioperm "u_long *iomap" -.Sh DESCRIPTION -.Fn i386_get_ioperm -copies the current I/O permission bitmap into the memory referenced by -.Fa iomap . -.Pp -.Fn i386_set_ioperm -sets the I/O permission bitmap from the data pointed to by -.Fa iomap . -This call may only be made by the superuser. -Additionally, it is only permitted when the -.Xr securelevel 7 -is less than or equal to 0 or the -.Va machdep.allowaperture -sysctl has been set to a non-zero value. -.Pp -The permission bitmap contains 1024 bits in 32 longwords. -If bit -.Va n -is clear in the bitmap, then access is granted to I/O port -.Va n . -If bit -.Va n -is set in the bitmap, then an attempt to access I/O port -.Va n -results in delivery of a -.Dv SIGBUS -signal unless the process's I/O permission level would grant I/O access. -.Pp -.Sy Note: -Code using the -.Fn i386_get_ioperm -and -.Fn i386_set_ioperm -functions must be compiled using -.Cm -li386 . -.Sh RETURN VALUES -Upon successful completion, -.Fn i386_get_ioperm -and -.Fn i386_set_ioperm -return 0. -Otherwise, a value of \-1 is returned and the global variable -.Va errno -is set to indicate the error. -.Sh ERRORS -.Fn i386_get_ioperm -and -.Fn i386_set_ioperm -will fail if: -.Bl -tag -width [EINVAL] -.It Bq Er EFAULT -.Fa iomap -points outside the process's allocated address space. -.El -.Pp -Additionally -.Fn i386_set_ioperm -will fail if: -.Bl -tag -width [EINVAL] -.It Bq Er EPERM -The caller was not the superuser, or the securelevel is greater than zero and -.Va machdep.allowaperture -has not been set to a non-zero value. -.El -.Sh SEE ALSO -.Xr i386_iopl 2 -.Rs -.%A Intel -.%T i386 Microprocessor Programmer's Reference Manual -.Re -.Sh WARNING -You can really hose your machine if you enable user-level I/O and -write to hardware ports without care. -.Sh BUGS -The bitmap should really cover 65536 bits, but that's just too big for -allocation in a kernel structure. -If you need access to ports beyond 1024, use -.Xr i386_iopl 2 . diff --git a/lib/libarch/i386/i386_get_ioperm.c b/lib/libarch/i386/i386_get_ioperm.c deleted file mode 100644 index 790672b18c4..00000000000 --- a/lib/libarch/i386/i386_get_ioperm.c +++ /dev/null @@ -1,46 +0,0 @@ -/* $OpenBSD: i386_get_ioperm.c,v 1.8 2016/02/01 19:58:44 jca Exp $ */ -/* $NetBSD: i386_get_ioperm.c,v 1.2 1996/02/27 22:57:22 jtc Exp $ */ - -/*- - * Copyright (c) 1996 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by John T. Kohl and Charles M. Hannum. - * - * 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. - * - * 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 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. - */ - -#include <sys/types.h> - -#include <machine/segments.h> -#include <machine/sysarch.h> - -int -i386_get_ioperm(u_long *iomap) -{ - struct i386_get_ioperm_args p; - - p.iomap = iomap; - - return sysarch(I386_GET_IOPERM, &p); -} diff --git a/lib/libarch/i386/i386_set_ioperm.c b/lib/libarch/i386/i386_set_ioperm.c deleted file mode 100644 index 6f477c90ef1..00000000000 --- a/lib/libarch/i386/i386_set_ioperm.c +++ /dev/null @@ -1,46 +0,0 @@ -/* $OpenBSD: i386_set_ioperm.c,v 1.8 2016/02/01 19:58:44 jca Exp $ */ -/* $NetBSD: i386_set_ioperm.c,v 1.2 1996/02/27 22:57:31 jtc Exp $ */ - -/*- - * Copyright (c) 1996 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by John T. Kohl and Charles M. Hannum. - * - * 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. - * - * 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 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. - */ - -#include <sys/types.h> - -#include <machine/segments.h> -#include <machine/sysarch.h> - -int -i386_set_ioperm(u_long *iomap) -{ - struct i386_set_ioperm_args p; - - p.iomap = iomap; - - return sysarch(I386_SET_IOPERM, &p); -} |