mirror of git://git.musl-libc.org/musl
add ioperm/iopl syscalls
based on patches by orc and Isaac Dunham, with some fixes. sys/io.h exists and contains prototypes for these functions regardless of whether the target arch has them; this is a bit unorthodox but I don't think it will break anything. the function definitions do not exist unless the appropriate SYS_* syscall number macro is defined, which should make sure configure scripts looking for these functions don't find them on other systems. presently, sys/io.h does not have the inb/outb/etc. port io macros/functions. I'd be surprised if ioperm/iopl are useful without them, so they probably need to be added at some point in appropriate bits/io.h files...
This commit is contained in:
parent
53147f902b
commit
d426b04533
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef _SYS_IO_H
|
||||||
|
#define _SYS_IO_H
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int ioperm(unsigned long, unsigned long, int);
|
||||||
|
int iopl(int);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include <sys/io.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
|
||||||
|
#ifdef SYS_ioperm
|
||||||
|
int ioperm(unsigned long from, unsigned long num, int turn_on)
|
||||||
|
{
|
||||||
|
return syscall(SYS_ioperm, from, num, turn_on);
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include <sys/io.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
|
||||||
|
#ifdef SYS_iopl
|
||||||
|
int iopl(int level)
|
||||||
|
{
|
||||||
|
return syscall(SYS_iopl, level);
|
||||||
|
}
|
||||||
|
#endif
|
Loading…
Reference in New Issue