diff options
| author | 1999-12-29 22:24:32 +0000 | |
|---|---|---|
| committer | 1999-12-29 22:24:32 +0000 | |
| commit | 04f65912c3c04161daee655136d8d74d3763da16 (patch) | |
| tree | 0e753f84101b58ff77c431bfcc7851f475b7db7c /src/readwrite.c | |
| parent | - Added FCP register addresses (diff) | |
Added isochronous I/O support
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@4 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to 'src/readwrite.c')
| -rw-r--r-- | src/readwrite.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/readwrite.c b/src/readwrite.c index 37e9f71..192b0a1 100644 --- a/src/readwrite.c +++ b/src/readwrite.c @@ -6,20 +6,6 @@ #include "raw1394_private.h" -struct sync_cb_data { - int done; - int errcode; -}; - -static int sync_cb(struct raw1394_handle *unused, - struct sync_cb_data *data, int error) -{ - data->errcode = error; - data->done = 1; - return 0; -} - - int raw1394_start_read(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr, size_t length, quadlet_t *buffer, unsigned long tag) @@ -60,14 +46,17 @@ int raw1394_start_write(struct raw1394_handle *handle, nodeid_t node, -#define SYNCFUNC_VARS \ - struct sync_cb_data sd = { 0, 0 }; \ - struct raw1394_reqhandle rh = { (req_callback_t)sync_cb, &sd }; \ +#define SYNCFUNC_VARS \ + struct sync_cb_data sd = { 0, 0 }; \ + struct raw1394_reqhandle rh = { (req_callback_t)_raw1394_sync_cb, \ + &sd }; \ int err -#define SYNCFUNC_BODY \ - if (err < 0) return err; \ - while (!sd.done) raw1394_loop_iterate(handle); \ +#define SYNCFUNC_BODY \ + while (!sd.done) { \ + if (err < 0) return err; \ + err = raw1394_loop_iterate(handle); \ + } \ return sd.errcode int raw1394_read(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr, |
