On Monday 08 August 2005 03:19 pm, alexander wrote:
> Hi there.
>
> I wrote a program that needs to access I/O ports with the in/out
> machinecodes. To gain priviliges to do so I have opened /dev/io. Now
> somebody told me that I'd rather use i386_set_ioperm which will be much
> saver, because of the port range limitation. Plus it will make the program
> more portable because Linux does not have a /dev/io device node.
>
> i386_set_ioperm(2) states that this procedure is a system call. So it
> should be easily accessable through assembly language and it's specific
> syscall id. Unfortunately I wasn't able to find the syscall id in any of
> the
> syscalls.master files that are part of the source tree.
>
> <machine/sysarch.h> states that this is a sysarch specific syscall for i386
> (hence the i386_*). The following definitions are being made:
>
> #define I386_GET_IOPERM 3
> #define I386_SET_IOPERM 4
>
> These syscall numbers however are already taken by read(2) and write(2). So
> how can I make use of these i386 specific syscalls? Is it even possible?
>
> Thx in advance.

You have to call the sysarch() system call.  The first argument to it would be 
the operation (I386_GET_IOPERM, etc.).

-- 
John Baldwin <[EMAIL PROTECTED]>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to