summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGravatar ddennedy 2004-11-11 03:19:09 +0000
committerGravatar ddennedy 2004-11-11 03:19:09 +0000
commit940fabaf397c9bc9b6b5457bab45ef9913513248 (patch)
tree410e4911c9e9b32b4c8520e29be72e05a086d476 /doc
parentrevert kernel protocol version (diff)
reorganize and update documentation; fix compiler warning
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@144 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to 'doc')
-rw-r--r--doc/libraw1394.sgml4508
1 files changed, 4156 insertions, 352 deletions
diff --git a/doc/libraw1394.sgml b/doc/libraw1394.sgml
index fc54c91..da0109c 100644
--- a/doc/libraw1394.sgml
+++ b/doc/libraw1394.sgml
@@ -880,359 +880,4163 @@
<chapter id="functions">
<title>Function Reference</title>
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_new_handle</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_new_handle</refname>
- <refpurpose>create new handle</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>raw1394handle_t <function>raw1394_new_handle</function></funcdef>
- <void>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- Creates and returns a new handle. It is not allowed to use the same
- handle in multiple threads or forked processes. It is allowed to
- create and use multiple handles, however. Use one handle per thread
- which needs it in the multithreaded case.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Return Value</title>
-
- <para>
- Returns the created handle or <constant>NULL</constant> when
- initialization fails. In the latter case <varname>errno</varname>
- either contains some OS specific error code or <constant>0</constant>
- if the error is that libraw1394 and raw1394 don't support each other's
- protocol versions.
- </para>
- </refsect1>
- </refentry>
-
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_destroy_handle</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_destroy_handle</refname>
- <refpurpose>deallocate handle</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>void <function>raw1394_destroy_handle</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Arguments</title>
-
- <variablelist>
- <varlistentry>
- <term><parameter>handle</parameter></term>
- <listitem>
- <para>handle to be deallocated</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- Closes connection with raw1394 on this handle and deallocates
- everything associated with it. It is safe to pass
- <constant>NULL</constant> as handle, nothing is done in this case.
- </para>
- </refsect1>
- </refentry>
-
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_get_port_info</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_get_port_info</refname>
- <refpurpose>get information about connected ports</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>raw1394_get_port_info</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- <paramdef>struct raw1394_port_info *<parameter>pinf</parameter></paramdef>
- <paramdef>int <parameter>maxports</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Arguments</title>
-
- <variablelist>
- <varlistentry>
- <term><parameter>pinf</parameter></term>
- <listitem>
- <para>Pointer to an array of structure of type
- <structname>raw1394_port_info</structname> which will be filled in
- by the function.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>maxports</parameter></term>
- <listitem>
- <para>Maximum number of <parameter>pinf</parameter> structures to
- fill in. Zero is valid.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Return Value</title>
-
- <para>
- The number of ports currently existing.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- Before you can set which port to use, you use this function to find
- out which ports exist. The <structname>raw1394_port_info</structname>
- structure looks like this:
-
- <programlisting>
-struct <structname>raw1394_portinfo</structname> {
- int <structfield>nodes</structfield>;
- char <structfield>name</structfield>[32];
-};
- </programlisting>
- </para>
-
- <para>
- The field <structfield>nodes</structfield> contains the number of
- nodes that are currently connected to that port, the field
- <structfield>name</structfield> contains the name of the hardware
- type. If your program is interactive, you should present the user
- with this list to let them decide which port to use. A
- non-interactive program (and probably interactive ones, too) should
- provide a command line option to choose the port.
- </para>
- </refsect1>
- </refentry>
-
-
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_get_fd</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_get_fd</refname>
- <refpurpose>get the communication file descriptor</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>raw1394_get_fd</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Arguments</title>
-
- <variablelist>
- <varlistentry>
- <term><parameter>handle</parameter></term>
- <listitem>
- <para>handle of which the fd is to be returned from</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- Returns the fd used for communication with the raw1394 kernel module.
- This can be used for
- <function>select()</function>/<function>poll()</function> calls if you
- wait on other fds or can be integrated into another event loop
- (e.g. from a GUI application framework). It can also be used to
- set/remove the <constant>O_NONBLOCK</constant> flag using
- <function>fcntl()</function> to modify the block behaviour in
- <function>raw1394_loop_iterate()</function>. It must not be used for
- anything else.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Return Value</title>
-
- <para>
- The fd of the communication stream. Invalid fds may be returned
- before a port was set using <function>raw1394_set_port()</function>.
- </para>
- </refsect1>
- </refentry>
-
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_(get|set)_userdata</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_get_userdata</refname>
- <refname>raw1394_set_userdata</refname>
- <refpurpose>associate user data with a handle</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>void *<function>raw1394_get_userdata</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>void <function>raw1394_set_userdata</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Arguments</title>
-
- <variablelist>
- <varlistentry>
- <term><parameter>handle</parameter></term>
- <listitem>
- <para>handle associated with the user data</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- Allows to associate one void pointer with a handle. libraw1394 does
- not care about the data, it just stores it in the handle allowing it
- to be retrieved at any time. This can be useful when multiple handles
- are used, so that callbacks can identify the handle.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Return Value</title>
-
- <para>
- <function>raw1394_get_userdata()</function> returns the void pointer
- associated with the handle.
- </para>
- </refsect1>
- </refentry>
-
- <refentry>
- <refmeta>
- <refentrytitle>raw1394_get_(local_id|irm_id|nodecount)</refentrytitle>
- <manvolnum>3</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>raw1394_get_local_id</refname>
- <refname>raw1394_get_irm_id</refname>
- <refname>raw1394_get_nodecount</refname>
- <refpurpose>return basic information about the bus</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <funcsynopsis>
- <funcprototype>
- <funcdef>nodeid_t <function>raw1394_get_local_id</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>nodeid_t <function>raw1394_get_irm_id</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- <funcprototype>
- <funcdef>int <function>raw1394_get_nodecount</function></funcdef>
- <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Arguments</title>
-
- <variablelist>
- <varlistentry>
- <term><parameter>handle</parameter></term>
- <listitem>
- <para>handle associated with a 1394 bus</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Description</title>
-
- <para>
- These functions return information about the 1394 bus the handle is
- associated with. The values that can be queried through these
- functions can change with every bus reset.
- </para>
- </refsect1>
-
- <refsect1>
- <title>Return Value</title>
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-xmit-init">raw1394_iso_xmit_init</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_xmit_init</refname>
+ <refpurpose>
+ initialize isochronous transmission
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_xmit_init </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>raw1394_iso_xmit_handler_t <parameter>handler</parameter></paramdef>
+ <paramdef>unsigned int <parameter>buf_packets</parameter></paramdef>
+ <paramdef>unsigned int <parameter>max_packet_size</parameter></paramdef>
+ <paramdef>unsigned char <parameter>channel</parameter></paramdef>
+ <paramdef>enum raw1394_iso_speed <parameter>speed</parameter></paramdef>
+ <paramdef>int <parameter>irq_interval</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>handler</parameter></term>
+ <listitem>
+ <para>
+ handler function for queueing packets
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buf_packets</parameter></term>
+ <listitem>
+ <para>
+ number of isochronous packets to buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>max_packet_size</parameter></term>
+ <listitem>
+ <para>
+ largest packet you need to handle, in bytes
+ (not including the isochronous header)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ isochronous channel on which to transmit
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>speed</parameter></term>
+ <listitem>
+ <para>
+ speed at which to transmit
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>irq_interval</parameter></term>
+ <listitem>
+ <para>
+ maximum latency of wake-ups, in packets (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Allocates all user and kernel resources necessary for isochronous transmission.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-init">raw1394_iso_recv_init</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_init</refname>
+ <refpurpose>
+ initialize isochronous reception
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_init </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>raw1394_iso_recv_handler_t <parameter>handler</parameter></paramdef>
+ <paramdef>unsigned int <parameter>buf_packets</parameter></paramdef>
+ <paramdef>unsigned int <parameter>max_packet_size</parameter></paramdef>
+ <paramdef>unsigned char <parameter>channel</parameter></paramdef>
+ <paramdef>enum raw1394_iso_dma_recv_mode <parameter>mode</parameter></paramdef>
+ <paramdef>int <parameter>irq_interval</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>handler</parameter></term>
+ <listitem>
+ <para>
+ handler function for receiving packets
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buf_packets</parameter></term>
+ <listitem>
+ <para>
+ number of isochronous packets to buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>max_packet_size</parameter></term>
+ <listitem>
+ <para>
+ largest packet you need to handle, in bytes (not including
+ the isochronous header)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ isochronous channel to receive
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>mode</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>irq_interval</parameter></term>
+ <listitem>
+ <para>
+ maximum latency of wake-ups, in packets
+ (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Allocates all user and kernel resources necessary for isochronous reception.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-multichannel-recv-init">raw1394_iso_multichannel_recv_init</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_multichannel_recv_init</refname>
+ <refpurpose>
+ initialize multi-channel iso reception
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_multichannel_recv_init </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>raw1394_iso_recv_handler_t <parameter>handler</parameter></paramdef>
+ <paramdef>unsigned int <parameter>buf_packets</parameter></paramdef>
+ <paramdef>unsigned int <parameter>max_packet_size</parameter></paramdef>
+ <paramdef>int <parameter>irq_interval</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>handler</parameter></term>
+ <listitem>
+ <para>
+ handler function for receiving packets
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buf_packets</parameter></term>
+ <listitem>
+ <para>
+ number of isochronous packets to buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>max_packet_size</parameter></term>
+ <listitem>
+ <para>
+ largest packet you need to handle, in bytes (not including
+ the isochronous header)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>irq_interval</parameter></term>
+ <listitem>
+ <para>
+ maximum latency of wake-ups, in packets (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Allocates all user and kernel resources necessary for isochronous reception.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-listen-channel">raw1394_iso_recv_listen_channel</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_listen_channel</refname>
+ <refpurpose>
+ listen to a specific channel in multi-channel mode
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_listen_channel </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned char <parameter>channel</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ listen/unlisten on a specific channel (multi-channel mode ONLY)
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-unlisten-channel">raw1394_iso_recv_unlisten_channel</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_unlisten_channel</refname>
+ <refpurpose>
+ stop listening to a specific channel in multi-channel mode
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_unlisten_channel </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned char <parameter>channel</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-set-channel-mask">raw1394_iso_recv_set_channel_mask</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_set_channel_mask</refname>
+ <refpurpose>
+ listen or unlisten to a whole bunch of channels at once
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_set_channel_mask </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>u_int64_t <parameter>mask</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>mask</parameter></term>
+ <listitem>
+ <para>
+ 64-bit mask of channels, 1 means listen, 0 means unlisten,
+ channel 0 is LSB, channel 63 is MSB
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ for multi-channel reception mode only
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-xmit-start">raw1394_iso_xmit_start</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_xmit_start</refname>
+ <refpurpose>
+ begin isochronous transmission
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_xmit_start </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>start_on_cycle</parameter></paramdef>
+ <paramdef>int <parameter>prebuffer_packets</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start_on_cycle</parameter></term>
+ <listitem>
+ <para>
+ isochronous cycle number on which to start
+ (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>prebuffer_packets</parameter></term>
+ <listitem>
+ <para>
+ number of packets to queue up before starting transmission
+ (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-start">raw1394_iso_recv_start</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_start</refname>
+ <refpurpose>
+ begin isochronous reception
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_start </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>start_on_cycle</parameter></paramdef>
+ <paramdef>int <parameter>tag_mask</parameter></paramdef>
+ <paramdef>int <parameter>sync</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start_on_cycle</parameter></term>
+ <listitem>
+ <para>
+ isochronous cycle number on which to start
+ (-1 if you don't care)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag_mask</parameter></term>
+ <listitem>
+ <para>
+ mask of tag fields to match (-1 to receive all packets)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sync</parameter></term>
+ <listitem>
+ <para>
+ not used, reserved for future implementation
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-xmit-write">raw1394_iso_xmit_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_xmit_write</refname>
+ <refpurpose>
+ alternative blocking-write API for ISO transmission
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_xmit_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned char * <parameter>data</parameter></paramdef>
+ <paramdef>unsigned int <parameter>len</parameter></paramdef>
+ <paramdef>unsigned char <parameter>tag</parameter></paramdef>
+ <paramdef>unsigned char <parameter>sy</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ pointer to packet data buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>len</parameter></term>
+ <listitem>
+ <para>
+ length of packet, in bytes
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ tag field
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sy</parameter></term>
+ <listitem>
+ <para>
+ sync field
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ <function>write</function> style API - do NOT use this if you have set an xmit_handler
+ if buffer is full, waits for more space UNLESS the file descriptor is
+ set to non-blocking, in which case <function>xmit_write</function> will return -1 with
+ errno = EAGAIN
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-xmit-sync">raw1394_iso_xmit_sync</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_xmit_sync</refname>
+ <refpurpose>
+ wait until all queued packets have been sent
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_xmit_sync </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-recv-flush">raw1394_iso_recv_flush</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_recv_flush</refname>
+ <refpurpose>
+ flush all already received iso packets from kernel into user space
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_recv_flush </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ If you specified an irq_interval &gt; 1 in
+ iso_recv_init, you won't be notified for every single iso packet, but
+ for groups of them. Now e.g. if irq_interval is 100, and you were just
+ notified about iso packets and after them only 20 more packets arrived,
+ no notification will be generated (20 &lt; 100). In the case that you know
+ that there should be more packets at this moment, you can call this
+ function and all iso packets which are already received by the kernel
+ will be flushed out to user space.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-stop">raw1394_iso_stop</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_stop</refname>
+ <refpurpose>
+ halt isochronous transmission or reception
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void <function>raw1394_iso_stop </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-shutdown">raw1394_iso_shutdown</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_shutdown</refname>
+ <refpurpose>
+ clean up and deallocate all resources for isochronous transmission or reception
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void <function>raw1394_iso_shutdown </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-errcode">raw1394_get_errcode</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_errcode</refname>
+ <refpurpose>
+ return error code of async transaction
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>raw1394_errcode_t <function>raw1394_get_errcode </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the error code of the last <function>raw1394_read</function>, <function>raw1394_write</function>,
+ <function>raw1394_lock</function> or <function>raw1394_iso_write</function>. The error code is either an internal
+ error (i.e. not a bus error) or a combination of acknowledge code and
+ response code, as appropriate.
+ </para><para>
+
+ Some macros are available to extract information from the error code,
+ <function>raw1394_errcode_to_errno</function> can be used to convert it to an errno number of
+ roughly the same meaning.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-errcode-to-errno">raw1394_errcode_to_errno</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_errcode_to_errno</refname>
+ <refpurpose>
+ convert libraw1394 errcode to errno
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_errcode_to_errno </function></funcdef>
+ <paramdef>raw1394_errcode_t <parameter>errcode</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>errcode</parameter></term>
+ <listitem>
+ <para>
+ the error code to convert
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ The error code as retrieved by <function>raw1394_get_errcode</function> is converted into a
+ roughly equivalent errno number and returned. <constant>0xdead</constant> is returned for an
+ illegal errcode.
+ </para><para>
+
+ It is intended to be used to decide what to do (retry, give up, report error)
+ for those programs that aren't interested in details, since these get lost in
+ the conversion. However the returned errnos are equivalent in source code
+ meaning only, the associated text of e.g. <function>perror</function> is not necessarily
+ meaningful.
+ </para><para>
+
+ Returned values are <constant>EAGAIN</constant> (retrying might succeed, also generation number
+ mismatch), <constant>EREMOTEIO</constant> (other node had internal problems), <constant>EPERM</constant> (operation
+ not allowed on this address, e.g. write on read-only location), <constant>EINVAL</constant>
+ (invalid argument) and <constant>EFAULT</constant> (invalid pointer).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-new-handle">raw1394_new_handle</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_new_handle</refname>
+ <refpurpose>
+ create new handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>raw1394handle_t <function>raw1394_new_handle </function></funcdef>
+ <paramdef> <parameter>void</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>void</parameter></term>
+ <listitem>
+ <para>
+ no arguments
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ </para><para>
+
+ Creates and returns a new handle which can (after being set up) control one
+ port. It is not allowed to use the same handle in multiple threads or forked
+ processes. It is allowed to create and use multiple handles, however. Use
+ one handle per thread which needs it in the multithreaded case.
+ </para><para>
+
+ Returns the created handle or <constant>NULL</constant> when initialization fails. In the latter
+ case errno either contains some OS specific error code or <constant>0</constant> if the error is
+ that libraw1394 and raw1394 don't support each other's protocol versions.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-destroy-handle">raw1394_destroy_handle</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_destroy_handle</refname>
+ <refpurpose>
+ deallocate handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void <function>raw1394_destroy_handle </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ handle to deallocate
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Closes connection with raw1394 on this handle and deallocates everything
+ associated with it. It is safe to pass <constant>NULL</constant> as handle, nothing is done in
+ this case.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-new-handle-on-port">raw1394_new_handle_on_port</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_new_handle_on_port</refname>
+ <refpurpose>
+ create a new handle and bind it to a port
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>raw1394handle_t <function>raw1394_new_handle_on_port </function></funcdef>
+ <paramdef>int <parameter>port</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>port</parameter></term>
+ <listitem>
+ <para>
+ port to connect to (same as argument to <function>raw1394_set_port</function>)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Same as <function>raw1394_new_handle</function>, but also binds the handle to the
+ specified 1394 port. Equivalent to <function>raw1394_new_handle</function> followed by
+ <function>raw1394_get_port_info</function> and <function>raw1394_set_port</function>. Useful for
+ command-line programs that already know what port they want. If
+ <function>raw1394_set_port</function> returns ESTALE, retries automatically.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-busreset-notify">raw1394_busreset_notify</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_busreset_notify</refname>
+ <refpurpose>
+ Switch off/on busreset-notification for handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_busreset_notify </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>off_on_switch</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>off_on_switch</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ ==0 success
+ !=0 failure
+ off_on_switch .... RAW1394_NOTIFY_OFF or RAW1394_NOTIFY_ON
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-fd">raw1394_get_fd</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_fd</refname>
+ <refpurpose>
+ get the communication file descriptor
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_get_fd </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the fd used for communication with the raw1394 kernel module. This
+ can be used for <function>select</function>/<function>poll</function> calls if you wait on other fds or can be
+ integrated into another event loop (e.g. from a GUI application framework).
+ It can also be used to set/remove the O_NONBLOCK flag using <function>fcntl</function> to modify
+ the blocking behaviour in <function>raw1394_loop_iterate</function>. It must not be used for
+ anything else.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-userdata">raw1394_set_userdata</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_userdata</refname>
+ <refpurpose>
+ associate user data with a handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void <function>raw1394_set_userdata </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>void * <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ user data (pointer)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Allows to associate one void pointer with a handle. libraw1394 does not care
+ about the data, it just stores it in the handle allowing it to be retrieved
+ at any time with <function>raw1394_get_userdata</function>. This can be useful when multiple
+ handles are used, so that callbacks can identify the handle.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-userdata">raw1394_get_userdata</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_userdata</refname>
+ <refpurpose>
+ retrieve user data from handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void * <function>raw1394_get_userdata </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the user data pointer associated with the handle using
+ <function>raw1394_set_userdata</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-local-id">raw1394_get_local_id</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_local_id</refname>
+ <refpurpose>
+ get node ID of the current port
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>nodeid_t <function>raw1394_get_local_id </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the node ID of the local node connected to which the handle is
+ connected. This value can change with every bus reset.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-irm-id">raw1394_get_irm_id</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_irm_id</refname>
+ <refpurpose>
+ get node ID of isochronous resource manager
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>nodeid_t <function>raw1394_get_irm_id </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the node ID of the isochronous resource manager of the bus the handle
+ is connected to. This value may change with every bus reset.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-nodecount">raw1394_get_nodecount</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_nodecount</refname>
+ <refpurpose>
+ get number of nodes on the bus
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_get_nodecount </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Returns the number of nodes on the bus to which the handle is connected.
+ This value can change with every bus reset. Since the root node always has
+ the highest node ID, this number can be used to determine that ID (it's
+ LOCAL_BUS|(count-1)).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-port-info">raw1394_get_port_info</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_port_info</refname>
+ <refpurpose>
+ get information about available ports
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_get_port_info </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>struct raw1394_portinfo * <parameter>pinf</parameter></paramdef>
+ <paramdef>int <parameter>maxports</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>pinf</parameter></term>
+ <listitem>
+ <para>
+ pointer to an array of struct raw1394_portinfo
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>maxports</parameter></term>
+ <listitem>
+ <para>
+ number of elements in <parameter>pinf</parameter>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Before you can set which port to use, you have to use this function to find
+ out which ports exist.
+ </para><para>
+
+ If your program is interactive, you should present the user with this list to
+ let them decide which port to use if there is more than one. A
+ non-interactive program (and probably interactive ones, too) should provide a
+ command line option to choose the port.
+ </para><para>
+
+ Returns the number of ports and writes information about them into <parameter>pinf</parameter>, but
+ not into more than <parameter>maxports</parameter> elements. If <parameter>maxports</parameter> is <constant>0</constant>, <parameter>pinf</parameter> can be
+ <constant>NULL</constant>, too.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-port">raw1394_set_port</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_port</refname>
+ <refpurpose>
+ choose port for handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_set_port </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>port</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>port</parameter></term>
+ <listitem>
+ <para>
+ port to connect to (corresponds to index of struct raw1394_portinfo)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function connects the handle to the port given (as queried with
+ <function>raw1394_get_port_info</function>). If successful, <function>raw1394_get_port_info</function> and
+ <function>raw1394_set_port</function> are not allowed to be called afterwards on this handle.
+ To make up for this, all the other functions (those handling asynchronous and
+ isochronous transmissions) can now be called.
+ </para><para>
+
+ Returns <constant>0</constant> for success and -1 for failure with errno set appropriately. A
+ possible failure mode is with errno = <constant>ESTALE</constant>, in this case the configuration
+ has changed since the call to <function>raw1394_get_port_info</function> and it has to be called
+ again to update your view of the available ports.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-reset-bus">raw1394_reset_bus</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_reset_bus</refname>
+ <refpurpose>
+ initiate bus reset
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_reset_bus </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function initiates a bus reset on the connected port. Usually this is
+ not necessary and should be avoided, this function is here for low level bus
+ control and debugging.
+ </para>
+</refsect1>
+<refsect1>
+ <title>Returns</title>
+ <para>
+ <constant>0</constant> for success and -1 for failure with errno set appropriately.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-reset-bus-new">raw1394_reset_bus_new</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_reset_bus_new</refname>
+ <refpurpose>
+ Reset the connected bus (with certain type).
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_reset_bus_new </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>type</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>type</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ -1 failure
+ 0 success
+ type .... RAW1394_SHORT_RESET or RAW1394_LONG_RESET
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-loop-iterate">raw1394_loop_iterate</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_loop_iterate</refname>
+ <refpurpose>
+ get and process one event message
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_loop_iterate </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Get one new message through handle and process it with the registered message
+ handler. This function will return <constant>-1</constant> for an error or the return value of
+ the handler which got executed. The default handlers always return zero.
+ </para><para>
+
+ Note that some other library functions may call this function multiple times
+ to wait for their completion, some handler return values may get lost if you
+ use these.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-bus-reset-handler">raw1394_set_bus_reset_handler</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_bus_reset_handler</refname>
+ <refpurpose>
+ set bus reset handler
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>bus_reset_handler_t <function>raw1394_set_bus_reset_handler </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>bus_reset_handler_t <parameter>new_h</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_h</parameter></term>
+ <listitem>
+ <para>
+ pointer to new handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Sets the handler to be called on every bus reset to <parameter>new_h</parameter> and returns the
+ old handler. The default handler just calls <function>raw1394_update_generation</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-generation">raw1394_get_generation</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_generation</refname>
+ <refpurpose>
+ get generation number of handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>unsigned int <function>raw1394_get_generation </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function returns the generation number associated with the handle. The
+ generation number is incremented on every bus reset, and every transaction
+ started by raw1394 is tagged with the stored generation number. If these
+ don't match, the transaction will abort with an error.
+ </para><para>
+
+ The generation number of the handle is not automatically updated,
+ <function>raw1394_update_generation</function> has to be used for this.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-update-generation">raw1394_update_generation</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_update_generation</refname>
+ <refpurpose>
+ set generation number of handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>void <function>raw1394_update_generation </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>generation</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>generation</parameter></term>
+ <listitem>
+ <para>
+ new generation number
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function sets the generation number of the handle to <parameter>gen</parameter>. All requests
+ that apply to a single node ID are tagged with this number and abort with an
+ error if that is different from the generation number kept in the kernel.
+ This avoids acting on the wrong node which may have changed its ID in a bus
+ reset.
+ </para><para>
+
+ You should call this within your bus reset handler with an incremented value.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-tag-handler">raw1394_set_tag_handler</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_tag_handler</refname>
+ <refpurpose>
+ set request completion handler
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>tag_handler_t <function>raw1394_set_tag_handler </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>tag_handler_t <parameter>new_h</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_h</parameter></term>
+ <listitem>
+ <para>
+ pointer to new handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Sets the handler to be called whenever a request completes to <parameter>new_h</parameter> and
+ returns the old handler. The default handler interprets the tag as a pointer
+ to a &amp;struct raw1394_reqhandle and calls the callback in there.
+ </para><para>
+
+ Care must be taken when replacing the tag handler and calling the synchronous
+ versions of the transaction functions (i.e. <function>raw1394_read</function>, <function>raw1394_write</function>,
+ <function>raw1394_lock</function>, <function>raw1394_iso_write</function>) since these do pass pointers to &amp;struct
+ raw1394_reqhandle as the tag and expect the callback to be invoked.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-arm-tag-handler">raw1394_set_arm_tag_handler</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_arm_tag_handler</refname>
+ <refpurpose>
+ set the async request handler
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>arm_tag_handler_t <function>raw1394_set_arm_tag_handler </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>arm_tag_handler_t <parameter>new_h</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_h</parameter></term>
+ <listitem>
+ <para>
+ pointer to new handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Set the handler that will be called when an async read/write/lock arm_request
+ arrived. The default action is to call the arm_callback in the
+ raw1394_arm_reqhandle pointed to by arm_tag. Returns old handler.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-fcp-handler">raw1394_set_fcp_handler</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_fcp_handler</refname>
+ <refpurpose>
+ set FCP handler
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>fcp_handler_t <function>raw1394_set_fcp_handler </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>fcp_handler_t <parameter>new_h</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_h</parameter></term>
+ <listitem>
+ <para>
+ pointer to new handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Function Control Protocol is defined in IEC 61883-1.
+ </para><para>
+
+ Sets the handler to be called when either FCP command or FCP response
+ registers get written to <parameter>new_h</parameter> and returns the old handler. The default
+ handler does nothing.
+ </para><para>
+
+ In order to actually get FCP events, you have to enable it with
+ <function>raw1394_start_fcp_listen</function> and can stop it with <function>raw1394_stop_fcp_listen</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-int">int</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>int</refname>
+ <refpurpose>
+ This is the general request handler
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>typedef <function>int </function></funcdef>
+ <paramdef>* <parameter>req_callback_t</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>req_callback_t</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ </para><para>
+
+ It is used by the default tag handler
+ when a request completes, it calls the callback and passes it the data
+ pointer and the error code of the request.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-int">int</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>int</refname>
+ <refpurpose>
+ This is the general arm-request handle
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>typedef <function>int </function></funcdef>
+ <paramdef>* <parameter>arm_req_callback_t</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>arm_req_callback_t</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ (arm = address range mapping)
+ It is used by the default arm-tag handler when a request has been
+ received, it calls the arm_callback.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-arm-register">raw1394_arm_register</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_arm_register</refname>
+ <refpurpose>
+ register an AddressRangeMapping
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_arm_register </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>start</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>byte_t * <parameter>initial_value</parameter></paramdef>
+ <paramdef>octlet_t <parameter>arm_tag</parameter></paramdef>
+ <paramdef>arm_options_t <parameter>access_rights</parameter></paramdef>
+ <paramdef>arm_options_t <parameter>notification_options</parameter></paramdef>
+ <paramdef>arm_options_t <parameter>client_transactions</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>initial_value</parameter></term>
+ <listitem>
+ <para>
+ pointer to buffer containing (if necessary) initial value
+ NULL means undefined
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>arm_tag</parameter></term>
+ <listitem>
+ <para>
+ identifier for arm_tag_handler
+ (usually pointer to raw1394_arm_reqhandle)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>access_rights</parameter></term>
+ <listitem>
+ <para>
+ access-rights for registered addressrange handled
+ by kernel-part. Value is one or more binary or of the
+ following flags - ARM_READ, ARM_WRITE, ARM_LOCK
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>notification_options</parameter></term>
+ <listitem>
+ <para>
+ identifies for which type of request you want
+ to be notified. Value is one or more binary or of the
+ following flags - ARM_READ, ARM_WRITE, ARM_LOCK
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>client_transactions</parameter></term>
+ <listitem>
+ <para>
+ identifies for which type of request you want
+ to handle the request by the client application.
+ for those requests no response will be generated, but
+ has to be generated by the application.
+ Value is one or more binary or of the
+ following flags - ARM_READ, ARM_WRITE, ARM_LOCK
+ For each bit set here, notification_options and
+ access_rights will be ignored.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ ARM = Adress Range Mapping
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 ... success
+ &lt;0 ... failure
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-arm-unregister">raw1394_arm_unregister</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_arm_unregister</refname>
+ <refpurpose>
+ unregister an AddressRangeMapping
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_arm_unregister </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>start</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange for unregistering
+ (value of start have to be the same value
+ used for registering this adressrange)
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 ... success
+ &lt;0 ... failure
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-arm-set-buf">raw1394_arm_set_buf</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_arm_set_buf</refname>
+ <refpurpose>
+ set the buffer of an AdressRangeMapping
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_arm_set_buf </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>start</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>void * <parameter>buf</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buf</parameter></term>
+ <listitem>
+ <para>
+ pointer to buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function copies <parameter>length</parameter> bytes from user memory area <parameter>buf</parameter>
+ to one ARM block in kernel memory area
+ with start offset <parameter>start</parameter>.
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 ... success
+ &lt;0 ... failure, and errno - error code
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-arm-get-buf">raw1394_arm_get_buf</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_arm_get_buf</refname>
+ <refpurpose>
+ get the buffer of an AdressRangeMapping
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_arm_get_buf </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>start</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>void * <parameter>buf</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>start</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ identifies addressrange
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buf</parameter></term>
+ <listitem>
+ <para>
+ pointer to buffer
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function copies <parameter>length</parameter> bytes from one
+ ARM block in kernel memory area with start offset <parameter>start</parameter>
+ to user memory area <parameter>buf</parameter>
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 ... success
+ &lt;0 ... failure, and errno - error code
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-echo-request">raw1394_echo_request</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_echo_request</refname>
+ <refpurpose>
+ send an echo request to the driver
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_echo_request </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ arbitrary data; raw1394_loop_iterate will return it
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ the driver then send back the
+ same request. raw1394_loop_iterate will return data as return value,
+ when it processes the echo.
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 .... success
+ &lt;0 ... failure
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-wake-up">raw1394_wake_up</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_wake_up</refname>
+ <refpurpose>
+ wake up raw1394_loop_iterate
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_wake_up </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ (or a blocking read from the device
+ file). actually this calls raw1394_echo_request with 0 as data.
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 .... success
+ &lt;0 ... failure
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-phy-packet-write">raw1394_phy_packet_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_phy_packet_write</refname>
+ <refpurpose>
+ send physical request
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_phy_packet_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ examples of physical requests are linkon, physicalconfigurationpacket, etc.
+ </para>
+</refsect1>
+<refsect1>
+ <title>returns</title>
+ <para>
+ 0 .... success
+ &lt;0 ... failure
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-read">raw1394_start_read</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_read</refname>
+ <refpurpose>
+ initiate a read transaction
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_read </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>buffer</parameter></paramdef>
+ <paramdef>unsigned long <parameter>tag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ target node
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ address to read from
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ amount of data to read
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem>
+ <para>
+ pointer to buffer where data will be saved
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ data to identify the request to completion handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function starts the specified read request and returns <constant>0</constant> for success
+ and a negative number for an error, in which case errno will be set. If
+ <parameter>length</parameter> is <constant>4</constant> a quadlet read is initiated and a block read otherwise.
+ </para><para>
+
+ The transaction is only started, no success of the transaction is implied
+ with a successful return of this function. When the transaction completes, a
+ <function>raw1394_loop_iterate</function> will call the tag handler and pass it the tag and
+ error code of the transaction. <parameter>tag</parameter> should therefore be set to something
+ that uniquely identifies this transaction (e.g. a struct pointer casted to
+ unsigned long).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-write">raw1394_start_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_write</refname>
+ <refpurpose>
+ initiate a write transaction
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ <paramdef>unsigned long <parameter>tag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ target node
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ address to write to
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ amount of data to write
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ pointer to data to be sent
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ data to identify the request to completion handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function starts the specified write request and returns <constant>0</constant> for success
+ and a negative number for an error, in which case errno will be set. If
+ <parameter>length</parameter> is <constant>4</constant> a quadlet write is initiated and a block write otherwise.
+ </para><para>
+
+ The transaction is only started, no success of the transaction is implied
+ with a successful return of this function. When the transaction completes, a
+ <function>raw1394_loop_iterate</function> will call the tag handler and pass it the tag and
+ error code of the transaction. <parameter>tag</parameter> should therefore be set to something
+ that uniquely identifies this transaction (e.g. a struct pointer casted to
+ unsigned long).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-lock">raw1394_start_lock</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_lock</refname>
+ <refpurpose>
+ initiate a 32-bit compare-swap lock transaction
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_lock </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>unsigned int <parameter>extcode</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>data</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>arg</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>result</parameter></paramdef>
+ <paramdef>unsigned long <parameter>tag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ target node
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ address to read from
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>extcode</parameter></term>
+ <listitem>
+ <para>
+ extended transaction code determining the lock operation
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ data part of lock parameters
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>arg</parameter></term>
+ <listitem>
+ <para>
+ arg part of lock parameters
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>result</parameter></term>
+ <listitem>
+ <para>
+ address where return value will be written
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ data to identify the request to completion handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function starts the specified lock request and returns <constant>0</constant> for success
+ and a negative number for an error, in which case errno will be set.
+ </para><para>
+
+ The transaction is only started, no success of the transaction is implied
+ with a successful return of this function. When the transaction completes, a
+ <function>raw1394_loop_iterate</function> will call the tag handler and pass it the tag and
+ error code of the transaction. <parameter>tag</parameter> should therefore be set to something
+ that uniquely identifies this transaction (e.g. a struct pointer casted to
+ unsigned long).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-lock64">raw1394_start_lock64</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_lock64</refname>
+ <refpurpose>
+ initiate a 64-bit compare-swap lock transaction
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_lock64 </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>unsigned int <parameter>extcode</parameter></paramdef>
+ <paramdef>octlet_t <parameter>data</parameter></paramdef>
+ <paramdef>octlet_t <parameter>arg</parameter></paramdef>
+ <paramdef>octlet_t * <parameter>result</parameter></paramdef>
+ <paramdef>unsigned long <parameter>tag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ target node
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ address to read from
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>extcode</parameter></term>
+ <listitem>
+ <para>
+ extended transaction code determining the lock operation
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ data part of lock parameters
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>arg</parameter></term>
+ <listitem>
+ <para>
+ arg part of lock parameters
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>result</parameter></term>
+ <listitem>
+ <para>
+ address where return value will be written
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ data to identify the request to completion handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This function starts the specified lock request and returns <constant>0</constant> for success
+ and a negative number for an error, in which case errno will be set.
+ </para><para>
+
+ The transaction is only started, no success of the transaction is implied
+ with a successful return of this function. When the transaction completes, a
+ <function>raw1394_loop_iterate</function> will call the tag handler and pass it the tag and
+ error code of the transaction. <parameter>tag</parameter> should therefore be set to something
+ that uniquely identifies this transaction (e.g. a struct pointer casted to
+ unsigned long).
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-async-stream">raw1394_start_async_stream</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_async_stream</refname>
+ <refpurpose>
+ initiate asynchronous stream
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_async_stream </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ <paramdef>unsigned int <parameter>tag</parameter></paramdef>
+ <paramdef>unsigned int <parameter>sy</parameter></paramdef>
+ <paramdef>unsigned int <parameter>speed</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ <paramdef>unsigned long <parameter>rawtag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sy</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>speed</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rawtag</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Passes custom tag. Use pointer to raw1394_reqhandle if you use the standard
+ tag handler.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-async-send">raw1394_start_async_send</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_async_send</refname>
+ <refpurpose>
+ send an asynchronous packet
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_async_send </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>size_t <parameter>header_length</parameter></paramdef>
+ <paramdef>unsigned int <parameter>expect_response</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ <paramdef>unsigned long <parameter>rawtag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>header_length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>expect_response</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rawtag</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This starts sending an arbitrary async packet. It gets an array of quadlets
+ consisting of header and data (without CRC in between). Header information
+ is always in machine byte order, data (data block as well as quadlet data
+ in a read response for data quadlet) shall be in big endian byte order.
+ expect_response indicates, if we expect a response (i.e. if we will get the
+ tag back after the packet was sent or after a response arrived). length is
+ the length of the complete packet (header_length + length of the data block).
+ The main purpose of this function is to send responses for incoming
+ transactions, that are handled by the application.
+ Do not use that function, unless you really know, what you do! Sending
+ corrupt packet may lead to weird results.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-read">raw1394_read</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_read</refname>
+ <refpurpose>
+ send async read request to a node and wait for response.
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_read </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>buffer</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This does the complete transaction and will return when it's finished. It
+ will call <function>raw1394_loop_iterate</function> as often as necessary, return values of
+ handlers called will be therefore lost.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-write">raw1394_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_write</refname>
+ <refpurpose>
+ send async write request to a node and wait for response.
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This does the complete transaction and will return when it's finished. It
+ will call <function>raw1394_loop_iterate</function> as often as necessary, return values of
+ handlers called will be therefore lost.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-lock">raw1394_lock</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_lock</refname>
+ <refpurpose>
+ send 32-bit compare-swap lock request and wait for response.
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_lock </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>unsigned int <parameter>extcode</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>data</parameter></paramdef>
+ <paramdef>quadlet_t <parameter>arg</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>result</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>extcode</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>arg</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>result</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This does the complete transaction and will return when it's finished. It
+ will call <function>raw1394_loop_iterate</function> as often as necessary, return values of
+ handlers called will be therefore lost.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-lock64">raw1394_lock64</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_lock64</refname>
+ <refpurpose>
+ send 64-bit compare-swap lock request and wait for response.
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_lock64 </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>nodeid_t <parameter>node</parameter></paramdef>
+ <paramdef>nodeaddr_t <parameter>addr</parameter></paramdef>
+ <paramdef>unsigned int <parameter>extcode</parameter></paramdef>
+ <paramdef>octlet_t <parameter>data</parameter></paramdef>
+ <paramdef>octlet_t <parameter>arg</parameter></paramdef>
+ <paramdef>octlet_t * <parameter>result</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>node</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>addr</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>extcode</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>arg</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>result</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ This does the complete transaction and will return when it's finished. It
+ will call <function>raw1394_loop_iterate</function> as often as necessary, return values of
+ handlers called will be therefore lost.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-async-stream">raw1394_async_stream</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_async_stream</refname>
+ <refpurpose>
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_async_stream </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ <paramdef>unsigned int <parameter>tag</parameter></paramdef>
+ <paramdef>unsigned int <parameter>sy</parameter></paramdef>
+ <paramdef>unsigned int <parameter>speed</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sy</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>speed</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-async-send">raw1394_async_send</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_async_send</refname>
+ <refpurpose>
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_async_send </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>size_t <parameter>header_length</parameter></paramdef>
+ <paramdef>unsigned int <parameter>expect_response</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>header_length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>expect_response</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-fcp-listen">raw1394_start_fcp_listen</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_fcp_listen</refname>
+ <refpurpose>
+ enable reception of FCP events
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_fcp_listen </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ FCP = Function Control Protocol (see IEC 61883-1)
+ Enables the reception of FCP events (writes to the FCP_COMMAND or
+ FCP_RESPONSE address ranges) on <parameter>handle</parameter>. FCP requests are then passed to the
+ callback specified with <function>raw1394_set_fcp_handler</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-stop-fcp-listen">raw1394_stop_fcp_listen</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_stop_fcp_listen</refname>
+ <refpurpose>
+ disable reception of FCP events
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_stop_fcp_listen </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ Stops the reception of FCP events (writes to the FCP_COMMAND or
+ FCP_RESPONSE address ranges) on <parameter>handle</parameter>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-libversion">raw1394_get_libversion</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_libversion</refname>
+ <refpurpose>
+ Returns the version string
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>const char * <function>raw1394_get_libversion </function></funcdef>
+ <paramdef> <parameter>void</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>void</parameter></term>
+ <listitem>
+ <para>
+ no arguments
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ </para><para>
+
+ Instead, typically, one uses 'pkg-config --mod-version libraw1394'
+ Might be useful for an application.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-update-config-rom">raw1394_update_config_rom</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_update_config_rom</refname>
+ <refpurpose>
+ updates the configuration rom of a host
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_update_config_rom </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>const quadlet_t * <parameter>new_rom</parameter></paramdef>
+ <paramdef>size_t <parameter>size</parameter></paramdef>
+ <paramdef>unsigned char <parameter>rom_version</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_rom</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>size</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rom_version</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ <parameter>rom_version</parameter> must be the current
+ version, otherwise it will fail with return value -1.
+ Return value -2 indicates that the new rom version is too big.
+ Return value 0 indicates success
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-get-config-rom">raw1394_get_config_rom</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_get_config_rom</refname>
+ <refpurpose>
+ reads the current version of the configuration rom of a host
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_get_config_rom </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>buffer</parameter></paramdef>
+ <paramdef>size_t <parameter>buffersize</parameter></paramdef>
+ <paramdef>size_t * <parameter>rom_size</parameter></paramdef>
+ <paramdef>unsigned char * <parameter>rom_version</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffersize</parameter></term>
+ <listitem>
+ <para>
+ is the size of the buffer, <parameter>rom_size</parameter>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rom_size</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rom_version</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ returns the size of the current rom image. <parameter>rom_version</parameter> is the
+ version number of the fetched rom.
+ return value -1 indicates, that the buffer was too small,
+ 0 indicates success.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-int">int</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>int</refname>
+ <refpurpose>
+ DEPRECATED
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>typedef <function>int </function></funcdef>
+ <paramdef>* <parameter>iso_handler_t</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>iso_handler_t</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-set-iso-handler">raw1394_set_iso_handler</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_set_iso_handler</refname>
+ <refpurpose>
+ set isochronous packet handler (DEPRECATED)
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>iso_handler_t <function>raw1394_set_iso_handler </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ <paramdef>iso_handler_t <parameter>new_h</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>new_h</parameter></term>
+ <listitem>
+ <para>
+ pointer to new handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para><para>
+
+ Sets the handler to be called when an isochronous packet is received to
+ <parameter>new_h</parameter> and returns the old handler. The default handler does nothing.
+ </para><para>
+
+ In order to actually get iso packet events, receiving on a specific channel
+ first has to be enabled with <function>raw1394_start_iso_rcv</function> and can be stopped again
+ with <function>raw1394_stop_iso_rcv</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-iso-rcv">raw1394_start_iso_rcv</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_iso_rcv</refname>
+ <refpurpose>
+ enable isochronous receiving (DEPRECATED)
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_iso_rcv </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ channel number to start receiving on
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para><para>
+
+ Enables the reception of isochronous packets in <parameter>channel</parameter> on <parameter>handle</parameter>.
+ Isochronous packets are then passed to the callback specified with
+ <function>raw1394_set_iso_handler</function>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-stop-iso-rcv">raw1394_stop_iso_rcv</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_stop_iso_rcv</refname>
+ <refpurpose>
+ stop isochronous receiving (DEPRECATED)
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_stop_iso_rcv </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ channel to stop receiving on
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para><para>
+
+ Stops the reception of isochronous packets in <parameter>channel</parameter> on <parameter>handle</parameter>.
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-start-iso-write">raw1394_start_iso_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_start_iso_write</refname>
+ <refpurpose>
+ initiate an isochronous packet write (DEPRECATED)
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_start_iso_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ <paramdef>unsigned int <parameter>tag</parameter></paramdef>
+ <paramdef>unsigned int <parameter>sy</parameter></paramdef>
+ <paramdef>unsigned int <parameter>speed</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ <paramdef>unsigned long <parameter>rawtag</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ channel number on which to send on
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ data to be put into packet's tag field
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sy</parameter></term>
+ <listitem>
+ <para>
+ data to be put into packet's sy field
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>speed</parameter></term>
+ <listitem>
+ <para>
+ speed at which to send
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ amount of data to send
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ pointer to data to send
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>rawtag</parameter></term>
+ <listitem>
+ <para>
+ data to identify the request to completion handler
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para><para>
+
+ This function starts the specified isochronous packet transmission and
+ returns <constant>0</constant> for success and a negative number for an error, in which case
+ errno will be set.
+ </para><para>
+
+ When the send completes, a <function>raw1394_loop_iterate</function> will call the tag handler
+ and pass it the tag and error code of the transaction. <parameter>tag</parameter> should therefore
+ be set to something that uniquely identifies this transaction (e.g. a struct
+ pointer casted to unsigned long).
+ </para><para>
+
+ Isochronous packets are automatically
+ </para>
+</refsect1>
+</refentry>
+
+<refentry>
+<refmeta>
+<refentrytitle><phrase id="API-raw1394-iso-write">raw1394_iso_write</phrase></refentrytitle>
+</refmeta>
+<refnamediv>
+ <refname>raw1394_iso_write</refname>
+ <refpurpose>
+ DEPRECATED
+ </refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+ <title>Synopsis</title>
+ <funcsynopsis><funcprototype>
+ <funcdef>int <function>raw1394_iso_write </function></funcdef>
+ <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef>
+ <paramdef>unsigned int <parameter>channel</parameter></paramdef>
+ <paramdef>unsigned int <parameter>tag</parameter></paramdef>
+ <paramdef>unsigned int <parameter>sy</parameter></paramdef>
+ <paramdef>unsigned int <parameter>speed</parameter></paramdef>
+ <paramdef>size_t <parameter>length</parameter></paramdef>
+ <paramdef>quadlet_t * <parameter>data</parameter></paramdef>
+ </funcprototype></funcsynopsis>
+</refsynopsisdiv>
+<refsect1>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>handle</parameter></term>
+ <listitem>
+ <para>
+ libraw1394 handle
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>channel</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>tag</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sy</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>speed</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>length</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>data</parameter></term>
+ <listitem>
+ <para>
+ -- undescribed --
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</refsect1>
+<refsect1>
+ <title>Description</title>
+ <para>
+ DEPRECATED
+ </para>
+</refsect1>
+</refentry>
- <para>
- <function>raw1394_get_local_id()</function> returns the node ID of the
- local node (i.e. the hardware the driver is controlling directly).
- <function>raw1394_get_irm_id()</function> returns the node ID of the
- node that has become isochronous resource manager.
- <function>raw1394_get_nodecount</function> returns the number of nodes
- currently on the bus (including the local node).
- </para>
- </refsect1>
- </refentry>
</chapter>
</book>