Watchdog for Boser (HS-7001)
Christoph Mallon
christoph.mallon at gmx.de
Mon Dec 1 01:35:36 PST 2008
Won De Erick schrieb:
>> ----- Original Message ----
>
>> From: Rink Springer <rink at FreeBSD.org>
>>
>>
> On Mon, Dec 01, 2008 at 09:38:51AM +0100, Christoph Mallon wrote:
>>> Userland is not allowed to write to ports. That's the bus error you see.
>>> Also without a call to the exit syscall at the end, it will segfault.
>> Note that you can write to ports from userland by opening /dev/io - if
>> you have it opened, you can write to the ports.
>>
>
> I've added the following at the end
>
> mov eax, 1 ; SYS_exit
> call doint
>
> doint:
> int 0x80
> ret
>
> Besides, I can see the following at /dev
> crw------- 1 root wheel 0, 16 Nov 27 01:53 io
>
> How should I make this open? do i need to %include this?
You're probably better of writing this in C. Here is a wrapper for the
out instruction:
static inline outb(unsigned short port, unsigned char data)
{
asm("outb %0, %1" : : "a" (data), "dN" (port));
}
As Rink mentioned, you have to open /dev/io. The process must have
super-user privileges, see io(4).
Regards
Christoph
More information about the freebsd-hardware
mailing list