Date: Mon, 1 Dec 2008 04:52:43 -0800 (PST) From: Won De Erick <won.derick@yahoo.com> To: Christoph Mallon <christoph.mallon@gmx.de> Cc: freebsd-hackers@freebsd.org, Rink Springer <rink@FreeBSD.org>, freebsd-hardware@freebsd.org Subject: Re: Watchdog for Boser (HS-7001) Message-ID: <838497.65099.qm@web45808.mail.sp1.yahoo.com>
next in thread | raw e-mail | index | archive | help
>----- Original Message ----
>From: Christoph Mallon <christoph.mallon@gmx.de>
>
>
Won De Erick schrieb:
>>> ----- Original Message ----
>>
>>> From: Rink Springer <rink@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).
will this be ok?
int fd = open("/dev/fido", O_RDWR);
>
>Regards
> Christoph
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?838497.65099.qm>
