Added support for isochronous sending.

git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@34 53a565d1-3bb7-0310-b661-cf11e63c67ab
This commit is contained in:
aeb 2000-08-06 02:44:00 +00:00
parent c1e3916f70
commit 6ac98fd9fd
3 changed files with 35 additions and 0 deletions

1
NEWS
View File

@ -1,6 +1,7 @@
Version 0.8:
- functions for isochronous sending
- new raw1394_reset_bus() function to reset the bus
Version 0.7:

View File

@ -18,6 +18,7 @@
#define RAW1394_REQ_ASYNC_WRITE 101
#define RAW1394_REQ_LOCK 102
#define RAW1394_REQ_LOCK64 103
#define RAW1394_REQ_ISO_SEND 104
#define RAW1394_REQ_ISO_LISTEN 200
#define RAW1394_REQ_FCP_LISTEN 201

View File

@ -94,6 +94,27 @@ int raw1394_start_lock(struct raw1394_handle *handle, nodeid_t node,
return (int)write(handle->fd, req, sizeof(*req));
}
int raw1394_start_iso_write(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_ISO_SEND;
req->generation = handle->generation;
req->tag = tag;
req->address = ((__u64)channel << 48) | speed;
req->misc = (tag << 16) | sy;
req->length = length;
req->sendb = data;
return (int)write(handle->fd, req, sizeof(*req));
}
#define SYNCFUNC_VARS \
struct sync_cb_data sd = { 0, 0 }; \
@ -142,5 +163,17 @@ int raw1394_lock(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr,
SYNCFUNC_BODY;
}
int raw1394_iso_write(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_iso_write(handle, channel, tag, sy, speed, length,
data, (unsigned long)&rh);
SYNCFUNC_BODY;
}
#undef SYNCFUNC_VARS
#undef SYNCFUNC_BODY