Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Dec 2008 05:07:37 -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:  <839504.20277.qm@web45816.mail.sp1.yahoo.com>

next in thread | raw e-mail | index | archive | help
>From: Won De Erick <won.derick@yahoo.com>

>>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);
>
aww.. i mean int sio = open("/dev/io", O_RDWR);
>
>>
>>Regards
>>    Christoph


      




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?839504.20277.qm>