diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-06-21 15:38:52 +0200 |
---|---|---|
committer | Dan Dennedy <ddennedy@kino.dennedy.org> | 2008-07-05 13:16:30 -0700 |
commit | 4ce429a797a7790d5c42cb4398b54b549a01d625 (patch) | |
tree | bc9637cdfcd51c1af5433874e79acb860e5895d0 | |
parent | 477b6eee6d7d2881945eb5acfc23d3930bb506b1 (diff) | |
download | libraw1394-4ce429a797a7790d5c42cb4398b54b549a01d625.tar.gz |
Fix raw1394_read_cycle_timer after juju integration
The ieee1394 version of raw1394_read_cycle_timer() fell over the cliff
in "First cut at integrating juju". This brings it back and adds a juju
version of it.
Also correct a typo in the inline documentation: s/get/read/
-rw-r--r-- | src/dispatch.c | 11 | ||||
-rw-r--r-- | src/fw-iso.c | 19 | ||||
-rw-r--r-- | src/fw.h | 2 | ||||
-rw-r--r-- | src/raw1394.h | 2 |
4 files changed, 33 insertions, 1 deletions
diff --git a/src/dispatch.c b/src/dispatch.c index 4fe805e..aa40071 100644 --- a/src/dispatch.c +++ b/src/dispatch.c @@ -543,3 +543,14 @@ void raw1394_iso_shutdown(raw1394handle_t handle) else ieee1394_iso_shutdown(handle->mode.ieee1394); } + +int raw1394_read_cycle_timer(raw1394handle_t handle, + u_int32_t *cycle_timer, u_int64_t *local_time) +{ + if (handle && handle->is_fw) + return fw_read_cycle_timer(handle->mode.fw, + cycle_timer, local_time); + else + return ieee1394_read_cycle_timer(handle->mode.ieee1394, + cycle_timer, local_time); +} diff --git a/src/fw-iso.c b/src/fw-iso.c index a1794c3..f493444 100644 --- a/src/fw-iso.c +++ b/src/fw-iso.c @@ -529,3 +529,22 @@ void fw_iso_shutdown(fw_handle_t handle) free(handle->iso.packets); handle->iso.packets = NULL; } + +int fw_read_cycle_timer(fw_handle_t handle, + u_int32_t *cycle_timer, u_int64_t *local_time) +{ +#ifdef FW_CDEV_IOC_GET_CYCLE_TIMER /* added in kernel 2.6.24 */ + int err; + struct fw_cdev_get_cycle_timer ctr = { 0 }; + + err = ioctl(handle->iso.fd, FW_CDEV_IOC_GET_CYCLE_TIMER, &ctr); + if (!err) { + *cycle_timer = ctr.cycle_timer; + *local_time = ctr.local_time; + } + return err; +#else + errno = ENOSYS; + return -1; +#endif /* defined(FW_CDEV_IOC_GET_CYCLE_TIMER) */ +} @@ -253,5 +253,7 @@ int fw_iso_recv_unlisten_channel(fw_handle_t handle, int fw_iso_recv_set_channel_mask(fw_handle_t handle, u_int64_t mask); void fw_iso_stop(fw_handle_t handle); void fw_iso_shutdown(fw_handle_t handle); +int fw_read_cycle_timer(fw_handle_t handle, + u_int32_t *cycle_timer, u_int64_t *local_time); #endif diff --git a/src/raw1394.h b/src/raw1394.h index 1bcdf19..7cc07e6 100644 --- a/src/raw1394.h +++ b/src/raw1394.h @@ -329,7 +329,7 @@ void raw1394_iso_stop(raw1394handle_t handle); void raw1394_iso_shutdown(raw1394handle_t handle); /** - * raw1394_get_cycle_timer - get the current value of the cycle timer + * raw1394_read_cycle_timer - get the current value of the cycle timer * @handle: libraw1394 handle * @cycle_timer: buffer for Isochronous Cycle Timer * @local_time: buffer for local system time in microseconds since Epoch |