summaryrefslogtreecommitdiffstats
path: root/juju
diff options
context:
space:
mode:
authorGravatar Kristian Høgsberg 2007-03-31 19:45:39 -0400
committerGravatar Kristian Høgsberg 2007-03-31 19:45:39 -0400
commit89281b576730c5f440bbd539e3efb5d5ab1036bc (patch)
tree04e681d45af466031df81be5670d61d4bb8c10c4 /juju
parentGet rawiso receive a little closer to working. (diff)
Decode iso headers properly.
Diffstat (limited to '')
-rw-r--r--juju/raw1394-iso.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/juju/raw1394-iso.c b/juju/raw1394-iso.c
index 893d36a..b65faf7 100644
--- a/juju/raw1394-iso.c
+++ b/juju/raw1394-iso.c
@@ -177,20 +177,19 @@ flush_recv_packets(raw1394handle_t handle,
end = (void *) interrupt->header + interrupt->header_length;
cycle = interrupt->cycle;
dropped = 0;
-
- /* FIXME: compute real buffer index. */
data = handle->iso.buffer +
handle->iso.packet_tail * handle->iso.max_packet_size;
while (p < end) {
header = be32_to_cpu(*p++);
- len = header >> 8;
- channel = header >> 8;
- tag = header >> 8;
- sy = header >> 8;
+ len = header >> 16;
+ tag = (header >> 14) & 0x3;
+ channel = (header >> 8) & 0x3f;
+ sy = header & 0x0f;
- printf("len=%d, channel=%d, tag=%d, sy=%d\n",
- len, channel, tag, sy);
+ fprintf(stderr,
+ "header: %08x, len=%d, channel=%d, tag=%d, sy=%d, packet_tail=0x%x\n",
+ header, len, channel, tag, sy, handle->iso.packet_tail);
d = handle->iso.recv_handler(handle, data, len, channel,
tag, sy, cycle, dropped);
@@ -199,6 +198,10 @@ flush_recv_packets(raw1394handle_t handle,
cycle++;
}
+ handle->iso.packet_tail += interrupt->header_length / 4;
+ if (handle->iso.packet_tail >= handle->iso.buf_packets)
+ handle->iso.packet_tail -= handle->iso.buf_packets;
+
queue_recv_packets(handle);
return 0;
avatar' /> aeb 1-1/+1 2000-09-10Work around compiler warnings for int/ptr casts.Gravatar aeb 6-10/+20 2000-09-10Added control files for Debian packages.Gravatar aeb 6-8/+106 2000-09-01Added missing prototypes for iso send functions.Gravatar aeb 1-0/+7 2000-08-08Added raw1394_get_irm_id().Gravatar aeb 7-7/+39 2000-08-06Added support for isochronous sending.Gravatar aeb 3-0/+35 2000-07-05Added raw1394_reset_bus() call.Gravatar aeb 4-0/+23 2000-06-22- Set library version info in configure.in, use in src/Makefile.am.Gravatar aeb 4-2/+16 2000-06-15Update libtool version number.Gravatar aeb 2-2/+2 2000-06-14Added copyright headers.Gravatar aeb 6-0/+54 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 2000-06-02Modified support for 32/64 bit environments, control struct fields have fixed...Gravatar aeb 7-43/+28 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5