
				   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 dependency 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).

	Since version 2, libraw1394 also works with the kernel driver
firewire-core.  libraw1394's role has thus become that of a raw1394
compatibility layer for existing applications when running on firewire-core.


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.  Visit
http://ieee1394.wiki.kernel.org/ for links to list subscription interfaces and
list archives.

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

	Source repository:
git://git.kernel.org/pub/scm/libs/ieee1394/libraw1394.git
http://git.kernel.org/pub/scm/libs/ieee1394/libraw1394.git
https://git.kernel.org/pub/scm/libs/ieee1394/libraw1394.git

	Gitweb:
http://git.kernel.org/?p=libs/ieee1394/libraw1394.git

	Release tarballs:
https://www.kernel.org/pub/linux/libs/ieee1394/
ftp://ftp.kernel.org/pub/linux/libs/ieee1394/
