> > I mean, what services do drivers offer? What services they _need_ to offer? Do 
> > they just create appropriate device nodes and let the applications to worry about 
> > using them or do they do some data manipulation or do they offer routines and 
> > interfaces for applications or what? What should this particular driver do as I 
> > just want to read/write data.
> > 

I think for your application running in userland is fine, if kernel
programming is likely to be a steep learning curve. You can use nanosleep()
to get the timing you need.

On Wed, Oct 15, 2003 at 05:13:29PM -0400, Mathew Kanner wrote:
>       I'm not positive about this but I think that you can do it
> from usermode by opening /dev/io (as root) and the use inb, outb
> macros defined in cpufunc.h.

You can also use i386_get_ioperm() and i386_set_ioperm(). These change
the I/O port permission bitmap in the process's Task State Segment (TSS)
accordingly, so that you can issue IN/OUT instructions without segfaulting
in a similar way to opening /dev/io. The only trouble with /dev/io is that
it's an all-or-nothing approach (processes literally can write anywhere in
I/O space); better to ask for what you need than ask for everything, IMHO.

BMS
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to