>From: Won De Erick <[EMAIL PROTECTED]>
>>From: Christoph Mallon <[EMAIL PROTECTED]>
>>
>
>Won De Erick schrieb:
>>>> ----- Original Message ----
>>>
>>>> From: Rink Springer <[EMAIL PROTECTED]>
>>>>
>>>>
>>> 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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"