diff options
| author | mycroft <mycroft@NetBSD.org> | 1995-10-15 02:25:07 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1995-10-15 02:25:07 +0000 |
| commit | 8ca3cf6c41b820ec31445130dec79dc5ed2bdfc4 (patch) | |
| tree | 1bb19515664c60f8b5f5dc6f57a406cce9fb9b18 /lib/libarch | |
| parent | 81ae32e332d0d7edbeca918d38312c3ecf58cab7 (diff) | |
Add new sysarch calls, and fix #includes.
Diffstat (limited to 'lib/libarch')
| -rw-r--r-- | lib/libarch/i386/Makefile.inc | 9 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_get_ioperm.2 | 80 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_get_ioperm.c | 46 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_get_ldt.c | 2 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_iopl.2 | 66 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_iopl.c | 46 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_set_ioperm.c | 46 | ||||
| -rw-r--r-- | lib/libarch/i386/i386_set_ldt.c | 2 |
8 files changed, 294 insertions, 3 deletions
diff --git a/lib/libarch/i386/Makefile.inc b/lib/libarch/i386/Makefile.inc index b0a354cbf31..9c967b8fbe1 100644 --- a/lib/libarch/i386/Makefile.inc +++ b/lib/libarch/i386/Makefile.inc @@ -2,8 +2,11 @@ .PATH: ${LIBC}/i386 -SRCS+= i386_get_ldt.c i386_set_ldt.c +SRCS+= i386_get_ldt.c i386_set_ldt.c \ + i386_iopl.c i386_get_ioperm.c i386_set_ioperm.c -MAN+= i386_get_ldt.2 +MAN+= i386_get_ldt.2 \ + i386_iopl.2 i386_get_ioperm.2 -MLINKS+=i386_get_ldt.2 i386_set_ldt.2 +MLINKS+=i386_get_ldt.2 i386_set_ldt.2 \ + i386_get_ioperm.2 i386_set_ioperm.2 diff --git a/lib/libarch/i386/i386_get_ioperm.2 b/lib/libarch/i386/i386_get_ioperm.2 new file mode 100644 index 00000000000..6c6da8f12ec --- /dev/null +++ b/lib/libarch/i386/i386_get_ioperm.2 @@ -0,0 +1,80 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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. +.\" +.\" from: @(#)fork.2 6.5 (Berkeley) 3/10/91 +.\" $Id: i386_get_ioperm.2,v 1.1 1995/10/15 02:29:09 mycroft Exp $ +.\" +.Dd October 14, 1995 +.Dt I386_GET_IOPERM 2 +.Os NetBSD +.Sh NAME +.Nm i386_get_ioperm , +.Nm i386_set_ioperm +.Nd manage i386 per-process I/O permission bitmap +.Sh SYNOPSIS +.Fd #include <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 +.Ar iomap . +.Pp +.Fn i386_set_ioperm +sets the I/O permission bitmap from the data pointed to by +.Ar iomap . +This call is restricted to the super-user. +.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 +.Ar Iomap +points outside the process's allocated address space. +.It Bq Er EPERM +The caller was not the super-user. +.El +.Sh REFERENCES +i386 Microprocessor Programmer's Reference Manual, Intel diff --git a/lib/libarch/i386/i386_get_ioperm.c b/lib/libarch/i386/i386_get_ioperm.c new file mode 100644 index 00000000000..b794b06dcbd --- /dev/null +++ b/lib/libarch/i386/i386_get_ioperm.c @@ -0,0 +1,46 @@ +/* $NetBSD: i386_get_ioperm.c,v 1.1 1995/10/15 02:29:10 mycroft Exp $ */ + +/* + * Copyright (c) 1995 Charles M. Hannum. 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Charles M. Hannum. + * 4. 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/cdefs.h> +#include <sys/types.h> + +#include <machine/sysarch.h> + +int +i386_get_ioperm(iomap) + u_long *iomap; +{ + struct i386_get_ioperm_args p; + + p.iomap = iomap; + + return sysarch(I386_GET_IOPERM, (char *)&p); +} diff --git a/lib/libarch/i386/i386_get_ldt.c b/lib/libarch/i386/i386_get_ldt.c index 45f0a4fff4e..a6fccc1eb14 100644 --- a/lib/libarch/i386/i386_get_ldt.c +++ b/lib/libarch/i386/i386_get_ldt.c @@ -28,6 +28,8 @@ */ #include <sys/cdefs.h> +#include <sys/types.h> + #include <machine/segments.h> #include <machine/sysarch.h> diff --git a/lib/libarch/i386/i386_iopl.2 b/lib/libarch/i386/i386_iopl.2 new file mode 100644 index 00000000000..45cfce0107b --- /dev/null +++ b/lib/libarch/i386/i386_iopl.2 @@ -0,0 +1,66 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 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. +.\" +.\" from: @(#)fork.2 6.5 (Berkeley) 3/10/91 +.\" $Id: i386_iopl.2,v 1.1 1995/10/15 02:29:11 mycroft Exp $ +.\" +.Dd October 14, 1995 +.Dt I386_IOPL 2 +.Os NetBSD +.Sh NAME +.Nm i386_iopl +.Nd change the i386 I/O privilege level +.Sh SYNOPSIS +.Fd #include <machine/sysarch.h> +.Ft int +.Fn i386_iopl "int iopl" +.Sh DESCRIPTION +.Fn i386_iopl +sets the i386 I/O privilege level to the value specified by +.Ar iomap . +This call is restricted to the super-user. +.Sh RETURN VALUES +Upon successful completion, +.Fn i386_iopl +returns 0. +Otherwise, a value of -1 is returned and the global +variable +.Va errno +is set to indicate the error. +.Sh ERRORS +.Fn i386_iopl +will fail if: +.Bl -tag -width [EINVAL] +.It Bq Er EPERM +The caller was not the super-user. +.El +.Sh REFERENCES +i386 Microprocessor Programmer's Reference Manual, Intel diff --git a/lib/libarch/i386/i386_iopl.c b/lib/libarch/i386/i386_iopl.c new file mode 100644 index 00000000000..22be4a9a328 --- /dev/null +++ b/lib/libarch/i386/i386_iopl.c @@ -0,0 +1,46 @@ +/* $NetBSD: i386_iopl.c,v 1.1 1995/10/15 02:29:12 mycroft Exp $ */ + +/* + * Copyright (c) 1995 Charles M. Hannum. 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Charles M. Hannum. + * 4. 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/cdefs.h> +#include <sys/types.h> + +#include <machine/sysarch.h> + +int +i386_iopl(iopl) + int iopl; +{ + struct i386_iopl_args p; + + p.iopl = iopl; + + return sysarch(I386_IOPL, (char *)&p); +} diff --git a/lib/libarch/i386/i386_set_ioperm.c b/lib/libarch/i386/i386_set_ioperm.c new file mode 100644 index 00000000000..d1976f4a078 --- /dev/null +++ b/lib/libarch/i386/i386_set_ioperm.c @@ -0,0 +1,46 @@ +/* $NetBSD: i386_set_ioperm.c,v 1.1 1995/10/15 02:29:13 mycroft Exp $ */ + +/* + * Copyright (c) 1995 Charles M. Hannum. 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Charles M. Hannum. + * 4. 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/cdefs.h> +#include <sys/types.h> + +#include <machine/sysarch.h> + +int +i386_set_ioperm(iomap) + u_long *iomap; +{ + struct i386_set_ioperm_args p; + + p.iomap = iomap; + + return sysarch(I386_SET_IOPERM, (char *)&p); +} diff --git a/lib/libarch/i386/i386_set_ldt.c b/lib/libarch/i386/i386_set_ldt.c index 26a56e674a9..25bc1f328d3 100644 --- a/lib/libarch/i386/i386_set_ldt.c +++ b/lib/libarch/i386/i386_set_ldt.c @@ -28,6 +28,8 @@ */ #include <sys/cdefs.h> +#include <sys/types.h> + #include <machine/segments.h> #include <machine/sysarch.h> |
