You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(7) |
Jul
(2) |
Aug
(4) |
Sep
(5) |
Oct
(1) |
Nov
(11) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(8) |
Feb
(8) |
Mar
(1) |
Apr
|
May
(13) |
Jun
(14) |
Jul
(1) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(16) |
Nov
(4) |
Dec
|
2003 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
(22) |
Aug
|
Sep
(5) |
Oct
(1) |
Nov
(3) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(10) |
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: SVN U. <dde...@li...> - 2004-11-18 05:24:27
|
Author: ddennedy Date: 2004-11-18 00:24:13 -0500 (Thu, 18 Nov 2004) New Revision: 147 Modified: trunk/NEWS trunk/src/raw1394.h trunk/tools/dumpiso.c trunk/tools/sendiso.c Log: port iso examples to rawiso API Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2004-11-11 03:49:07 UTC (rev 146) +++ trunk/NEWS 2004-11-18 05:24:13 UTC (rev 147) @@ -14,6 +14,7 @@ - deprecate old isochronous API. - move API comment documentation to header and reformat header comments as kernel-doc (use linux/scripts/kernel-doc to extract and format them). +- updated tools/dumpiso and tools/sendiso to new isochronous API. Version 0.10: Modified: trunk/src/raw1394.h =================================================================== --- trunk/src/raw1394.h 2004-11-11 03:49:07 UTC (rev 146) +++ trunk/src/raw1394.h 2004-11-18 05:24:13 UTC (rev 147) @@ -146,7 +146,7 @@ * @max_packet_size: largest packet you need to handle, in bytes (not including * the isochronous header) * @channel: isochronous channel to receive - * @speed: speed at which to receive + * @mode: bufferfill or packet per buffer mode * @irq_interval: maximum latency of wake-ups, in packets * (-1 if you don't care) * Modified: trunk/tools/dumpiso.c =================================================================== --- trunk/tools/dumpiso.c 2004-11-11 03:49:07 UTC (rev 146) +++ trunk/tools/dumpiso.c 2004-11-18 05:24:13 UTC (rev 147) @@ -1,3 +1,13 @@ +/* + * libraw1394 - library for raw access to the 1394 bus with the Linux subsystem. + * + * Copyright (C) 1999,2000 Andreas Bombe + * + * This library is licensed under the GNU Lesser General Public License (LGPL), + * version 2.1 or later. See the file COPYING.LIB in the distribution for + * details. + */ + #include <stdlib.h> #include <stdio.h> #include <unistd.h> @@ -7,14 +17,15 @@ #include "../src/raw1394.h" +#define BUFFER 1000 +#define PACKET_MAX 4096 u_int64_t listen_channels; unsigned long which_port; char *filename; int file; +enum raw1394_iso_dma_recv_mode mode = RAW1394_DMA_DEFAULT; -int done; - void usage_exit(int exitcode) { fprintf(stderr, @@ -70,6 +81,8 @@ optarg); usage_exit(1); } + } else { + mode = RAW1394_DMA_PACKET_PER_BUFFER; } if (chan2 < chan1) { @@ -160,28 +173,38 @@ write_header(); } -int iso_packet_handler(raw1394handle_t handle, int channel, size_t length, - quadlet_t *data) +static enum raw1394_iso_disposition +iso_handler(raw1394handle_t handle, unsigned char *data, + unsigned int length, unsigned char channel, + unsigned char tag, unsigned char sy, unsigned int cycle, + unsigned int dropped) { int ret; - static unsigned int count; + static unsigned int counter = 0; - count++; - fprintf(stderr, "\r%u", count); - fflush(stderr); + if (++counter % 1000 == 0) + fprintf(stderr, "\r%uK packets", counter/1000); + /* write header */ + write(file, &length, sizeof(length)); + write(file, &channel, sizeof(channel)); + write(file, &tag, sizeof(tag)); + write(file, &sy, sizeof(sy)); + sy = 0; + write(file, &sy, sizeof(sy)); + while (length) { ret = write(file, data, length); if (ret < 0) { perror("data write"); - exit(1); + return RAW1394_ISO_ERROR; } length -= ret; - data = (quadlet_t *)(((char *)data) + ret); + data += ret; } - return 0; + return RAW1394_ISO_OK; } int main(int argc, char **argv) @@ -221,16 +244,24 @@ open_dumpfile(); - for (i = 0; i < 64; i++) { - if (!(listen_channels & 1ULL << i)) continue; + if (mode == RAW1394_DMA_DEFAULT) { + raw1394_iso_multichannel_recv_init(handle, iso_handler, + BUFFER, 2048, -1); /* >2048 makes rawiso stall! */ + raw1394_iso_recv_set_channel_mask(handle, listen_channels); - raw1394_set_iso_handler(handle, i, iso_packet_handler); - raw1394_start_iso_rcv(handle, i); + } else for (i = 0; i < 64; i++) { + if (!(listen_channels & 1ULL << i)) + continue; + raw1394_iso_recv_init(handle, iso_handler, BUFFER, PACKET_MAX, + i, mode, -1); } + raw1394_iso_recv_start(handle, -1, -1, 0); - /* This should actually do something with the done variable, and set up - signal handlers. */ - while (!done) raw1394_loop_iterate(handle); + while (raw1394_loop_iterate(handle) == 0); + fprintf(stderr, "\n"); + raw1394_iso_shutdown(handle); + raw1394_destroy_handle(handle); + return 0; } Modified: trunk/tools/sendiso.c =================================================================== --- trunk/tools/sendiso.c 2004-11-11 03:49:07 UTC (rev 146) +++ trunk/tools/sendiso.c 2004-11-18 05:24:13 UTC (rev 147) @@ -18,6 +18,8 @@ #include "../src/raw1394.h" +#define BUFFER 1000 +#define PACKET_MAX 4096 unsigned long which_port; char *filename; @@ -86,15 +88,15 @@ switch (speed) { case 1: case 100: - speed = 0; + speed = RAW1394_ISO_SPEED_100; break; case 2: case 200: - speed = 1; + speed = RAW1394_ISO_SPEED_200; break; case 4: case 400: - speed = 2; + speed = RAW1394_ISO_SPEED_400; break; default: fprintf(stderr, @@ -134,67 +136,73 @@ if (argc) filename = *argv; } - -static int dec_int_callback(raw1394handle_t unused, void *counter, raw1394_errcode_t unused_errcode) -{ - (*(int *)counter)--; - return 0; -} -static int pend_req; - -#define BUF_SIZE 65536 -#define BUF_OVER BUF_SIZE +#define BUF_SIZE 4096 +#define BUF_HEAD 8 void send_file_once(raw1394handle_t handle, int file) { int count, i, ret; unsigned channel, tag, sy; size_t length; - static char buffer[BUF_SIZE + BUF_OVER]; + static char buffer[BUF_SIZE + BUF_HEAD]; + static unsigned int counter = 0; + static int inited = 0; - static struct raw1394_reqhandle rh = { - dec_int_callback, - &pend_req - }; - while (1) { - while (pend_req > 30) raw1394_loop_iterate(handle); - - count = read(file, buffer, BUF_SIZE); + count = read(file, buffer, BUF_HEAD); if (count < 0) { perror("read"); exit(1); } - if (count < 4) return; + if (count < BUF_HEAD) + return; i = 0; - while (i < count) { - length = (buffer[i] << 8) | buffer[i + 1]; - channel = buffer[i + 2] & 0x3f; - tag = buffer[i + 2] >> 6; - sy = buffer[i + 3] & 0xf; - - i += 4; - while (i + length > count) { - ret = read(file, buffer + BUF_SIZE, - i + length - BUF_SIZE); + length = ((unsigned int *)buffer)[i]; + channel = buffer[i + 4]; + tag = buffer[i + 5]; + sy = buffer[i + 6]; + + i += BUF_HEAD; + while (count < length + BUF_HEAD) { + ret = read(file, buffer + count, + length - count + BUF_HEAD); - if (ret < 0) { - perror("read"); - exit(1); - } + if (ret < 0) { + perror("read"); + exit(1); - if (ret == 0) return; + } + if (ret == 0) + return; - count += ret; + count += ret; + } + + if (inited == 0) { + /* + fprintf(stderr, "transmitting first packet with length " + "%d on channel %d with tag %d and sy %d\n", + length, channel, tag, sy); + */ + ret = raw1394_iso_xmit_init(handle, NULL, BUFFER, + PACKET_MAX, channel, speed, -1); + if (ret < 0) { + perror("raw1394_iso_xmit_init"); + exit(1); } - - raw1394_start_iso_write(handle, channel, tag, sy, - speed, length, - (quadlet_t *)(buffer + i), - (unsigned long)&rh); - i += length; - pend_req++; + raw1394_iso_xmit_start(handle, -1, -1); + inited = 1; } + + if (++counter % 1000 == 0) + fprintf(stderr, "\r%uK packets", counter/1000); + + ret = raw1394_iso_xmit_write(handle, &buffer[i], + length, tag, sy); + if (ret < 0) { + perror("\nraw1394_iso_xmit_write"); + exit(1); + } } } @@ -299,5 +307,9 @@ if (filename) send_iso_file(handle); + fprintf(stderr, "\n"); + raw1394_iso_shutdown(handle); + raw1394_destroy_handle(handle); + return 0; } |
From: SVN U. <dde...@li...> - 2004-11-11 03:49:20
|
Author: ddennedy Date: 2004-11-10 22:49:07 -0500 (Wed, 10 Nov 2004) New Revision: 146 Modified: trunk/doc/libraw1394.sgml Log: fix version and copyright in docs Modified: trunk/doc/libraw1394.sgml =================================================================== --- trunk/doc/libraw1394.sgml 2004-11-11 03:31:20 UTC (rev 145) +++ trunk/doc/libraw1394.sgml 2004-11-11 03:49:07 UTC (rev 146) @@ -4,11 +4,11 @@ <bookinfo> <title>libraw1394</title> - <subtitle>version 1.0.0</subtitle> + <subtitle>version 1.1.0</subtitle> <copyright> - <year>2001</year> - <holder>Andreas Bombe</holder> + <year>2001-2004</year> + <holder>Andreas Bombe, Dan Maas, Manfred Weihs, and Christian Toegel</holder> </copyright> </bookinfo> |
From: SVN U. <dde...@li...> - 2004-11-11 03:31:29
|
Author: ddennedy Date: 2004-11-10 22:31:20 -0500 (Wed, 10 Nov 2004) New Revision: 145 Removed: trunk/libraw1394.m4 Modified: trunk/configure.ac Log: remove m4, remove -O2 from CFLAGS Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2004-11-11 03:19:09 UTC (rev 144) +++ trunk/configure.ac 2004-11-11 03:31:20 UTC (rev 145) @@ -25,7 +25,7 @@ AC_SUBST(lt_age) -CFLAGS=${CFLAGS:-"-Wall -O2"} +#CFLAGS=${CFLAGS:-"-Wall"} AC_OUTPUT([ Makefile libraw1394.pc Deleted: trunk/libraw1394.m4 =================================================================== --- trunk/libraw1394.m4 2004-11-11 03:19:09 UTC (rev 144) +++ trunk/libraw1394.m4 2004-11-11 03:31:20 UTC (rev 145) @@ -1,159 +0,0 @@ -dnl -dnl AC_LIB_RAW1394_FLAGS -dnl This just unconditionally sets the options. It should offer an option for -dnl explicitly giving the path to libraw1394 on the configure command line. -dnl -AC_DEFUN(AC_LIB_RAW1394_FLAGS, [ -LIBRAW1394_CPPFLAGS="" -LIBRAW1394_CFLAGS="" -LIBRAW1394_LIBS="-lraw1394" - -AC_SUBST(LIBRAW1394_CPPFLAGS) -AC_SUBST(LIBRAW1394_CFLAGS) -AC_SUBST(LIBRAW1394_LIBS) -]) - -dnl -dnl AC_LIB_RAW1394_HEADERS([ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]]) -dnl -AC_DEFUN(AC_LIB_RAW1394_HEADERS, [ -AC_REQUIRE([AC_LIB_RAW1394_FLAGS]) - -ac_libraw1394_save_cppflags=$CPPFLAGS -CPPFLAGS="$LIBRAW1394_CPPFLAGS $CPPFLAGS" - -ac_libraw1394_headers=no -AC_CHECK_HEADER(libraw1394/raw1394.h, ac_libraw1394_headers=yes) - -CPPFLAGS=$ac_libraw1394_save_cppflags - -if test $ac_libraw1394_headers = yes ; then - ifelse([$1], , :, $1) -else - ifelse([$2], , :, $2) -fi -]) - - -dnl -dnl AC_LIB_RAW1394_LIBVERSION(MINIMUMVERSION[,ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]]) -dnl -AC_DEFUN(AC_LIB_RAW1394_LIBVERSION, [ -AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE([AC_LIB_RAW1394_FLAGS]) - -ac_libraw1394_save_cppflags=$CPPFLAGS -ac_libraw1394_save_cflags=$CFLAGS -ac_libraw1394_save_libs=$LIBS -CPPFLAGS="$LIBRAW1394_CPPFLAGS $CPPFLAGS" -CFLAGS="$LIBRAW1394_CFLAGS $CFLAGS" -LIBS="$LIBRAW1394_LIBS $LIBS" - -ac_libraw1394_versiontest_success=no -ac_libraw1394_ver_symbol=`echo __libraw1394_version_$1 | sed 's/\./_/g'` - -AC_TRY_LINK([], [{ - extern char $ac_libraw1394_ver_symbol; - $ac_libraw1394_ver_symbol++; -}], ac_libraw1394_versiontest_success=yes) - -CPPFLAGS=$ac_libraw1394_save_cppflags -CFLAGS=$ac_libraw1394_save_cflags -LIBS=$ac_libraw1394_save_libs - -if test $ac_libraw1394_versiontest_success = yes; then - ifelse([$2], , :, $2) -else - ifelse([$3], , :, $3) -fi -]) - - -dnl -dnl AC_LIB_RAW1394_RUNTEST(MINIMUMVERSION[,ACTION_IF_FOUND -dnl [,ACTION_IF_NOT_FOUND[,ACTION_IF_CROSS_COMPILING]]]) -AC_DEFUN(AC_LIB_RAW1394_RUNTEST, [ -ac_libraw1394_save_cppflags=$CPPFLAGS -ac_libraw1394_save_cflags=$CFLAGS -ac_libraw1394_save_libs=$LIBS -CPPFLAGS="$LIBRAW1394_CPPFLAGS $CPPFLAGS" -CFLAGS="$LIBRAW1394_CFLAGS $CFLAGS" -LIBS="$LIBRAW1394_LIBS $LIBS" - -dnl This program compares two version strings and returns with code 0 if -dnl req_ver <= lib_ver, returns 1 otherwise. -dnl -dnl "1.23" < "1.23.1" (missing fields assumed zero) -dnl "1.23pre" <> "1.23" (undefined, do not use text as version) -dnl "1.21" > "1.3" (no implicit delimiters) -AC_TRY_RUN([ -#include <stdlib.h> -#include <libraw1394/raw1394.h> - -int main() -{ - char *req_ver, *lib_ver; - unsigned int req_i, lib_i; - - req_ver = "$1"; - lib_ver = raw1394_get_libversion(); - - while (1) { - req_i = strtoul(req_ver, &req_ver, 10); - lib_i = strtoul(lib_ver, &lib_ver, 10); - - if (req_i > lib_i) exit(1); - if (req_i < lib_i) exit(0); - - if (*req_ver != '.' || *lib_ver != '.') exit(0); - - req_ver++; - lib_ver++; - } -} -], ac_libraw1394_run=yes, ac_libraw1394_run=no, ac_libraw1394_run=cross) - - -CPPFLAGS=$ac_libraw1394_save_cppflags -CFLAGS=$ac_libraw1394_save_cflags -LIBS=$ac_libraw1394_save_libs - -if test $ac_libraw1394_run = yes; then - ifelse([$2], , :, $2) -elif test $ac_libraw1394_run = no; then - ifelse([$3], , :, $3) -else - ifelse([$4], , - AC_MSG_ERROR([no default for cross compiling in libraw1394 runtest macro]), - [$4]) -fi -]) - -dnl -dnl AC_LIB_RAW1394(MINIMUMVERSION[,ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]]) -dnl -dnl Versions before 0.9 can't be checked, so this will always fail if the -dnl installed libraw1394 is older than 0.9 as if the library weren't found. -dnl -AC_DEFUN(AC_LIB_RAW1394, [ - -AC_LIB_RAW1394_FLAGS -AC_LIB_RAW1394_HEADERS(ac_libraw1394_found=yes, ac_libraw1394_found=no) - -if test $ac_libraw1394_found = yes ; then - -AC_MSG_CHECKING(for libraw1394 version >= [$1]) -AC_LIB_RAW1394_RUNTEST([$1], , ac_libraw1394_found=no, - AC_LIB_RAW1394_LIBVERSION([$1], , ac_libraw1394_found=no)) - -if test $ac_libraw1394_found = yes ; then - AC_MSG_RESULT(yes) - $2 -else - AC_MSG_RESULT(no) - $3 -fi - -fi - -]) |
From: SVN U. <dde...@li...> - 2004-11-11 03:19:25
|
Author: ddennedy Date: 2004-11-10 22:19:09 -0500 (Wed, 10 Nov 2004) New Revision: 144 Modified: trunk/AUTHORS trunk/INSTALL trunk/NEWS trunk/README trunk/doc/libraw1394.sgml trunk/src/arm.c trunk/src/errors.c trunk/src/eventloop.c trunk/src/fcp.c trunk/src/iso.c trunk/src/main.c trunk/src/raw1394.h trunk/src/readwrite.c trunk/src/version.c Log: reorganize and update documentation; fix compiler warning Modified: trunk/AUTHORS =================================================================== --- trunk/AUTHORS 2004-10-31 01:06:20 UTC (rev 143) +++ trunk/AUTHORS 2004-11-11 03:19:09 UTC (rev 144) @@ -1,10 +1,10 @@ -Maintainer: Ben Collins <bco...@de...> +Maintainer: Dan Dennedy <da...@de...> Original author: Andreas Bombe <and...@mu...> - or: <bo...@in...> + or <bo...@in...> Contributors: Manfred Weihs <we...@ic...> Christian Toegel <chr...@gm...> Dan Maas <dm...@ma...> -Dan Dennedy <da...@de...> +Ben Collins <bco...@de...> Modified: trunk/INSTALL =================================================================== --- trunk/INSTALL 2004-10-31 01:06:20 UTC (rev 143) +++ trunk/INSTALL 2004-11-11 03:19:09 UTC (rev 144) @@ -1,27 +1,43 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004 Free +Software Foundation, Inc. + +This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + Basic Installation ================== - These are generic installation instructions. +These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. The simplest way to compile this package is: @@ -54,20 +70,22 @@ Compilers and Options ===================== - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure +Some systems require unusual options for compilation or linking that the +`configure' script does not know about. Run `./configure --help' for +details on some of the pertinent environment variables. -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + Compiling For Multiple Architectures ==================================== - You can compile the package for more than one kind of computer at the +You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the @@ -75,28 +93,28 @@ the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. Installation Names ================== - By default, `make install' will install the package's files in +By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. +give `configure' the option `--exec-prefix=PREFIX', the package will +use PREFIX as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular +options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. @@ -107,7 +125,7 @@ Optional Features ================= - Some packages pay attention to `--enable-FEATURE' options to +Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The @@ -122,48 +140,81 @@ Specifying the System Type ========================== - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: +There may be some features `configure' cannot figure out automatically, +but needs to determine by the type of machine the package will run on. +Usually, assuming the package is built to be run on the _same_ +architectures, `configure' can figure that out, but if it prints a +message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + CPU-COMPANY-SYSTEM -See the file `config.sub' for the possible values of each field. If +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't -need to know the host type. +need to know the machine type. - If you are building compiler tools for cross-compiling, you can also + If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. +produce code for. + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + Sharing Defaults ================ - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. +If you want to set default values for `configure' scripts to share, you +can create a site shell script called `config.site' that gives default +values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. -Operation Controls +Defining Variables ================== - `configure' recognizes the following options to control how it -operates. +Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. + ./configure CC=/usr/local2/bin/gcc +will cause the specified gcc to be used as the C compiler (unless it is +overridden in the site shell script). + +`configure' Invocation +====================== + +`configure' recognizes the following options to control how it operates. + `--help' +`-h' Print a summary of the options to `configure', and exit. +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + `--quiet' `--silent' `-q' @@ -175,8 +226,6 @@ Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. -`configure' also accepts some other, not widely useful, options. Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2004-10-31 01:06:20 UTC (rev 143) +++ trunk/NEWS 2004-11-11 03:19:09 UTC (rev 144) @@ -5,12 +5,15 @@ numbers changed to reflect a new interface that is not backwards compatible! - added raw1394_arm_set_buf() and raw1394_arm_get_buf() functions. - added raw1394_new_handle_on_port() to make initialization simpler. -- new, consistent versioning scheme. 1.0.0 was reported by pkg-config in 0.10 - series; hence, 1.1.0 in this release. +- make versioning consistent and updated. 1.0.0 was reported by pkg-config in + 0.10 series; hence, 1.1.0 in this release. - removed outdated, bogus "linking required only" version symbols in version.c - use pkg-config now. - dropped libraw1394.m4 - use pkg-config now. - added RPM spec file. +- deprecate old isochronous API. +- move API comment documentation to header and reformat header comments as + kernel-doc (use linux/scripts/kernel-doc to extract and format them). Version 0.10: Modified: trunk/README =================================================================== --- trunk/README 2004-10-31 01:06:20 UTC (rev 143) +++ trunk/README 2004-11-11 03:19:09 UTC (rev 144) @@ -56,7 +56,7 @@ 6. Maintainer - Maintainers of libraw1394 are currently Ben Collins and Dan Dennedy. Send + Maintainer of libraw1394 is currently Dan Dennedy. Send suggestions, bug reports and fixes to lin...@li.... See the file AUTHORS for a complete list of contributors to libraw1394. Modified: trunk/doc/libraw1394.sgml =================================================================== --- trunk/doc/libraw1394.sgml 2004-10-31 01:06:20 UTC (rev 143) +++ trunk/doc/libraw1394.sgml 2004-11-11 03:19:09 UTC (rev 144) @@ -880,359 +880,4163 @@ <chapter id="functions"> <title>Function Reference</title> - <refentry> - <refmeta> - <refentrytitle>raw1394_new_handle</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> +<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> - <refnamediv> - <refname>raw1394_new_handle</refname> - <refpurpose>create new handle</refpurpose> - </refnamediv> +<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> - <refsynopsisdiv> - <funcsynopsis> - <funcprototype> - <funcdef>raw1394handle_t <function>raw1394_new_handle</function></funcdef> - <void> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> +<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> - <refsect1> - <title>Description</title> +<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> - <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> +<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> - <refsect1> - <title>Return Value</title> +<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> - <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><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>raw1394_destroy_handle</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> +<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> - <refnamediv> - <refname>raw1394_destroy_handle</refname> - <refpurpose>deallocate handle</refpurpose> - </refnamediv> +<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> - <refsynopsisdiv> - <funcsynopsis> - <funcprototype> - <funcdef>void <function>raw1394_destroy_handle</function></funcdef> - <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> +<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> - <refsect1> - <title>Arguments</title> +<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 > 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 < 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> - <variablelist> - <varlistentry> - <term><parameter>handle</parameter></term> - <listitem> - <para>handle to be deallocated</para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> +<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> - <refsect1> - <title>Description</title> +<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> - <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-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> - <refentry> - <refmeta> - <refentrytitle>raw1394_get_port_info</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> + 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> - <refnamediv> - <refname>raw1394_get_port_info</refname> - <refpurpose>get information about connected ports</refpurpose> - </refnamediv> +<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> - <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> + 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> - <refsect1> - <title>Arguments</title> + 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> - <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> +<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> - <refsect1> - <title>Return Value</title> + 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> - <para> - The number of ports currently existing. - </para> - </refsect1> + 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> - <refsect1> - <title>Description</title> +<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> - <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: +<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> - <programlisting> -struct <structname>raw1394_portinfo</structname> { - int <structfield>nodes</structfield>; - char <structfield>name</structfield>[32]; -}; - </programlisting> - </para> +<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> - <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><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>raw1394_get_fd</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> +<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> - <refnamediv> - <refname>raw1394_get_fd</refname> - <refpurpose>get the communication file descriptor</refpurpose> - </refnamediv> +<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> - <refsynopsisdiv> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>raw1394_get_fd</function></funcdef> - <paramdef>raw1394handle_t <parameter>handle</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> +<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> - <refsect1> - <title>Arguments</title> +<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> - <variablelist> - <varlistentry> - <term><parameter>handle</parameter></term> - <listitem> - <para>handle of which the fd is to be returned from</para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> +<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> - <refsect1> - <title>Description</title> + 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> - <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> + 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> - <refsect1> - <title>Return Value</title> +<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> - <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> + 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>raw1394_(get|set)_userdata</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> +<refentry> +<refmeta> +<refentrytitle><phrase id="API-raw1394-reset-bus">raw1394_reset_bus</phrase></refentrytitle> +</refmeta> +<refnamediv> + <refname>raw1394_reset_bus</refname> + <refpurpose> + init... [truncated message content] |
From: SVN U. <dde...@li...> - 2004-10-31 01:06:28
|
Author: ddennedy Date: 2004-10-30 21:06:20 -0400 (Sat, 30 Oct 2004) New Revision: 143 Modified: trunk/NEWS trunk/src/kernel-raw1394.h Log: revert kernel protocol version Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2004-10-31 00:52:28 UTC (rev 142) +++ trunk/NEWS 2004-10-31 01:06:20 UTC (rev 143) @@ -4,13 +4,12 @@ raw1394_iso_recv_init() changed, and likewise, the libtool/.so version numbers changed to reflect a new interface that is not backwards compatible! - added raw1394_arm_set_buf() and raw1394_arm_get_buf() functions. +- added raw1394_new_handle_on_port() to make initialization simpler. - new, consistent versioning scheme. 1.0.0 was reported by pkg-config in 0.10 series; hence, 1.1.0 in this release. - removed outdated, bogus "linking required only" version symbols in version.c - use pkg-config now. - dropped libraw1394.m4 - use pkg-config now. -- incremented the raw1394 kernel API protocol version to 5 due to features - introduced in v0.10. - added RPM spec file. Version 0.10: Modified: trunk/src/kernel-raw1394.h =================================================================== --- trunk/src/kernel-raw1394.h 2004-10-31 00:52:28 UTC (rev 142) +++ trunk/src/kernel-raw1394.h 2004-10-31 01:06:20 UTC (rev 143) @@ -3,7 +3,7 @@ /* header for the raw1394 API that is exported to user-space */ -#define RAW1394_KERNELAPI_VERSION 5 +#define RAW1394_KERNELAPI_VERSION 4 /* state: opened */ #define RAW1394_REQ_INITIALIZE 1 |
From: SVN U. <dde...@li...> - 2004-10-31 00:52:42
|
Author: ddennedy Date: 2004-10-30 20:52:28 -0400 (Sat, 30 Oct 2004) New Revision: 142 Modified: trunk/debian/Makefile.am trunk/doc/Makefile.am Log: fix make dist without doc Modified: trunk/debian/Makefile.am =================================================================== --- trunk/debian/Makefile.am 2004-10-30 22:56:25 UTC (rev 141) +++ trunk/debian/Makefile.am 2004-10-31 00:52:28 UTC (rev 142) @@ -1,10 +1,9 @@ # process this file with automake to create a Makefile.in -EXTRA_DIST = \ +EXTRA_DIST = \ control \ rules \ changelog \ copyright \ - libraw1394.postinst.in \ - libraw1394-potato.postinst.in \ + libraw1394.postinst.in \ libraw1394-dev.docs Modified: trunk/doc/Makefile.am =================================================================== --- trunk/doc/Makefile.am 2004-10-30 22:56:25 UTC (rev 141) +++ trunk/doc/Makefile.am 2004-10-31 00:52:28 UTC (rev 142) @@ -1,5 +1,5 @@ EXTRA_DIST = testlibraw.1.in sendiso.1.in dumpiso.1.in isodump.5.in \ - libraw1394.sgml libraw1394 libraw1394.ps + libraw1394.sgml # man files for testlibraw man_MANS = testlibraw.1 sendiso.1 dumpiso.1 isodump.5 |
From: SVN U. <dde...@li...> - 2004-10-30 22:56:31
|
Author: ddennedy Date: 2004-10-30 18:56:25 -0400 (Sat, 30 Oct 2004) New Revision: 141 Modified: trunk/doc/libraw1394.sgml Log: nother doc update Modified: trunk/doc/libraw1394.sgml =================================================================== --- trunk/doc/libraw1394.sgml 2004-10-30 22:49:27 UTC (rev 140) +++ trunk/doc/libraw1394.sgml 2004-10-30 22:56:25 UTC (rev 141) @@ -711,6 +711,9 @@ <para> <symbol>mode</symbol> for <function>raw1394_iso_recv_init()</function> sets whether to use packet-per-buffer or buffer-fill receive mode. + Possible values are <symbol>RAW1394_DMA_DEFAULT</symbol> (bufferfill + on ohci1394), <symbol>RAW1394_DMA_BUFFERFILL</symbol>, and + <symbol>RAW1394_DMA_PACKET_PER_BUFFER</symbol>. </para> <para> |
From: SVN U. <dde...@li...> - 2004-10-30 22:49:42
|
Author: ddennedy Date: 2004-10-30 18:49:27 -0400 (Sat, 30 Oct 2004) New Revision: 140 Added: trunk/ChangeLog trunk/libraw1394.spec.in Modified: trunk/Makefile.am trunk/NEWS trunk/README trunk/configure.ac trunk/doc/Makefile.am trunk/doc/libraw1394.sgml trunk/src/Makefile.am trunk/src/kernel-raw1394.h trunk/src/version.c trunk/tools/Makefile.am Log: bump versions, build fixes, and doc updates Added: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/ChangeLog 2004-10-30 22:49:27 UTC (rev 140) @@ -0,0 +1,14 @@ +This project does not use a ChangeLog file. + +The source code of this project is managed by the Subversion revision +control system (http://subversion.tigris.org), a very nice replacement +for the venerable CVS. One of the many nice features of Subversion is +the 'log' command, which will give you the equivalent of a GNU style +ChangeLog file. + +To view the Subversion log for this project you must have a Subversion +client installed. Type on the command line + + $ svn://svn.linux1394.org/libraw1394/trunk + +to view the log. Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/Makefile.am 2004-10-30 22:49:27 UTC (rev 140) @@ -2,14 +2,14 @@ SUBDIRS = src tools doc debian -aclocaldir = @datadir@/aclocal -aclocal_DATA = libraw1394.m4 - pkgconfigdir = @libdir@/pkgconfig pkgconfig_DATA = libraw1394.pc -EXTRA_DIST = libraw1394.m4 libraw1394.pc +EXTRA_DIST = libraw1394.pc libraw1394.spec +MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in stamp-h.in \ + depcomp install-sh missing mkinstalldirs config.guess ltmain.sh + doc: psdoc pdfdoc htmldoc psdoc: @@ -45,3 +45,6 @@ echo "********************************************"; \ echo; \ fi + +dist-hook: + svn log >$(distdir)/ChangeLog Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/NEWS 2004-10-30 22:49:27 UTC (rev 140) @@ -1,3 +1,18 @@ +Version 1.1.0: +- added ability to specify the isochronous receive mode in the new + rawiso (raw1394_iso_*) API. Therefore, the signature of + raw1394_iso_recv_init() changed, and likewise, the libtool/.so version + numbers changed to reflect a new interface that is not backwards compatible! +- added raw1394_arm_set_buf() and raw1394_arm_get_buf() functions. +- new, consistent versioning scheme. 1.0.0 was reported by pkg-config in 0.10 + series; hence, 1.1.0 in this release. +- removed outdated, bogus "linking required only" version symbols in + version.c - use pkg-config now. +- dropped libraw1394.m4 - use pkg-config now. +- incremented the raw1394 kernel API protocol version to 5 due to features + introduced in v0.10. +- added RPM spec file. + Version 0.10: - merged in the rawiso branch Modified: trunk/README =================================================================== --- trunk/README 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/README 2004-10-30 22:49:27 UTC (rev 140) @@ -30,8 +30,7 @@ Finally there is something, in the doc subdirectory. The file is libraw1394.sgml (it's Docbook format), and there are preformatted PostScript and -HTML available. This documentation is not complete yet! I hopefully will have -a libraw1394 0.9.1 out soon with finished documentation. +HTML available. This documentation is not complete yet. 4. Multithreading @@ -42,28 +41,23 @@ Simply use separate handles for each thread in which you need to use libraw1394. -5. Autoconf macro +5. Pkg-config - Along with the library an autoconf macro gets installed (in -$prefix/share/aclocal). It is called the following way: + The library comes with a pkg-config .pc file, so you can check for +libraw1394 and its version in your configure script. For example, here is how +to use the autoconf macro: -AC_LIB_RAW1394(MINIMUMVERSION[,ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]]) +PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.1.0) - Versions prior to 0.9 can not be checked and appear as "not found". -This macro sets the variables LIBRAW1394_CPPFLAGS, LIBRAW1394_CFLAGS and -LIBRAW1394_LIBS. You have to include those into your build variables so that -the build process correctly links with libraw1394. + This macro sets the variables LIBRAW1394_CFLAGS and LIBRAW1394_LIBS. You +have to include those into your build variables so that the build process +correctly links with libraw1394. 6. Maintainer - Maintainer of libraw1394 is currently Andreas Bombe. Send suggestions, -bug reports and fixes to and...@mu.... See the file AUTHORS -for a complete list of contributors to libraw1394. + Maintainers of libraw1394 are currently Ben Collins and Dan Dennedy. Send +suggestions, bug reports and fixes to lin...@li.... +See the file AUTHORS for a complete list of contributors to libraw1394. - You can get updates through this project's homepage on SourceForge, see -http://sourceforge.net/project/?group_id=2514 for more information. You can -also submit bugs through this page. - - -2001-05-14 Andreas Bombe +Visit http://www.linux1394.org/ for more information or to see what is new. Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/configure.ac 2004-10-30 22:49:27 UTC (rev 140) @@ -1,11 +1,14 @@ # process this file with autoconf to get a configure script -AC_INIT(Makefile.am) -AM_INIT_AUTOMAKE(libraw1394, 1.0.0) +AC_INIT(libraw1394, 1.1.0) +AC_CONFIG_SRCDIR(src/raw1394.h) AM_CONFIG_HEADER(config.h) +dnl Checking if the NEWS file has been updated to reflect the current version. +AM_INIT_AUTOMAKE(check-news) + AC_PROG_CC -AM_PROG_LIBTOOL +AC_PROG_LIBTOOL AC_PROG_INSTALL AC_CHECK_SIZEOF(void *, 8) @@ -13,9 +16,9 @@ AC_C_BIGENDIAN # set the libtool so version numbers -lt_major=7 +lt_major=8 lt_revision=0 -lt_age=2 +lt_age=0 AC_SUBST(lt_major) AC_SUBST(lt_revision) @@ -26,6 +29,7 @@ AC_OUTPUT([ Makefile libraw1394.pc +libraw1394.spec src/Makefile tools/Makefile doc/Makefile Modified: trunk/doc/Makefile.am =================================================================== --- trunk/doc/Makefile.am 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/doc/Makefile.am 2004-10-30 22:49:27 UTC (rev 140) @@ -9,7 +9,7 @@ CLEANFILES = libraw1394.aux libraw1394.dvi libraw1394.log libraw1394.out \ libraw1394.tex libraw1394.pdf -MAINTAINERCLEANFILES = libraw1394.ps +MAINTAINERCLEANFILES = Makefile.in libraw1394.ps maintainer-clean-local: rm -rf libraw1394 Modified: trunk/doc/libraw1394.sgml =================================================================== --- trunk/doc/libraw1394.sgml 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/doc/libraw1394.sgml 2004-10-30 22:49:27 UTC (rev 140) @@ -4,7 +4,7 @@ <bookinfo> <title>libraw1394</title> - <subtitle>version 0.9</subtitle> + <subtitle>version 1.0.0</subtitle> <copyright> <year>2001</year> @@ -319,6 +319,7 @@ be different nodes, so automatic behaviour would be very undesirable in these cases. </para> + </sect1> </chapter> @@ -694,7 +695,8 @@ <para> <symbol>speed</symbol> is the isochronous speed at which you wish to operate. Possible values are - <symbol>RAW1394_ISO_SPEED_100</symbol> through + <symbol>RAW1394_ISO_SPEED_100</symbol>, + <symbol>RAW1394_ISO_SPEED_200</symbol>, and <symbol>RAW1394_ISO_SPEED_400</symbol>. </para> @@ -705,6 +707,11 @@ irq_interval packets). Pass -1 to receive a default value that should be suitable for most applications. </para> + + <para> + <symbol>mode</symbol> for <function>raw1394_iso_recv_init()</function> + sets whether to use packet-per-buffer or buffer-fill receive mode. + </para> <para> If <function>raw1394_iso_xmit/recv_init()</function> retuns Added: trunk/libraw1394.spec.in =================================================================== --- trunk/libraw1394.spec.in 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/libraw1394.spec.in 2004-10-30 22:49:27 UTC (rev 140) @@ -0,0 +1,79 @@ +%define prefix /usr + +Name: @PACKAGE@ +Version: @VERSION@ +Release: 1 +Copyright: LGPL +Group: Libraries +Source: http://linux1394.org/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz +URL: http://linux1394.org +BuildRoot: /var/tmp/@PACKAGE@-@VERSION@-root +Summary: Streaming library for IEEE1394 +BuildRequires: openjade + +%changelog + +%description + +The Linux kernel's IEEE 1394 subsystem provides access to the raw 1394 +bus through the raw1394 module. This includes the standard 1394 +transactions (read, write, lock) on the active side, isochronous +stream receiving and sending and dumps of data written to the +FCP_COMMAND and FCP_RESPONSE registers. raw1394 uses a character +device to communicate to user programs using a special protocol. + +libraw1394 was created with the intent to hide that protocol from +applications so that + +- the protocol has to be implemented correctly only once. + +- all work can be done using easy to understand functions instead of + handling a complicated command structure. + +- only libraw1394 has to be changed when raw1394's interface changes. + +%package devel +Summary: Development libs for libraw1394 +Group: Development/Libraries +Requires: %{name} = %{version} + + +%description devel +Development libraries needed to build applications against libraw1394 + +%changelog + +%prep +%setup + +%build +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} +make + +%install +rm -rf $RPM_BUILD_ROOT + +make prefix=$RPM_BUILD_ROOT%{prefix} install + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-, root, root) + +%doc AUTHORS COPYING.LIB NEWS README +%{prefix}/lib/libraw1394.so.* + +%files devel +%defattr(-, root, root) + +%{prefix}/bin/* +%{prefix}/lib/*.so +%{prefix}/lib/*a +%{prefix}/include/* +%{prefix}/man/* +%{prefix}/lib/pkgconfig/libraw1394.pc Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/src/Makefile.am 2004-10-30 22:49:27 UTC (rev 140) @@ -1,3 +1,4 @@ +MAINTAINERCLEANFILES = Makefile.in # the libraw1394 itself @@ -15,7 +16,8 @@ arm.c \ version.c \ kernel-raw1394.h \ - raw1394_private.h + raw1394_private.h \ + ieee1394-ioctl.h # headers to be installed pkginclude_HEADERS = raw1394.h csr.h ieee1394.h Modified: trunk/src/kernel-raw1394.h =================================================================== --- trunk/src/kernel-raw1394.h 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/src/kernel-raw1394.h 2004-10-30 22:49:27 UTC (rev 140) @@ -3,7 +3,7 @@ /* header for the raw1394 API that is exported to user-space */ -#define RAW1394_KERNELAPI_VERSION 4 +#define RAW1394_KERNELAPI_VERSION 5 /* state: opened */ #define RAW1394_REQ_INITIALIZE 1 Modified: trunk/src/version.c =================================================================== --- trunk/src/version.c 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/src/version.c 2004-10-30 22:49:27 UTC (rev 140) @@ -10,11 +10,6 @@ #include <config.h> -/* Variables to find version by linking (avoid need for test program) */ - -char __libraw1394_version_0_9; -char __libraw1394_version_0_9_0; - /* This function is to be used by the autoconf macro to find the lib version */ const char *raw1394_get_libversion() { Modified: trunk/tools/Makefile.am =================================================================== --- trunk/tools/Makefile.am 2003-12-09 01:47:45 UTC (rev 139) +++ trunk/tools/Makefile.am 2004-10-30 22:49:27 UTC (rev 140) @@ -1,3 +1,4 @@ +MAINTAINERCLEANFILES = Makefile.in # testlibraw bin_PROGRAMS = testlibraw sendiso dumpiso |
From: SVN U. <ben...@li...> - 2003-12-09 01:47:56
|
Author: bencollins Date: 2003-12-08 20:47:45 -0500 (Mon, 08 Dec 2003) New Revision: 139 Modified: trunk/src/raw1394.h Log: Patch from Jim Radford. Other half of packet_per_buffer ABI cleanup. Modified: trunk/src/raw1394.h =================================================================== --- trunk/src/raw1394.h 2003-11-20 15:47:03 UTC (rev 138) +++ trunk/src/raw1394.h 2003-12-09 01:47:45 UTC (rev 139) @@ -57,9 +57,9 @@ /* The dma mode when receiving iso data. Must be supported by chipset */ enum raw1394_iso_dma_recv_mode { - RAW1394_DMA_DEFAULT = 0, /* use the default mode, this is BUFFERFILL for ohci */ - RAW1394_DMA_BUFFERFILL = 1, /* BUFFER_FILL mode */ - RAW1394_DMA_PACKET_PER_BUFFER = 2 /* PACKET_PER_BUFFER mode */ + RAW1394_DMA_DEFAULT = -1, /* Use the default mode, this is BUFFERFILL for ohci */ + RAW1394_DMA_BUFFERFILL = 1, /* BUFFER_FILL mode */ + RAW1394_DMA_PACKET_PER_BUFFER = 2 /* PACKET_PER_BUFFER mode */ }; /* return values from isochronous xmit/recv handlers */ |
From: SVN U. <ben...@li...> - 2003-11-20 15:47:17
|
Author: bencollins Date: 2003-11-20 10:47:03 -0500 (Thu, 20 Nov 2003) New Revision: 138 Modified: trunk/src/iso.c trunk/src/kernel-raw1394.h trunk/src/raw1394.h Log: Patch from Alexander Neundorf to support differing ISO rx modes. Currently supported only by OHCI. Modified: trunk/src/iso.c =================================================================== --- trunk/src/iso.c 2003-11-09 19:46:20 UTC (rev 137) +++ trunk/src/iso.c 2003-11-20 15:47:03 UTC (rev 138) @@ -114,6 +114,7 @@ unsigned int max_packet_size, int channel, enum raw1394_iso_speed speed, + enum raw1394_iso_dma_recv_mode mode, int irq_interval, int cmd) { @@ -139,6 +140,7 @@ handle->iso_status.config.channel = channel; handle->iso_status.config.speed = speed; handle->iso_status.config.irq_interval = irq_interval; + handle->iso_status.config.dma_mode = mode; if(ioctl(handle->fd, cmd, &handle->iso_status)) return -1; @@ -186,7 +188,7 @@ enum raw1394_iso_speed speed, int irq_interval) { - if(do_iso_init(handle, buf_packets, max_packet_size, channel, speed, + if (do_iso_init(handle, buf_packets, max_packet_size, channel, speed, RAW1394_DMA_DEFAULT, irq_interval, RAW1394_IOC_ISO_XMIT_INIT)) return -1; @@ -213,10 +215,11 @@ unsigned int buf_packets, unsigned int max_packet_size, unsigned char channel, + enum raw1394_iso_dma_recv_mode mode, int irq_interval) { /* any speed will work */ - if(do_iso_init(handle, buf_packets, max_packet_size, channel, RAW1394_ISO_SPEED_100, + if (do_iso_init(handle, buf_packets, max_packet_size, channel, RAW1394_ISO_SPEED_100, mode, irq_interval, RAW1394_IOC_ISO_RECV_INIT)) return -1; @@ -242,7 +245,8 @@ int irq_interval) { /* any speed will work */ - if(do_iso_init(handle, buf_packets, max_packet_size, -1, RAW1394_ISO_SPEED_100, + if (do_iso_init(handle, buf_packets, max_packet_size, -1, RAW1394_ISO_SPEED_100, + RAW1394_DMA_BUFFERFILL, irq_interval, RAW1394_IOC_ISO_RECV_INIT)) return -1; Modified: trunk/src/kernel-raw1394.h =================================================================== --- trunk/src/kernel-raw1394.h 2003-11-09 19:46:20 UTC (rev 137) +++ trunk/src/kernel-raw1394.h 2003-11-20 15:47:03 UTC (rev 138) @@ -151,6 +151,9 @@ /* xmit only - iso transmission speed */ __u8 speed; + /* The mode of the dma when receiving iso data. Must be supported by chip */ + __u8 dma_mode; + /* max. latency of buffer, in packets (-1 if you don't care) */ __s32 irq_interval; }; Modified: trunk/src/raw1394.h =================================================================== --- trunk/src/raw1394.h 2003-11-09 19:46:20 UTC (rev 137) +++ trunk/src/raw1394.h 2003-11-20 15:47:03 UTC (rev 138) @@ -55,6 +55,13 @@ RAW1394_ISO_SPEED_400 = 2, }; +/* The dma mode when receiving iso data. Must be supported by chipset */ +enum raw1394_iso_dma_recv_mode { + RAW1394_DMA_DEFAULT = 0, /* use the default mode, this is BUFFERFILL for ohci */ + RAW1394_DMA_BUFFERFILL = 1, /* BUFFER_FILL mode */ + RAW1394_DMA_PACKET_PER_BUFFER = 2 /* PACKET_PER_BUFFER mode */ +}; + /* return values from isochronous xmit/recv handlers */ enum raw1394_iso_disposition { @@ -110,6 +117,7 @@ unsigned int buf_packets, unsigned int max_packet_size, unsigned char channel, + enum raw1394_iso_dma_recv_mode mode, int irq_interval); int raw1394_iso_multichannel_recv_init(raw1394handle_t handle, |
From: SVN U. <we...@li...> - 2003-11-09 19:46:24
|
Author: weihs Date: 2003-11-09 14:46:20 -0500 (Sun, 09 Nov 2003) New Revision: 137 Modified: trunk/src/arm.c trunk/src/kernel-raw1394.h trunk/src/raw1394.h Log: sync with driver (addition of functions raw1394_arm_get_buf raw1394_arm_set_buf to get and set buffers of mapped address ranges) Modified: trunk/src/arm.c ============================================================================== --- trunk/src/arm.c 2003-11-09 19:44:11 UTC (rev 136) +++ trunk/src/arm.c 2003-11-09 19:46:20 UTC (rev 137) @@ -91,3 +91,65 @@ retval = write(handle->fd, &req, sizeof(req)); return (retval == sizeof(req)) ? 0:-1; } + + +/* + * AdressRangeMapping SET BUFFER: + * start, length .... identifies addressrange + * buf .............. pointer to buffer + * + * This function copies 'length' bytes from user memory area 'buf' + * to one ARM block in kernel memory area + * with start offset 'start'. + * + * returnvalue: 0 ... success + * <0 ... failure, and errno - error code + */ +int raw1394_arm_set_buf (struct raw1394_handle *handle, nodeaddr_t start, + size_t length, void *buf) +{ + struct raw1394_request req; + int status; + + CLEAR_REQ(&req); + + req.type = RAW1394_REQ_ARM_SET_BUF; + req.sendb = ptr2int(buf); + req.length = length; + req.address = start; + + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; + + return 0; +} + +/* + * AdressRangeMapping GET BUFFER: + * start, length .... identifies addressrange + * buf .............. pointer to buffer + * + * This function copies 'length' bytes from one + * ARM block in kernel memory area with start offset `start` + * to user memory area 'buf' + * + * returnvalue: 0 ... success + * <0 ... failure, and errno - error code + */ +int raw1394_arm_get_buf (struct raw1394_handle *handle, nodeaddr_t start, + size_t length, void *buf) +{ + struct raw1394_request req; + int status; + + CLEAR_REQ(&req); + + req.type = RAW1394_REQ_ARM_GET_BUF; + req.recvb = ptr2int(buf); + req.length = length; + req.address = start; + + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; + + return 0; +} + Modified: trunk/src/kernel-raw1394.h ============================================================================== --- trunk/src/kernel-raw1394.h 2003-11-09 19:44:11 UTC (rev 136) +++ trunk/src/kernel-raw1394.h 2003-11-09 19:46:20 UTC (rev 137) @@ -30,6 +30,8 @@ #define RAW1394_REQ_ARM_REGISTER 300 #define RAW1394_REQ_ARM_UNREGISTER 301 +#define RAW1394_REQ_ARM_SET_BUF 302 +#define RAW1394_REQ_ARM_GET_BUF 303 #define RAW1394_REQ_RESET_NOTIFY 400 Modified: trunk/src/raw1394.h ============================================================================== --- trunk/src/raw1394.h 2003-11-09 19:44:11 UTC (rev 136) +++ trunk/src/raw1394.h 2003-11-09 19:46:20 UTC (rev 137) @@ -377,6 +377,36 @@ */ int raw1394_arm_unregister(raw1394handle_t handle, nodeaddr_t start); +/* + * AdressRangeMapping SET BUFFER: + * start, length .... identifies addressrange + * buf .............. pointer to buffer + * + * This function copies 'length' bytes from user memory area 'buf' + * to one ARM block in kernel memory area + * with start offset 'start'. + * + * returnvalue: 0 ... success + * <0 ... failure, and errno - error code + */ +int raw1394_arm_set_buf (struct raw1394_handle *handle, nodeaddr_t start, + size_t length, void *buf); + +/* + * AdressRangeMapping GET BUFFER: + * start, length .... identifies addressrange + * buf .............. pointer to buffer + * + * This function copies 'length' bytes from one + * ARM block in kernel memory area with start offset `start` + * to user memory area 'buf' + * + * returnvalue: 0 ... success + * <0 ... failure, and errno - error code + */ +int raw1394_arm_get_buf (struct raw1394_handle *handle, nodeaddr_t start, + size_t length, void *buf); + /* * send an echo request to the driver. the driver then send back the * same request. raw1394_loop_iterate will return data as return value, |
From: SVN U. <we...@li...> - 2003-11-09 19:44:16
|
Author: weihs Date: 2003-11-09 14:44:11 -0500 (Sun, 09 Nov 2003) New Revision: 136 Modified: trunk/src/ieee1394-ioctl.h Log: sync with driver version of this file Modified: trunk/src/ieee1394-ioctl.h ============================================================================== --- trunk/src/ieee1394-ioctl.h 2003-10-07 13:28:07 UTC (rev 135) +++ trunk/src/ieee1394-ioctl.h 2003-11-09 19:44:11 UTC (rev 136) @@ -60,9 +60,13 @@ _IOWR('#', 0x14, struct video1394_mmap) #define VIDEO1394_IOC_UNTALK_CHANNEL \ _IOW ('#', 0x15, int) +/* + * This one is broken: it really wanted + * "sizeof (struct video1394_wait) + sizeof (struct video1394_queue_variable)" + * but got just a "size_t" + */ #define VIDEO1394_IOC_TALK_QUEUE_BUFFER \ - _IOW ('#', 0x16, sizeof (struct video1394_wait) + \ - sizeof (struct video1394_queue_variable)) + _IOW ('#', 0x16, size_t) #define VIDEO1394_IOC_TALK_WAIT_BUFFER \ _IOW ('#', 0x17, struct video1394_wait) #define VIDEO1394_IOC_LISTEN_POLL_BUFFER \ |
From: SVN U. <ben...@li...> - 2003-10-07 13:28:29
|
Author: bencollins Date: 2003-10-07 09:28:07 -0400 (Tue, 07 Oct 2003) New Revision: 135 Modified: trunk/src/raw1394.h Log: Patch from Alexander Neundorf to add proto for raw1394_iso_recv_flush() Modified: trunk/src/raw1394.h ============================================================================== --- trunk/src/raw1394.h 2003-09-26 13:57:19 UTC (rev 134) +++ trunk/src/raw1394.h 2003-10-07 13:28:07 UTC (rev 135) @@ -135,6 +135,9 @@ /* wait until all queued packets have been sent */ int raw1394_iso_xmit_sync(raw1394handle_t handle); +/* flush all already received iso packets from kernel into user space*/ +int raw1394_iso_recv_flush(raw1394handle_t handle); + void raw1394_iso_stop(raw1394handle_t handle); void raw1394_iso_shutdown(raw1394handle_t handle); |
From: SVN U. <ben...@li...> - 2003-09-26 13:57:22
|
Author: bencollins Date: 2003-09-26 09:57:19 -0400 (Fri, 26 Sep 2003) New Revision: 134 Added: tags/v0.10.1/ Log: Tag v0.10.1 Copied: tags/v0.10.1 (from rev 133, trunk) |
From: SVN U. <ben...@li...> - 2003-09-26 13:55:50
|
Author: bencollins Date: 2003-09-26 09:55:47 -0400 (Fri, 26 Sep 2003) New Revision: 133 Modified: trunk/debian/changelog trunk/debian/copyright Log: Update for new version, 0.10.1. Modified: trunk/debian/changelog ============================================================================== --- trunk/debian/changelog 2003-09-26 13:51:31 UTC (rev 132) +++ trunk/debian/changelog 2003-09-26 13:55:47 UTC (rev 133) @@ -1,5 +1,6 @@ -libraw1394 (0.10.0-2) unstable; urgency=low +libraw1394 (0.10.1-1) unstable; urgency=low + * New upstream. * Fix debconf stuff. Device gets created correctly now. Closes: #212394 -- Ben Collins <bco...@de...> Fri, 26 Sep 2003 09:33:52 -0400 Modified: trunk/debian/copyright ============================================================================== --- trunk/debian/copyright 2003-09-26 13:51:31 UTC (rev 132) +++ trunk/debian/copyright 2003-09-26 13:55:47 UTC (rev 133) @@ -1,7 +1,7 @@ The maintainer of this package is also the upstream maintainer of libraw1394. This package was downloaded from -http://www.linux1394.org/files/libraw1394/libraw1394-0.10.0.tar.bz2 +http://www.linux1394.org/files/libraw1394/libraw1394-0.10.1.tar.bz2 Copyright: |
From: SVN U. <ben...@li...> - 2003-09-26 13:51:34
|
Author: bencollins Date: 2003-09-26 09:51:31 -0400 (Fri, 26 Sep 2003) New Revision: 132 Modified: trunk/src/readwrite.c Log: Fixup async_stream to use same local req variable for reentrancy. Modified: trunk/src/readwrite.c ============================================================================== --- trunk/src/readwrite.c 2003-09-26 13:35:59 UTC (rev 131) +++ trunk/src/readwrite.c 2003-09-26 13:51:31 UTC (rev 132) @@ -255,20 +255,20 @@ unsigned int speed, size_t length, quadlet_t *data, unsigned long rawtag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ASYNC_STREAM; - req->generation = handle->generation; - req->tag = rawtag; + req.type = RAW1394_REQ_ASYNC_STREAM; + req.generation = handle->generation; + req.tag = rawtag; - req->address = ((__u64)channel << 48) | speed; - req->misc = (tag << 16) | sy; - req->length = length; - req->sendb = ptr2int(data); + req.address = ((__u64)channel << 48) | speed; + req.misc = (tag << 16) | sy; + req.length = length; + req.sendb = ptr2int(data); - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } int raw1394_start_async_send(struct raw1394_handle *handle, |
From: SVN U. <ben...@li...> - 2003-09-26 13:36:43
|
Author: bencollins Date: 2003-09-26 09:35:59 -0400 (Fri, 26 Sep 2003) New Revision: 131 Modified: trunk/debian/changelog trunk/debian/libraw1394.postinst.in Log: Fix postinst so device node gets created. Modified: trunk/debian/changelog ============================================================================== --- trunk/debian/changelog 2003-09-11 02:47:22 UTC (rev 130) +++ trunk/debian/changelog 2003-09-26 13:35:59 UTC (rev 131) @@ -1,3 +1,9 @@ +libraw1394 (0.10.0-2) unstable; urgency=low + + * Fix debconf stuff. Device gets created correctly now. Closes: #212394 + + -- Ben Collins <bco...@de...> Fri, 26 Sep 2003 09:33:52 -0400 + libraw1394 (0.10.0-1) unstable; urgency=low * Maintainer changed to me (BenC). Taking over maintainership upstream and Modified: trunk/debian/libraw1394.postinst.in ============================================================================== --- trunk/debian/libraw1394.postinst.in 2003-09-11 02:47:22 UTC (rev 130) +++ trunk/debian/libraw1394.postinst.in 2003-09-26 13:35:59 UTC (rev 131) @@ -4,13 +4,9 @@ db_version 2.0 if [ "$1" = "configure" ]; then - db_get libraw1394/dev/create_node || true - - if [ "$RET" = "true" ]; then echo -n "Creating device node /dev/raw1394... " cd /dev && ./MAKEDEV raw1394 echo "done." - fi fi #DEBHELPER# |
From: SVN U. <ben...@li...> - 2003-09-11 02:48:00
|
Author: bencollins Date: 2003-09-10 22:47:22 -0400 (Wed, 10 Sep 2003) New Revision: 130 Modified: trunk/src/kernel-raw1394.h trunk/src/raw1394.h trunk/src/readwrite.c Log: Async stream support from Jim Radford. Modified: trunk/src/kernel-raw1394.h ============================================================================== --- trunk/src/kernel-raw1394.h 2003-07-22 15:02:12 UTC (rev 129) +++ trunk/src/kernel-raw1394.h 2003-09-11 02:47:22 UTC (rev 130) @@ -19,6 +19,7 @@ #define RAW1394_REQ_LOCK64 103 #define RAW1394_REQ_ISO_SEND 104 #define RAW1394_REQ_ASYNC_SEND 105 +#define RAW1394_REQ_ASYNC_STREAM 106 #define RAW1394_REQ_ISO_LISTEN 200 #define RAW1394_REQ_FCP_LISTEN 201 Modified: trunk/src/raw1394.h ============================================================================== --- trunk/src/raw1394.h 2003-07-22 15:02:12 UTC (rev 129) +++ trunk/src/raw1394.h 2003-09-11 02:47:22 UTC (rev 130) @@ -423,6 +423,10 @@ unsigned int tag, unsigned int sy, unsigned int speed, size_t length, quadlet_t *data, unsigned long rawtag); +int raw1394_start_async_stream(raw1394handle_t handle, unsigned int channel, + unsigned int tag, unsigned int sy, + unsigned int speed, size_t length, quadlet_t *data, + unsigned long rawtag); /* This starts sending an arbitrary async packet. It gets an array of quadlets consisting of @@ -458,6 +462,9 @@ int raw1394_iso_write(raw1394handle_t handle, unsigned int channel, unsigned int tag, unsigned int sy, unsigned int speed, size_t length, quadlet_t *data); +int raw1394_async_stream(raw1394handle_t handle, unsigned int channel, + unsigned int tag, unsigned int sy, unsigned int speed, + size_t length, quadlet_t *data); int raw1394_async_send(raw1394handle_t handle, size_t length, size_t header_length, unsigned int expect_response, quadlet_t *data); Modified: trunk/src/readwrite.c ============================================================================== --- trunk/src/readwrite.c 2003-07-22 15:02:12 UTC (rev 129) +++ trunk/src/readwrite.c 2003-09-11 02:47:22 UTC (rev 130) @@ -249,6 +249,28 @@ return (int)write(handle->fd, &req, sizeof(req)); } +int raw1394_start_async_stream(struct raw1394_handle *handle, + unsigned int channel, + unsigned int tag, unsigned int sy, + unsigned int speed, size_t length, quadlet_t *data, + unsigned long rawtag) +{ + struct raw1394_request *req = &handle->req; + + CLEAR_REQ(req); + + req->type = RAW1394_REQ_ASYNC_STREAM; + req->generation = handle->generation; + req->tag = rawtag; + + req->address = ((__u64)channel << 48) | speed; + req->misc = (tag << 16) | sy; + req->length = length; + req->sendb = ptr2int(data); + + return (int)write(handle->fd, req, sizeof(*req)); +} + int raw1394_start_async_send(struct raw1394_handle *handle, size_t length, size_t header_length, unsigned int expect_response, quadlet_t *data, unsigned long rawtag) @@ -343,6 +365,18 @@ SYNCFUNC_BODY; } +int raw1394_async_stream(struct raw1394_handle *handle, unsigned int channel, + unsigned int tag, unsigned int sy, unsigned int speed, + size_t length, quadlet_t *data) +{ + SYNCFUNC_VARS; + + err = raw1394_start_async_stream(handle, channel, tag, sy, speed, length, + data, (unsigned long)&rh); + + SYNCFUNC_BODY; +} + int raw1394_async_send(struct raw1394_handle *handle , size_t length, size_t header_length, unsigned int expect_response, quadlet_t *data) |
From: SVN U. <ben...@li...> - 2003-07-22 15:03:24
|
Author: bencollins Date: 2003-07-22 11:02:12 -0400 (Tue, 22 Jul 2003) New Revision: 129 Modified: trunk/configure.ac Log: Increase so maj/age so account for new recv-flush call. Modified: trunk/configure.ac ============================================================================== --- trunk/configure.ac 2003-07-22 14:54:19 UTC (rev 128) +++ trunk/configure.ac 2003-07-22 15:02:12 UTC (rev 129) @@ -13,9 +13,9 @@ AC_C_BIGENDIAN # set the libtool so version numbers -lt_major=6 +lt_major=7 lt_revision=0 -lt_age=1 +lt_age=2 AC_SUBST(lt_major) AC_SUBST(lt_revision) |
From: SVN U. <ben...@li...> - 2003-07-22 14:55:35
|
Author: bencollins Date: 2003-07-22 10:54:19 -0400 (Tue, 22 Jul 2003) New Revision: 128 Modified: trunk/src/arm.c trunk/src/eventloop.c trunk/src/fcp.c trunk/src/iso.c trunk/src/main.c trunk/src/raw1394_private.h trunk/src/readwrite.c Log: Patch from Stephen Tiedemann to allow reentrancy in raw1394's usage of raw1394_request's. Modified: trunk/src/arm.c ============================================================================== --- trunk/src/arm.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/arm.c 2003-07-22 14:54:19 UTC (rev 128) @@ -50,25 +50,25 @@ arm_options_t client_transactions) { int retval=0; - struct raw1394_request *req = &(handle->req); + struct raw1394_request req; if (((start & ~(0xFFFFFFFFFFFF)) != 0) || (((start + length) & ~(0xFFFFFFFFFFFF)) != 0)) { errno = EINVAL; return (-1); } - CLEAR_REQ(req); - req->type = RAW1394_REQ_ARM_REGISTER; - req->generation = handle->generation; /* not necessary */ - req->address = start; - req->length = length; - req->tag = arm_tag; - req->recvb = ptr2int(handle->buffer); /* arm_handle on success */ - req->misc = ((client_transactions & 0x0f) << 8)|((notification_options & 0x0F) << 4)|(access_rights & 0x0F) + CLEAR_REQ(&req); + req.type = RAW1394_REQ_ARM_REGISTER; + req.generation = handle->generation; /* not necessary */ + req.address = start; + req.length = length; + req.tag = arm_tag; + req.recvb = ptr2int(handle->buffer); /* arm_handle on success */ + req.misc = ((client_transactions & 0x0f) << 8)|((notification_options & 0x0F) << 4)|(access_rights & 0x0F) |((ARM_REC_LENGTH & 0xFFFF) << 16); - req->sendb = ptr2int(initial_value); - retval = (int) write(handle->fd, req, sizeof(*req)); - return (retval == sizeof(*req)) ? 0:-1; + req.sendb = ptr2int(initial_value); + retval = (int) write(handle->fd, &req, sizeof(req)); + return (retval == sizeof(req)) ? 0:-1; } /* @@ -82,12 +82,12 @@ int raw1394_arm_unregister (struct raw1394_handle *handle, nodeaddr_t start) { int retval; - struct raw1394_request *req = &(handle->req); + struct raw1394_request req; - CLEAR_REQ(req); - req->type = RAW1394_REQ_ARM_UNREGISTER; - req->generation = handle->generation; /* not necessary */ - req->address = start; - retval = write(handle->fd, req, sizeof(*req)); - return (retval == sizeof(*req)) ? 0:-1; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_ARM_UNREGISTER; + req.generation = handle->generation; /* not necessary */ + req.address = start; + retval = write(handle->fd, &req, sizeof(req)); + return (retval == sizeof(req)) ? 0:-1; } Modified: trunk/src/eventloop.c ============================================================================== --- trunk/src/eventloop.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/eventloop.c 2003-07-22 14:54:19 UTC (rev 128) @@ -40,27 +40,27 @@ **/ int raw1394_loop_iterate(struct raw1394_handle *handle) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; int retval = 0, channel; - if (read(handle->fd, req, sizeof(*req)) < 0) { + if (read(handle->fd, &req, sizeof(req)) < 0) { return -1; } - switch (req->type) { + switch (req.type) { case RAW1394_REQ_BUS_RESET: if (handle->protocol_version == 3) { - handle->num_of_nodes = req->misc & 0xffff; - handle->local_id = req->misc >> 16; + handle->num_of_nodes = req.misc & 0xffff; + handle->local_id = req.misc >> 16; } else { - handle->num_of_nodes = req->misc & 0xff; - handle->irm_id = ((req->misc >> 8) & 0xff) | 0xffc0; - handle->local_id = req->misc >> 16; + handle->num_of_nodes = req.misc & 0xff; + handle->irm_id = ((req.misc >> 8) & 0xff) | 0xffc0; + handle->local_id = req.misc >> 16; } if (handle->bus_reset_handler) { retval = handle->bus_reset_handler(handle, - req->generation); + req.generation); } break; @@ -72,31 +72,31 @@ if (handle->iso_handler[channel]) { retval = handle->iso_handler[channel](handle, channel, - req->length, + req.length, handle->buffer); } break; case RAW1394_REQ_FCP_REQUEST: if (handle->fcp_handler) { - retval = handle->fcp_handler(handle, req->misc & 0xffff, - req->misc >> 16, - req->length, + retval = handle->fcp_handler(handle, req.misc & 0xffff, + req.misc >> 16, + req.length, (char *)handle->buffer); } break; case RAW1394_REQ_ARM: if (handle->arm_tag_handler) { - retval = handle->arm_tag_handler(handle, req->tag, - (req->misc & (0xFF)), - ((req->misc >> 16) & (0xFFFF)), - int2ptr(req->recvb)); + retval = handle->arm_tag_handler(handle, req.tag, + (req.misc & (0xFF)), + ((req.misc >> 16) & (0xFFFF)), + int2ptr(req.recvb)); } break; case RAW1394_REQ_ECHO: - retval=req->misc; + retval=req.misc; break; case RAW1394_REQ_RAWISO_ACTIVITY: @@ -105,8 +105,8 @@ default: if (handle->tag_handler) { - retval = handle->tag_handler(handle, req->tag, - req->error); + retval = handle->tag_handler(handle, req.tag, + req.error); } break; } Modified: trunk/src/fcp.c ============================================================================== --- trunk/src/fcp.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/fcp.c 2003-07-22 14:54:19 UTC (rev 128) @@ -22,17 +22,17 @@ struct sync_cb_data sd = { 0, 0 }; struct raw1394_reqhandle rh = { (req_callback_t)_raw1394_sync_cb, &sd }; int err; - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); - req->type = RAW1394_REQ_FCP_LISTEN; - req->generation = handle->generation; - req->misc = startstop; - req->tag = ptr2int(&rh); - req->recvb = ptr2int(handle->buffer); - req->length = 512; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_FCP_LISTEN; + req.generation = handle->generation; + req.misc = startstop; + req.tag = ptr2int(&rh); + req.recvb = ptr2int(handle->buffer); + req.length = 512; - err = write(handle->fd, req, sizeof(*req)); + err = write(handle->fd, &req, sizeof(req)); while (!sd.done) { if (err < 0) return err; err = raw1394_loop_iterate(handle); Modified: trunk/src/iso.c ============================================================================== --- trunk/src/iso.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/iso.c 2003-07-22 14:54:19 UTC (rev 128) @@ -29,17 +29,17 @@ struct sync_cb_data sd = { 0, 0 }; struct raw1394_reqhandle rh = { (req_callback_t)_raw1394_sync_cb, &sd }; int err; - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); - req->type = RAW1394_REQ_ISO_LISTEN; - req->generation = handle->generation; - req->misc = channel; - req->tag = ptr2int(&rh); - req->recvb = ptr2int(handle->buffer); - req->length = HBUF_SIZE; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_ISO_LISTEN; + req.generation = handle->generation; + req.misc = channel; + req.tag = ptr2int(&rh); + req.recvb = ptr2int(handle->buffer); + req.length = HBUF_SIZE; - err = write(handle->fd, req, sizeof(*req)); + err = write(handle->fd, &req, sizeof(req)); while (!sd.done) { if (err < 0) return err; err = raw1394_loop_iterate(handle); Modified: trunk/src/main.c ============================================================================== --- trunk/src/main.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/main.c 2003-07-22 14:54:19 UTC (rev 128) @@ -84,28 +84,28 @@ static unsigned int init_rawdevice(struct raw1394_handle *h) { - struct raw1394_request *req = &h->req; + struct raw1394_request req; - CLEAR_REQ(req); - req->type = RAW1394_REQ_INITIALIZE; - req->misc = RAW1394_KERNELAPI_VERSION; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_INITIALIZE; + req.misc = RAW1394_KERNELAPI_VERSION; h->protocol_version = RAW1394_KERNELAPI_VERSION; - if (write(h->fd, req, sizeof(*req)) < 0) return -1; - if (read(h->fd, req, sizeof(*req)) < 0) return -1; + if (write(h->fd, &req, sizeof(req)) < 0) return -1; + if (read(h->fd, &req, sizeof(req)) < 0) return -1; - if (req->error == RAW1394_ERROR_COMPAT && req->misc == 3) { + if (req.error == RAW1394_ERROR_COMPAT && req.misc == 3) { h->protocol_version = 3; - if (write(h->fd, req, sizeof(*req)) < 0) return -1; - if (read(h->fd, req, sizeof(*req)) < 0) return -1; + if (write(h->fd, &req, sizeof(req)) < 0) return -1; + if (read(h->fd, &req, sizeof(req)) < 0) return -1; } - if (req->error) { + if (req.error) { errno = 0; return -1; } - return req->generation; + return req.generation; } @@ -308,36 +308,36 @@ struct raw1394_portinfo *pinf, int maxports) { int num; - struct raw1394_request *req = &handle->req; + struct raw1394_request req; struct raw1394_khost_list *khl; - CLEAR_REQ(req); - req->type = RAW1394_REQ_LIST_CARDS; - req->generation = handle->generation; - req->recvb = ptr2int(handle->buffer); - req->length = HBUF_SIZE; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_LIST_CARDS; + req.generation = handle->generation; + req.recvb = ptr2int(pinf); + req.length = sizeof(struct raw1394_portinfo) * maxports; while (1) { - if (write(handle->fd, req, sizeof(*req)) < 0) return -1; - if (read(handle->fd, req, sizeof(*req)) < 0) return -1; + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; + if (read(handle->fd, &req, sizeof(req)) < 0) return -1; - if (!req->error) break; + if (!req.error) break; - if (req->error == RAW1394_ERROR_GENERATION) { - handle->generation = req->generation; + if (req.error == RAW1394_ERROR_GENERATION) { + handle->generation = req.generation; continue; } return -1; } - for (num = req->misc, khl = (struct raw1394_khost_list *)handle->buffer; + for (num = req.misc, khl = (struct raw1394_khost_list *) int2ptr(req.recvb); num && maxports; num--, maxports--, pinf++, khl++) { pinf->nodes = khl->nodes; strcpy(pinf->name, khl->name); } - return req->misc; + return req.misc; } @@ -358,20 +358,20 @@ **/ int raw1394_set_port(struct raw1394_handle *handle, int port) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_SET_CARD; - req->generation = handle->generation; - req->misc = port; + req.type = RAW1394_REQ_SET_CARD; + req.generation = handle->generation; + req.misc = port; - if (write(handle->fd, req, sizeof(*req)) < 0) return -1; - if (read(handle->fd, req, sizeof(*req)) < 0) return -1; + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; + if (read(handle->fd, &req, sizeof(req)) < 0) return -1; - switch (req->error) { + switch (req.error) { case RAW1394_ERROR_GENERATION: - handle->generation = req->generation; + handle->generation = req.generation; errno = ESTALE; return -1; case RAW1394_ERROR_INVALID_ARG: @@ -379,14 +379,14 @@ return -1; case RAW1394_ERROR_NONE: if (handle->protocol_version == 3) { - handle->num_of_nodes = req->misc & 0xffff; - handle->local_id = req->misc >> 16; + handle->num_of_nodes = req.misc & 0xffff; + handle->local_id = req.misc >> 16; } else { - handle->num_of_nodes = req->misc & 0xff; - handle->irm_id = ((req->misc >> 8) & 0xff) | 0xffc0; - handle->local_id = req->misc >> 16; + handle->num_of_nodes = req.misc & 0xff; + handle->irm_id = ((req.misc >> 8) & 0xff) | 0xffc0; + handle->local_id = req.misc >> 16; } - handle->generation = req->generation; + handle->generation = req.generation; return 0; default: errno = 0; @@ -430,15 +430,15 @@ int raw1394_reset_bus_new(struct raw1394_handle *handle, int type) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_RESET_BUS; - req->generation = handle->generation; - req->misc = type; + req.type = RAW1394_REQ_RESET_BUS; + req.generation = handle->generation; + req.misc = type; - if (write(handle->fd, req, sizeof(*req)) < 0) return -1; + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; return 0; /* success */ } @@ -461,15 +461,15 @@ int raw1394_busreset_notify (struct raw1394_handle *handle, int off_on_switch) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_RESET_NOTIFY; - req->generation = handle->generation; - req->misc = off_on_switch; + req.type = RAW1394_REQ_RESET_NOTIFY; + req.generation = handle->generation; + req.misc = off_on_switch; - if (write(handle->fd, req, sizeof(*req)) < 0) return -1; + if (write(handle->fd, &req, sizeof(req)) < 0) return -1; return 0; /* success */ } @@ -477,18 +477,18 @@ int raw1394_update_config_rom(raw1394handle_t handle, const quadlet_t *new_rom, size_t size, unsigned char rom_version) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; int status; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_UPDATE_ROM; - req->sendb = (unsigned long) new_rom; - req->length = size; - req->misc = rom_version; - req->recvb = (unsigned long) &status; + req.type = RAW1394_REQ_UPDATE_ROM; + req.sendb = (unsigned long) new_rom; + req.length = size; + req.misc = rom_version; + req.recvb = (unsigned long) &status; - if (write(handle->fd, req, sizeof(*req)) < 0) return -8; + if (write(handle->fd, &req, sizeof(req)) < 0) return -8; return status; } @@ -496,19 +496,19 @@ int raw1394_get_config_rom(raw1394handle_t handle, quadlet_t *buffer, size_t buffersize, size_t *rom_size, unsigned char *rom_version) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; int status; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_GET_ROM; - req->recvb = (unsigned long) buffer; - req->length = buffersize; - req->tag = (unsigned long) rom_size; - req->address = (unsigned long) rom_version; - req->sendb = (unsigned long) &status; + req.type = RAW1394_REQ_GET_ROM; + req.recvb = (unsigned long) buffer; + req.length = buffersize; + req.tag = (unsigned long) rom_size; + req.address = (unsigned long) rom_version; + req.sendb = (unsigned long) &status; - if (write(handle->fd, req, sizeof(*req)) < 0) return -8; + if (write(handle->fd, &req, sizeof(req)) < 0) return -8; return status; } Modified: trunk/src/raw1394_private.h ============================================================================== --- trunk/src/raw1394_private.h 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/raw1394_private.h 2003-07-22 14:54:19 UTC (rev 128) @@ -42,7 +42,6 @@ raw1394_iso_xmit_handler_t iso_xmit_handler; raw1394_iso_recv_handler_t iso_recv_handler; - struct raw1394_request req; quadlet_t buffer[HBUF_SIZE/4]; /* 2048 */ }; Modified: trunk/src/readwrite.c ============================================================================== --- trunk/src/readwrite.c 2003-07-17 17:33:39 UTC (rev 127) +++ trunk/src/readwrite.c 2003-07-22 14:54:19 UTC (rev 128) @@ -54,19 +54,19 @@ nodeaddr_t addr, size_t length, quadlet_t *buffer, unsigned long tag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ASYNC_READ; - req->generation = handle->generation; - req->tag = tag; + req.type = RAW1394_REQ_ASYNC_READ; + req.generation = handle->generation; + req.tag = tag; - req->address = ((__u64)node << 48) | addr; - req->length = length; - req->recvb = ptr2int(buffer); + req.address = ((__u64)node << 48) | addr; + req.length = length; + req.recvb = ptr2int(buffer); - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } @@ -93,19 +93,19 @@ nodeaddr_t addr, size_t length, quadlet_t *data, unsigned long tag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ASYNC_WRITE; - req->generation = handle->generation; - req->tag = tag; + req.type = RAW1394_REQ_ASYNC_WRITE; + req.generation = handle->generation; + req.tag = tag; - req->address = ((__u64)node << 48) | addr; - req->length = length; - req->sendb = ptr2int(data); + req.address = ((__u64)node << 48) | addr; + req.length = length; + req.sendb = ptr2int(data); - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } @@ -133,7 +133,7 @@ nodeaddr_t addr, unsigned int extcode, quadlet_t data, quadlet_t arg, quadlet_t *result, unsigned long tag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; quadlet_t sendbuf[2]; if ((extcode > 7) || (extcode == 0)) { @@ -141,37 +141,37 @@ return -1; } - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_LOCK; - req->generation = handle->generation; - req->tag = tag; + req.type = RAW1394_REQ_LOCK; + req.generation = handle->generation; + req.tag = tag; - req->address = ((__u64)node << 48) | addr; - req->sendb = ptr2int(sendbuf); - req->recvb = ptr2int(result); - req->misc = extcode; + req.address = ((__u64)node << 48) | addr; + req.sendb = ptr2int(sendbuf); + req.recvb = ptr2int(result); + req.misc = extcode; switch (extcode) { case 3: /* EXTCODE_FETCH_ADD */ case 4: /* EXTCODE_LITTLE_ADD */ sendbuf[0] = data; - req->length = 4; + req.length = 4; break; default: sendbuf[0] = arg; sendbuf[1] = data; - req->length = 8; + req.length = 8; break; } - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } int raw1394_start_lock64(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr, unsigned int extcode, octlet_t data, octlet_t arg, octlet_t *result, unsigned long tag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; octlet_t sendbuf[2]; if ((extcode > 7) || (extcode == 0)) { @@ -179,31 +179,31 @@ return -1; } - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_LOCK64; - req->generation = handle->generation; - req->tag = tag; + req.type = RAW1394_REQ_LOCK64; + req.generation = handle->generation; + req.tag = tag; - req->address = ((__u64)node << 48) | addr; - req->sendb = ptr2int(sendbuf); - req->recvb = ptr2int(result); - req->misc = extcode; + req.address = ((__u64)node << 48) | addr; + req.sendb = ptr2int(sendbuf); + req.recvb = ptr2int(result); + req.misc = extcode; switch (extcode) { case 3: /* EXTCODE_FETCH_ADD */ case 4: /* EXTCODE_LITTLE_ADD */ sendbuf[0] = data; - req->length = 8; + req.length = 8; break; default: sendbuf[0] = arg; sendbuf[1] = data; - req->length = 16; + req.length = 16; break; } - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } @@ -233,39 +233,39 @@ unsigned int speed, size_t length, quadlet_t *data, unsigned long rawtag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ISO_SEND; - req->generation = handle->generation; - req->tag = rawtag; + req.type = RAW1394_REQ_ISO_SEND; + req.generation = handle->generation; + req.tag = rawtag; - req->address = ((__u64)channel << 48) | speed; - req->misc = (tag << 16) | sy; - req->length = length; - req->sendb = ptr2int(data); + req.address = ((__u64)channel << 48) | speed; + req.misc = (tag << 16) | sy; + req.length = length; + req.sendb = ptr2int(data); - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } int raw1394_start_async_send(struct raw1394_handle *handle, size_t length, size_t header_length, unsigned int expect_response, quadlet_t *data, unsigned long rawtag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ASYNC_SEND; - req->generation = handle->generation; - req->tag = rawtag; + req.type = RAW1394_REQ_ASYNC_SEND; + req.generation = handle->generation; + req.tag = rawtag; - req->length = length; - req->misc = (expect_response << 16) | (header_length & 0xffff); - req->sendb = ptr2int(data); + req.length = length; + req.misc = (expect_response << 16) | (header_length & 0xffff); + req.sendb = ptr2int(data); - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } @@ -360,17 +360,17 @@ int raw1394_start_phy_packet_write(struct raw1394_handle *handle, quadlet_t data, unsigned long tag) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_PHYPACKET; - req->generation = handle->generation; - req->tag = tag; + req.type = RAW1394_REQ_PHYPACKET; + req.generation = handle->generation; + req.tag = tag; - req->sendb = data; + req.sendb = data; - return (int)write(handle->fd, req, sizeof(*req)); + return (int)write(handle->fd, &req, sizeof(req)); } int raw1394_phy_packet_write (struct raw1394_handle *handle, quadlet_t data) @@ -384,16 +384,16 @@ int raw1394_echo_request(struct raw1394_handle *handle, quadlet_t data) { - struct raw1394_request *req = &handle->req; + struct raw1394_request req; int retval=0; - CLEAR_REQ(req); + CLEAR_REQ(&req); - req->type = RAW1394_REQ_ECHO; - req->misc = data; + req.type = RAW1394_REQ_ECHO; + req.misc = data; - retval = (int)write(handle->fd, req, sizeof(*req)); - if (retval == sizeof(*req)) { + retval = (int)write(handle->fd, &req, sizeof(req)); + if (retval == sizeof(req)) { return 0; /* succcess */ } return -1; |
From: SVN U. <ben...@li...> - 2003-07-17 17:34:51
|
Author: bencollins Date: 2003-07-17 13:33:39 -0400 (Thu, 17 Jul 2003) New Revision: 127 Modified: trunk/src/ieee1394-ioctl.h trunk/src/iso.c Log: Patch from Dan Maas to add raw1394_iso_recv_flush() call to API, using the RAW1394_IOC_ISO_RECV_FLUSH ioctl. Updated the ieee1394-ioctl.h file aswell. Modified: trunk/src/ieee1394-ioctl.h ============================================================================== --- trunk/src/ieee1394-ioctl.h 2003-07-17 17:28:56 UTC (rev 126) +++ trunk/src/ieee1394-ioctl.h 2003-07-17 17:33:39 UTC (rev 127) @@ -100,6 +100,8 @@ _IOW ('#', 0x27, struct raw1394_iso_packets) #define RAW1394_IOC_ISO_XMIT_SYNC \ _IO ('#', 0x28) +#define RAW1394_IOC_ISO_RECV_FLUSH \ + _IO ('#', 0x29) #endif /* __IEEE1394_IOCTL_H */ Modified: trunk/src/iso.c ============================================================================== --- trunk/src/iso.c 2003-07-17 17:28:56 UTC (rev 126) +++ trunk/src/iso.c 2003-07-17 17:33:39 UTC (rev 127) @@ -256,7 +256,7 @@ **/ int raw1394_iso_recv_listen_channel(raw1394handle_t handle, unsigned char channel) { - if(handle->iso_mode != ISO_RECV) { + if (handle->iso_mode != ISO_RECV) { errno = EINVAL; return -1; } @@ -269,7 +269,7 @@ **/ int raw1394_iso_recv_unlisten_channel(raw1394handle_t handle, unsigned char channel) { - if(handle->iso_mode != ISO_RECV) { + if (handle->iso_mode != ISO_RECV) { errno = EINVAL; return -1; } @@ -278,6 +278,26 @@ } /** + * raw1394_iso_recv_flush - if you specified an irq_interval > 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 < 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. + */ +int raw1394_iso_recv_flush(raw1394handle_t handle) +{ + if (handle->iso_mode != ISO_RECV) { + errno = EINVAL; + return -1; + } + + return ioctl(handle->fd, RAW1394_IOC_ISO_RECV_FLUSH, 0); +} + +/** * raw1394_iso_recv_set_channel_mask - listen or unlisten to a whole bunch of channels at once * @mask: 64-bit mask of channels, 1 means listen, 0 means unlisten, * channel 0 is LSB, channel 63 is MSB @@ -286,7 +306,7 @@ **/ int raw1394_iso_recv_set_channel_mask(raw1394handle_t handle, u_int64_t mask) { - if(handle->iso_mode != ISO_RECV) { + if (handle->iso_mode != ISO_RECV) { errno = EINVAL; return -1; } |
From: SVN U. <ben...@li...> - 2003-07-17 17:30:05
|
Author: bencollins Date: 2003-07-17 13:28:56 -0400 (Thu, 17 Jul 2003) New Revision: 126 Added: trunk/libraw1394.pc.in Modified: trunk/Makefile.am trunk/configure.ac Log: pkg-config support from Kristian Hogsberg. Modified: trunk/Makefile.am ============================================================================== --- trunk/Makefile.am 2003-07-17 17:26:09 UTC (rev 125) +++ trunk/Makefile.am 2003-07-17 17:28:56 UTC (rev 126) @@ -5,8 +5,11 @@ aclocaldir = @datadir@/aclocal aclocal_DATA = libraw1394.m4 -EXTRA_DIST = libraw1394.m4 +pkgconfigdir = @libdir@/pkgconfig +pkgconfig_DATA = libraw1394.pc +EXTRA_DIST = libraw1394.m4 libraw1394.pc + doc: psdoc pdfdoc htmldoc psdoc: Modified: trunk/configure.ac ============================================================================== --- trunk/configure.ac 2003-07-17 17:26:09 UTC (rev 125) +++ trunk/configure.ac 2003-07-17 17:28:56 UTC (rev 126) @@ -25,6 +25,7 @@ CFLAGS=${CFLAGS:-"-Wall -O2"} AC_OUTPUT([ Makefile +libraw1394.pc src/Makefile tools/Makefile doc/Makefile Added: trunk/libraw1394.pc.in ============================================================================== --- trunk/libraw1394.pc.in 2003-07-17 17:26:09 UTC (rev 125) +++ trunk/libraw1394.pc.in 2003-07-17 17:28:56 UTC (rev 126) @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libraw1394 +Description: Interface library for the Linux IEEE1394 drivers. +Version: @VERSION@ +Libs: -L${libdir} -lraw1394 +Cflags: -I${includedir}/libraw1394 |
From: SVN U. <ben...@li...> - 2003-07-17 17:27:23
|
Author: bencollins Date: 2003-07-17 13:26:09 -0400 (Thu, 17 Jul 2003) New Revision: 125 Modified: trunk/src/Makefile.am Log: Remove trailing whitespace, which automake chokes on. Patch from Manish Singh. Modified: trunk/src/Makefile.am ============================================================================== --- trunk/src/Makefile.am 2003-07-13 05:34:30 UTC (rev 124) +++ trunk/src/Makefile.am 2003-07-17 17:26:09 UTC (rev 125) @@ -12,7 +12,7 @@ readwrite.c \ iso.c \ fcp.c \ - arm.c \ + arm.c \ version.c \ kernel-raw1394.h \ raw1394_private.h |
From: SVN U. <ben...@li...> - 2003-07-13 06:54:29
|
Author: bencollins Date: 2003-07-13 01:34:30 -0400 (Sun, 13 Jul 2003) New Revision: 124 Modified: trunk/debian/control Log: Fixed section for -dev package. Modified: trunk/debian/control ============================================================================== --- trunk/debian/control 2003-07-13 01:56:59 UTC (rev 123) +++ trunk/debian/control 2003-07-13 05:34:30 UTC (rev 124) @@ -8,7 +8,7 @@ Package: libraw1394-dev Architecture: any -Section: devel +Section: libdevel Depends: libc6-dev, ${shlibs:Depends} Description: library for direct access to IEEE 1394 bus - development files libraw1394 is the only supported interface to the kernel side raw1394 |
From: SVN U. <ben...@li...> - 2003-07-13 03:16:51
|
Author: bencollins Date: 2003-07-12 21:56:59 -0400 (Sat, 12 Jul 2003) New Revision: 123 Removed: branches/rawiso/ Log: Obsolete branch |