Date: Sun, 17 Oct 2004 16:00:57 +0300 From: Giorgos Keramidas <keramida@freebsd.org> To: Jan Opacki <opacki@acn.waw.pl> Cc: freebsd-hackers@freebsd.org Subject: Re: Freebsd assembly programming - IN/OUT commands. Message-ID: <20041017130057.GA1132@gothmog.gr> In-Reply-To: <6.0.1.1.1.20041016135943.0353fb90@adamsatoms.com> References: <6.0.1.1.1.20041016135943.0353fb90@adamsatoms.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2004-10-16 14:03, Jan Opacki <opacki@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. A typical use of /dev/io would look like: if ((iofd = open("/dev/io", O_RDONLY)) == -1) err(1, "open: /dev/io"); __asm__("insert your inline asm here"); if (close(iofd) == -1) err(1, "close: /dev/io");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041017130057.GA1132>