diff options
author | 2003-09-11 02:47:22 +0000 | |
---|---|---|
committer | 2003-09-11 02:47:22 +0000 | |
commit | e89e0feee45595f045d01ad845079dc035dfc165 (patch) | |
tree | 078231d99e998c5a7a3727bb32a215d2b272911b /src/readwrite.c | |
parent | Increase so maj/age so account for new recv-flush call. (diff) |
Async stream support from Jim Radford.
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@130 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to '')
-rw-r--r-- | src/readwrite.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/readwrite.c b/src/readwrite.c index b3127d3..ca6ac56 100644 --- a/src/readwrite.c +++ b/src/readwrite.c @@ -249,6 +249,28 @@ int raw1394_start_iso_write(struct raw1394_handle *handle, unsigned int channel, 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 @@ int raw1394_iso_write(struct raw1394_handle *handle, unsigned int channel, 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) |