Freebsd assembly programming - IN/OUT commands.
Jan Opacki
opacki at acn.waw.pl
Sun Oct 17 12:45:13 PDT 2004
Hi,
Thanks for help. i386_set_ioperm() is exactly what i need.
Regards,
Jan Opacki
On Sun, 2004-10-17 at 16:46, Peter Pentchev wrote:
> On Sun, Oct 17, 2004 at 04:00:57PM +0300, Giorgos Keramidas wrote:
> > On 2004-10-16 14:03, Jan Opacki <opacki at acn.waw.pl> wrote:
> > > I had a short look at your fbd assembly tutorial. I'm have a such
> > > problem useing IN, OUT commands. In my case i want to "speak" with cmos
> > > by port 70 and 71. We both know that fbsd as same as linux works in safe
> > > mode. So we need a permission to use each port. In linux it's a system
> > > call sys_ioperm (http://www.die.net/doc/linux/man/man2/ioperm.2.html).
> > > How to ask FreeBSD to allow us to use those ports ? And then we could
> > > simply do:
> > > mov al, 0
> > > out 70h, al
> > > nop
> > > nop
> > > nop
> > > nop
> > > in al, 71h
> > > Do you haveny any idea ?
> >
> > Look at the io(4) manpage. You need superuser access to work with
> > /dev/io and even then your program should be very careful about not
> > messing up badly with the hardware, but I think it does what you need.
>
> Of course, a bit more controlled way (as described in the io(4) manpage,
> too), would be to use the i386_set_ioperm(2) syscall :) It is a bit
> non-portable, true, but since Jan uses MASM-style assembly and mentions
> ports 70h and 71h, I think it would do what he needs.
>
> G'luck,
> Peter
More information about the freebsd-hackers
mailing list