Commit Graph

21 Commits

Author SHA1 Message Date
Stefan Richter ba8d2119ba tools: Fix startup of dumpiso and sendiso on juju
Quoting the errno manual:

"[errno] is set by system calls and some library functions in the
event of an error to indicate  what went wrong.  Its value is
significant only when the return value of the call indicated an
error (i.e., -1 from most system calls; -1 or NULL from most library
functions); a function that succeeds is allowed to change errno.
Valid error numbers are all nonzero; errno is never set to zero by
any system call or library function."

Dumpiso and sendiso checked for raw1394_set_port() failure by
looking at errno rather than by looking at the function's return
code.  This happened to work on top of raw1394 by lucky incident but
no longer works on top of firewire-core.

Reported-by: Vladimir Romanov <blueboar2@gmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2013-08-24 11:51:11 +02:00
Stefan Richter a24ab81d57 testlibraw: Fix printing of card name
Testlibraw always showed the name of the first card rather than the
name of the current card.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-06-30 19:13:35 +02:00
Stefan Richter d50f7381b2 Add raw1394_get_speed() API
This lets initiators of isochronous streams or asynchronous streams from
or to the local node figure out what maximum speed can be configured.

Furthermore it can be used to display connection speeds for informative
purposes without having to perform topology analysis (in case of 1394a
buses) or extensive phy port status queries (in case of 1394b buses).

To be in line with other existing libraw1394 APIs which use nodeid_t
variables, this API identifies a node only via a card:nodeID tuple which
is unsafe against generation changes.  A node can only be properly
identified by card:generation:nodeID tuples.  However, since this new
API extension and libraw1394 as a whole is mainly aimed towards existing
libraw1394 client code bases rather than new developments, I decided
against making this call race free but somewhat more difficult to use in
typical existing client code.

A unit test for the new call is added to testlibraw as well.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-06-30 19:02:20 +02:00
Stefan Richter 5b4cffe9d7 Add raw1394_read_cycle_timer_and_clock() API
This is an extension relative to raw1394_read_cycle_timer().
It lets the client choose a system clock other than CLOCK_REALTIME.

Use case: http://subversion.ffado.org/ticket/242

The underlying ioctl supports reading the system clock with nanoseconds
resolution.  The new libraw1394 call sticks with microseconds resolution
though.  This makes transition from (or parallel use with)
raw1394_read_cycle_timer() easier.  Besides, the call itself takes longer
than a  microsecond, primarily due to a costly MMIO read (on many
controllers even three or more MMIO reads).

Unit tests with CLOCK_MONOTONIC and CLOCK_MONOTONIC_RAW are added to
testlibraw as well.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-06-18 01:53:32 +02:00
Stefan Richter 56056a9607 Tweak raw1394_add_config_rom_descriptor() API, add documentation and test case
To conform with 'size' arguments of other libraw1394 calls, change the one in
raw1394_add_config_rom_descriptor() from quadlets to bytes.  This breaks runtime
compatibility with potential clients that were written against B.J.'s original
patch, hence reorder arguments just to break compatibility also at compile time.

Change errno to ENOSYS (function not implemented) when called while running on
top of raw1394.

Allow &token to be NULL for convenience of clients which don't require
raw1394_remove_config_rom_descriptor().

Add exhaustive documentation.  Much of it is copied from the documentation of
the underlying ioctl.

Add example code which doubles as unit test in testlibraw.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-06-18 00:19:23 +02:00
Stefan Richter 8af54fd97d tools/dumpiso: Add write() return code checks, fix harmless format string bug
Addresses a few compiler warnings about unused results and format string
mismatch.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2010-09-07 11:26:55 +02:00
Stefan Richter b40bb76891 tools/testlibraw: Fix a harmless format string bug
The compiler warned that size_t and %d don't go well together.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2010-09-07 11:26:54 +02:00
Stefan Richter babed1e589 testlibraw: fix printing of local config ROM
Since "testlibraw: test all cards instead of only the first", the
actual ROM content wasn't printed anymore due to a mistake in a
printf format string.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
2009-05-27 21:07:05 -07:00
Stefan Richter 38a43c2736 testlibraw: test raw1394_read_cycle_timer()
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
2008-12-07 23:10:17 -08:00
Stefan Richter b63022aeeb testlibraw: test all cards instead of only the first
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
2008-12-07 23:09:09 -08:00
Erik Hovland 1e532a7f9f Makes sure to check any return values
The return value of any function should be checked if that function
uses the return value to provide some sort of status information.

Signed-off-by: Erik Hovland <erik@hovland.org>
Signed-off-by: Dan Dennedy <dan@dennedy.org>
2008-10-28 22:52:39 -07:00
Philippe Troin 477b6eee6d Plug dir leak and initialize data structs
While trying to track down some crashes in kino, I found the following problems
with libraw1394:

 * There is a DIR* leak in raw1394_set_port().
 * Lots of data structures are not fully initialized when calling IEEE1394
   ioctl()s.  These cause valgrind errors (benign, as valgrind does not know
   how to interpret all ioctls.  However these also cause kino to crash in
   libraw1394.  I've added a bunch of memset()s to prevent this problem from
   happening.

Forward-ported to libraw1394 git tree by Jarod Wilson.
2008-07-05 13:09:29 -07:00
Dan Dennedy 0ea462ae98 First cut at integrating juju
This is currently working with legacy ieee1394 and tools/testlibraw.
2008-04-23 17:44:36 -07:00
Kristian Høgsberg 5659d28c2d Add the juju support work so far. 2007-03-26 16:49:12 -04:00
ddennedy 45503d30d3 cleanup some compiler warnings
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@165 53a565d1-3bb7-0310-b661-cf11e63c67ab
2006-04-09 02:25:22 +00:00
ddennedy a07ba8cee9 bump version of isodump file
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@148 53a565d1-3bb7-0310-b661-cf11e63c67ab
2004-11-19 02:15:15 +00:00
ddennedy eb9b08bd5c port iso examples to rawiso API
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@147 53a565d1-3bb7-0310-b661-cf11e63c67ab
2004-11-18 05:24:13 +00:00
ddennedy ff3c421f8d bump versions, build fixes, and doc updates
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@140 53a565d1-3bb7-0310-b661-cf11e63c67ab
2004-10-30 22:49:27 +00:00
bencollins 2248793646 Fix compiler warnings.
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@109 53a565d1-3bb7-0310-b661-cf11e63c67ab
2003-07-13 00:49:54 +00:00
ddennedy 915a20a96f merged weihs branch
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@84 53a565d1-3bb7-0310-b661-cf11e63c67ab
2002-10-23 21:18:49 +00:00
aeb 135babee19 Moved testlibraw.c from src to tools directory.
Added sendiso and dumpiso programs in tools directory.
Added man pages for sendiso and dumpiso in doc directory.


git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@66 53a565d1-3bb7-0310-b661-cf11e63c67ab
2001-06-08 00:31:12 +00:00