diff options
-rw-r--r-- | libc/sysdeps/linux/arm/Makefile | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/ioperm.c | 13 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/iopl.c | 35 |
3 files changed, 36 insertions, 14 deletions
diff --git a/libc/sysdeps/linux/arm/Makefile b/libc/sysdeps/linux/arm/Makefile index 77245307a..65df75338 100644 --- a/libc/sysdeps/linux/arm/Makefile +++ b/libc/sysdeps/linux/arm/Makefile @@ -28,7 +28,7 @@ SSRC=__longjmp.S vfork.S clone.S setjmp.S bsd-setjmp.S \ bsd-_setjmp.S sigrestorer.S mmap64.S SOBJS=$(patsubst %.S,%.o, $(SSRC)) -CSRC=brk.c syscall.c ioperm.c sigaction.c __syscall_error.c +CSRC=brk.c syscall.c ioperm.c iopl.c sigaction.c __syscall_error.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(SOBJS) $(COBJS) diff --git a/libc/sysdeps/linux/arm/ioperm.c b/libc/sysdeps/linux/arm/ioperm.c index 2fba676b1..357d987f8 100644 --- a/libc/sysdeps/linux/arm/ioperm.c +++ b/libc/sysdeps/linux/arm/ioperm.c @@ -202,19 +202,6 @@ int ioperm (unsigned long int from, unsigned long int num, int turn_on) } -int iopl (unsigned int level) -{ - if (level > 3) { - __set_errno (EINVAL); - return -1; - } - if (level) { - return ioperm (0, MAX_PORT, 1); - } - return 0; -} - - void outb(unsigned char b, unsigned long int port) { diff --git a/libc/sysdeps/linux/arm/iopl.c b/libc/sysdeps/linux/arm/iopl.c new file mode 100644 index 000000000..0cd306d42 --- /dev/null +++ b/libc/sysdeps/linux/arm/iopl.c @@ -0,0 +1,35 @@ +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Phil Blundell, based on the Alpha version by + David Mosberger. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <sys/io.h> +#include <errno.h> + +#define MAX_PORT 0x10000 + +int iopl(int level) +{ + if (level > 3) { + __set_errno(EINVAL); + return -1; + } + if (level) + return ioperm(0, MAX_PORT, 1); + return 0; +} |