l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
January 6: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2003 Sep 14 22:15

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Driver Question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Driver Question



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

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.