libraw1394 fork
This repository has been archived on 2022-09-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Stefan Richter 7416da6112 Be more careful when copying response payloads on firewire-core
When faced with bogus config ROM read responses from an audio device
that did not support block requests as advertized, libffado's csr1212
code was able to recover when running on top of raw1394 but corrupted
its config ROM cache when running on top of firewire-core.
http://subversion.ffado.org/ticket/299

While the actual cause was a combination of firmware bug of the device
and flaw in csr1212.c of libffado, the much less graceful behavior when
running on firewire-core was obviously due to libraw1394's
firewire-core backend.  Hence,
  - do not write into the client's buffer if rcode != RCODE_COMPLETE,
  - do not copy more data than the actual response contained.

The latter safeguard is not overly effective though.  The libraw1394 API
has no means to inform a client about the error case that a responder
node sent less bytes than were requested.  (The case that the responder
sent more bytes than requested is covered up by the kernel already.)
Should we synthesize an I/O failure?  Does not sound ideal either.
However, such a size mismatch should never happen; the important part of
this change is the RCODE_COMPLETE check.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2010-09-07 11:48:18 +02:00
debian fix make dist without doc 2004-10-31 00:52:28 +00:00
doc doc: let "make clean" remove generated HTML files 2010-02-01 22:10:12 +01:00
src Be more careful when copying response payloads on firewire-core 2010-09-07 11:48:18 +02:00
tools tools/dumpiso: Add write() return code checks, fix harmless format string bug 2010-09-07 11:26:55 +02:00
AUTHORS Document contact address (linux1394-devel) more clearly 2010-02-01 22:10:12 +01:00
COPYING.LIB Ensure this ends up in distributions. 2000-03-12 04:08:48 +00:00
ChangeLog Update ChangeLog for release. 2009-12-26 17:09:52 -08:00
INSTALL Reset the libtool age. 2008-07-18 01:08:30 -07:00
Makefile.am Fix build due to incomplete tarball. 2009-06-30 11:12:55 -07:00
NEWS Set to version 2.0.5. 2009-12-26 17:09:07 -08:00
README Document contact address (linux1394-devel) more clearly 2010-02-01 22:10:12 +01:00
autogen.sh Ooops...libtool works a bit different than I thought, but atleast it works 2003-07-13 01:27:13 +00:00
configure.ac Set to version 2.0.5. 2009-12-26 17:09:07 -08:00
libraw1394.pc.in pkgconfig include path should not contain libraw1394 2004-11-20 04:56:36 +00:00
libraw1394.spec.in bump versions, build fixes, and doc updates 2004-10-30 22:49:27 +00:00

README

				   libraw1394
				   ==========

1. About libraw1394

	libraw1394 is the only supported interface to the kernel side raw1394 of
the Linux IEEE-1394 subsystem, which provides direct access to the connected
1394 buses to user space.  Through libraw1394/raw1394, applications can directly
send to and receive from other nodes without requiring a kernel driver for the
protocol in question.

	The reason for making a library the interface to the kernel is to avoid
a program dependancy on the kernel version, which would hinder development and
optimization of raw1394.  If development changed the protocol and made it
incompatible with previous versions only the libraw1394 has to be upgraded to
match the kernel version (instead of all applications).


2. Copyleft

	libraw1394 itself is licensed under the Lesser General Public License
(short LGPL, see file COPYING.LIB in the source distribution).  Other files in
the source archives not belonging to but being part of the build procedure of
libraw1394 are under their own licenses, as stated at the top of the individual
files.


3. API documentation

	Finally there is something, in the doc subdirectory.  The file is
libraw1394.sgml (it's Docbook format), and there are preformatted PostScript and
HTML available.  This documentation is not complete yet.


4. Multithreading

	This library should be multithreadable with the restriction that one
raw1394handle_t may be used only within a single thread.  Multiple threads
operating on the same handle would royally mess up the kernel-user protocol.
Simply use separate handles for each thread in which you need to use libraw1394.


5. Pkg-config

	The library comes with a pkg-config .pc file, so you can check for
libraw1394 and its version in your configure script.  For example, here is how 
to use the autoconf macro:

PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.1.0)

	This macro sets the variables LIBRAW1394_CFLAGS and LIBRAW1394_LIBS.  You 
have to include those into your build variables so that the build process 
correctly links with libraw1394.


6. Contact

	Send questions, suggestions, bug reports and patches to the mailing
list linux1394-devel@lists.sourceforge.net.  This list is open for posting
without prior subscription, and replies will usually be Cc'd to you.

	Maintainer of libraw1394 is currently Dan Dennedy.  See the file
AUTHORS for a complete list of contributors to libraw1394.

	Visit http://ieee1394.wiki.kernel.org/ for more information, including
links to mailing list subscription interfaces, to list archives, and to the
libraw1394 source repository.