[vox-tech] Driver Question

Mark K. Kim vox-tech@lists.lugod.org
Sun, 14 Sep 2003 22:01:18 -0700 (PDT)


Oops.  I got the system call names mixed up.  But do look at "select" and
"poll" system calls as I think they might be useful to you.  As for
setting the non-blocking mode on file descriptors, use "fcntl" and "ioctl"
system calls.

And when I said "block", i meant the "read" system call blocks if no data
is available, and it can be configured to return immediately with an error
code if no data is available.

If you want your program to wait while it's waiting for data, simply
block.  If you want your program to continue running while it's waiting
for data, there are couple ways of going about it as I recall but I
haven't done this in a while so I probably couldn't give you a good
advice.  Check the man pages and the web.  Good luck!

-Mark


On Sun, 14 Sep 2003, Mark K. Kim wrote:

> The app is supposed to block ("freeze") if the data hasn't been read by
> the driver.  It stays blocked ("frozen") until the data is available.
>
> The app can choose to not block in such situation, by using the "select"
> or "poll" system call.  If the file descriptor is set to non-blocking
> mode, and if no data is available, then the read() system call returns -1
> and sets "errno" to "EAGAIN".  You probably have to implement these
> features into the driver.
>
> Have fun~!
>
> -Mark
>
>
> On Sun, 14 Sep 2003, John Wojnaroski wrote:
>
> > Hi,
> >
> > Building a driver for a hardware board and things are looking good... Using
> > the O'Reilly book by Rubini and Corbet as a guide, but have a bit of a
> > question??
> >
> > The driver is interrupt driven when the board posts data to the port and
> > that works fine. Data is retreived and stored in kernel space and the app
> > can use "result = read(fd, mesg, sizeof data)" to access the file (a char
> > device). But I can't seem to figure out how to notify the app that the
> > driver has read the data.
> >
> > Rather than polling would just like to read when data has been updated (
> > kind of like a keyboard using a callback function)
> >
> > Any thoughts, hints, references would be appreciated.
> >
> > Thanks
> > John W
> >
> > _______________________________________________
> > vox-tech mailing list
> > vox-tech@lists.lugod.org
> > http://lists.lugod.org/mailman/listinfo/vox-tech
> >
>
> --
> Mark K. Kim
> http://www.cbreak.org/
> PGP key available on the website
> PGP key fingerprint: 7324 BACA 53AD E504 A76E  5167 6822 94F0 F298 5DCE
>
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>

-- 
Mark K. Kim
http://www.cbreak.org/
PGP key available on the website
PGP key fingerprint: 7324 BACA 53AD E504 A76E  5167 6822 94F0 F298 5DCE