diff options
author | Pieter Palmers <pieterp@joow.be> | 2007-02-03 17:44:39 +0100 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-02-17 14:39:33 +0100 |
commit | 3dc5ea9b31a8c83cffa338aba91adbc9bd387002 (patch) | |
tree | 5a9d9682d77fb3a1cfd3dc27654301f69ababf12 /drivers/ieee1394/raw1394.h | |
parent | 91efa462054d44ae52b0c6c8325ed5e899f2cd17 (diff) | |
download | op-kernel-dev-3dc5ea9b31a8c83cffa338aba91adbc9bd387002.zip op-kernel-dev-3dc5ea9b31a8c83cffa338aba91adbc9bd387002.tar.gz |
ieee1394: cycle timer read extension for raw1394
This implements the simultaneous read of the isochronous cycle timer and
the system clock (in usecs). This allows to express the exact receive
time of an ISO packet as a system time with microsecond accuracy.
http://bugzilla.kernel.org/show_bug.cgi?id=7773
The counterpart patch for libraw1394 can be found at
http://thread.gmane.org/gmane.linux.kernel.firewire.devel/8934
Patch update (Stefan R.): Disable preemption and local interrupts.
Prevent integer overflow. Add paranoid error checks and kerneldoc to
hpsb_read_cycle_timer. Move it to other ieee1394_core high-level API
functions. Change comments. Adjust whitespace. Rename struct
_raw1394_cycle_timer.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Acked-by: Pieter Palmers <pieterp@joow.be>
Acked-by: Dan Dennedy <dan@dennedy.org>
Diffstat (limited to 'drivers/ieee1394/raw1394.h')
-rw-r--r-- | drivers/ieee1394/raw1394.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ieee1394/raw1394.h b/drivers/ieee1394/raw1394.h index 35bfc38..7bd22ee 100644 --- a/drivers/ieee1394/raw1394.h +++ b/drivers/ieee1394/raw1394.h @@ -178,4 +178,14 @@ struct raw1394_iso_status { __s16 xmit_cycle; }; +/* argument to RAW1394_IOC_GET_CYCLE_TIMER ioctl */ +struct raw1394_cycle_timer { + /* contents of Isochronous Cycle Timer register, + as in OHCI 1.1 clause 5.13 (also with non-OHCI hosts) */ + __u32 cycle_timer; + + /* local time in microseconds since Epoch, + simultaneously read with cycle timer */ + __u64 local_time; +}; #endif /* IEEE1394_RAW1394_H */ |