summaryrefslogtreecommitdiff
path: root/lib/libarch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libarch/i386')
-rw-r--r--lib/libarch/i386/Makefile11
-rw-r--r--lib/libarch/i386/i386_get_ldt.2124
-rw-r--r--lib/libarch/i386/i386_get_ldt.c45
-rw-r--r--lib/libarch/i386/i386_set_ldt.c45
4 files changed, 4 insertions, 221 deletions
diff --git a/lib/libarch/i386/Makefile b/lib/libarch/i386/Makefile
index 4cb11d3dc2e..873c20531ef 100644
--- a/lib/libarch/i386/Makefile
+++ b/lib/libarch/i386/Makefile
@@ -1,21 +1,18 @@
-# $OpenBSD: Makefile,v 1.7 2014/07/16 20:02:17 okan Exp $
+# $OpenBSD: Makefile,v 1.8 2016/03/03 12:41:29 naddy Exp $
# $NetBSD: Makefile,v 1.1 1996/02/21 02:45:47 jtk Exp $
-MAN+= i386_get_ldt.2 \
- i386_get_fsbase.2 i386_get_gsbase.2 \
+MAN+= i386_get_fsbase.2 i386_get_gsbase.2 \
i386_iopl.2 i386_get_ioperm.2 \
i386_vm86.2
MANSUBDIR=i386
-MLINKS+=i386_get_ldt.2 i386_set_ldt.2 \
- i386_get_fsbase.2 i386_set_fsbase.2 \
+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
.if ${MACHINE} == "i386"
.PATH: ${LIBC}/i386
NOPIC=
-SRCS+= i386_get_ldt.c i386_set_ldt.c \
- i386_iopl.c i386_get_ioperm.c i386_set_ioperm.c \
+SRCS+= i386_iopl.c i386_get_ioperm.c i386_set_ioperm.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_ldt.2 b/lib/libarch/i386/i386_get_ldt.2
deleted file mode 100644
index 6ed839e0794..00000000000
--- a/lib/libarch/i386/i386_get_ldt.2
+++ /dev/null
@@ -1,124 +0,0 @@
-.\" $OpenBSD: i386_get_ldt.2,v 1.18 2015/09/10 17:55:21 schwarze Exp $
-.\"
-.\" Copyright (c) 1980, 1991 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.
-.\" 3. 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.
-.\"
-.\" from: @(#)fork.2 6.5 (Berkeley) 3/10/91
-.\" $NetBSD: i386_get_ldt.2,v 1.3 1996/01/05 14:56:44 pk Exp $
-.\"
-.Dd $Mdocdate: September 10 2015 $
-.Dt I386_GET_LDT 2 i386
-.Os
-.Sh NAME
-.Nm i386_get_ldt ,
-.Nm i386_set_ldt
-.Nd manage i386 per-process Local Descriptor Table entries
-.Sh SYNOPSIS
-.In sys/types.h
-.In machine/segments.h
-.In machine/sysarch.h
-.Ft int
-.Fn i386_get_ldt "int start_sel" "union descriptor *descs" "int num_sels"
-.Ft int
-.Fn i386_set_ldt "int start_sel" "union descriptor *descs" "int num_sels"
-.Sh DESCRIPTION
-.Fn i386_get_ldt
-returns a list of the i386 descriptors in the current process'
-LDT.
-.Fn i386_set_ldt
-sets a list of i386 descriptors in the current process'
-LDT.
-For both routines,
-.Fa start_sel
-specifies the index of the selector in the LDT at which to begin and
-.Fa descs
-points to an array of
-.Fa num_sels
-descriptors to be set or returned.
-.Pp
-Each entry in the
-.Fa descs
-array can be either a segment_descriptor or a gate_descriptor,
-as defined in
-.In i386/segments.h .
-These structures are defined by the architecture
-as disjoint bit-fields, so care must be taken in constructing them.
-.Pp
-Before this API can be used the functionality has to be enabled
-using the machdep.userldt
-.Xr sysctl 8
-variable.
-.Pp
-.Sy Note:
-Code using the
-.Fn i386_get_ldt
-and
-.Fn i386_set_ldt
-functions must be compiled using
-.Cm -li386 .
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn i386_get_ldt
-returns the number of i386 descriptors copied into
-.Fa descs
-from the current process' LDT.
-Otherwise, a value of \-1 is returned and the global
-variable
-.Va errno
-is set to indicate the error.
-.Pp
-Upon successful completion,
-.Fn i386_set_ldt
-returns the first selector set;
-if the kernel allocated a descriptor in the LDT,
-the allocated index is returned.
-Otherwise, a value of \-1 is returned and the global
-variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-.Fn i386_get_ldt
-and
-.Fn i386_set_ldt
-will fail if:
-.Bl -tag -width [EINVAL]
-.It Bq Er EINVAL
-An inappropriate parameter was used for
-.Fa start_sel
-or
-.Fa num_sels .
-.It Bq Er EACCES
-The caller attempted to use a descriptor that would
-circumvent protection or cause a failure.
-.El
-.Sh REFERENCES
-.Rs
-.%A Intel
-.%T i386 Microprocessor Programmer's Reference Manual
-.Re
-.Sh WARNING
-You can really hose your process using this.
diff --git a/lib/libarch/i386/i386_get_ldt.c b/lib/libarch/i386/i386_get_ldt.c
deleted file mode 100644
index 649bcf8eb48..00000000000
--- a/lib/libarch/i386/i386_get_ldt.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1993 John Brezak
- * 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.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `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 AUTHOR 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_ldt(int start, union descriptor *desc, int num)
-{
- struct i386_get_ldt_args p;
-
- p.start = start;
- p.desc = desc;
- p.num = num;
-
- return sysarch(I386_GET_LDT, &p);
-}
diff --git a/lib/libarch/i386/i386_set_ldt.c b/lib/libarch/i386/i386_set_ldt.c
deleted file mode 100644
index 08fef8c08a7..00000000000
--- a/lib/libarch/i386/i386_set_ldt.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1993 John Brezak
- * 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.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `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 AUTHOR 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_ldt(int start, union descriptor *desc, int num)
-{
- struct i386_set_ldt_args p;
-
- p.start = start;
- p.desc = desc;
- p.num = num;
-
- return sysarch(I386_SET_LDT, &p);
-}