device drivers (Krassimir Slavchev) REPLY fd = open("/dev/xxx0", O_RDWR)

Michelle Li michelle_li_001 at yahoo.com
Tue Aug 11 01:36:18 UTC 2009


Hello Krassimir~

open() fails with [ENXIO]...or other?

Please advise~
Regards
m_li


--- On Mon, 8/10/09, freebsd-hackers-request at freebsd.org <freebsd-hackers-request at freebsd.org> wrote:

From: freebsd-hackers-request at freebsd.org <freebsd-hackers-request at freebsd.org>
Subject: freebsd-hackers Digest, Vol 333, Issue 1
To: freebsd-hackers at freebsd.org
Date: Monday, August 10, 2009, 8:00 AM

Send freebsd-hackers mailing list submissions to
    freebsd-hackers at freebsd.org

To subscribe or unsubscribe via the World Wide Web, visit
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
or, via email, send a message with subject or body 'help' to
    freebsd-hackers-request at freebsd.org

You can reach the person managing the list at
    freebsd-hackers-owner at freebsd.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of freebsd-hackers digest..."


Today's Topics:

   1. Help with device drivers (Krassimir Slavchev)


----------------------------------------------------------------------

Message: 1
Date: Mon, 10 Aug 2009 14:39:31 +0300
From: Krassimir Slavchev <krassi at bulinfo.net>
Subject: Help with device drivers
To: freebsd-hackers at freebsd.org
Message-ID: <4A8006F3.5020800 at bulinfo.net>
Content-Type: text/plain; charset=ISO-8859-1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi All,

Looking at sys/dev/usb/misc/ufm.c

...
static int
ufm_open(struct usb_fifo *dev, int fflags)
{
        if ((fflags & (FWRITE | FREAD)) != (FWRITE | FREAD)) {
                return (EACCES);
        }
        return (0);
}
...

and sys/dev/usb/storage/urio.c
...
static int
urio_open(struct usb_fifo *fifo, int fflags)
{
        struct urio_softc *sc = usb_fifo_softc(fifo);

        if ((fflags & (FWRITE | FREAD)) != (FWRITE | FREAD)) {
                return (EACCES);
        }
...

If I try to open the device from userland with:
fd = open("/dev/xxx0", O_RDWR) it fails because open() tries to open the
device for reading first and then for writing.

Do I use the wrong function to open such devices?

Best Regards
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFKgAbyxJBWvpalMpkRAt2ZAKCWfTWtaCu+1Xcf70Z9RM3+peZJ/ACgof4q
ybg2Mu3tDnz6Jwc1MA/Zwzs=
=Usso
-----END PGP SIGNATURE-----


------------------------------

_______________________________________________
freebsd-hackers at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"

End of freebsd-hackers Digest, Vol 333, Issue 1
***********************************************



      


More information about the freebsd-hackers mailing list