aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddennedy <ddennedy@53a565d1-3bb7-0310-b661-cf11e63c67ab>2005-07-04 03:00:50 +0000
committerddennedy <ddennedy@53a565d1-3bb7-0310-b661-cf11e63c67ab>2005-07-04 03:00:50 +0000
commit19065515152718407db849b0be71a8eeee80deaa (patch)
tree53aaf9dba643e8967d02a5b5509f2b4a1d4ca416
parent87941d01c4188cc63f0e99c229b568164ad922bf (diff)
downloadlibraw1394-19065515152718407db849b0be71a8eeee80deaa.tar.gz
add sanity check to queuing of packets in rawiso xmit
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@159 53a565d1-3bb7-0310-b661-cf11e63c67ab
-rw-r--r--src/iso.c5
-rw-r--r--src/raw1394.h16
2 files changed, 15 insertions, 6 deletions
diff --git a/src/iso.c b/src/iso.c
index 9e19e49..914b3ec 100644
--- a/src/iso.c
+++ b/src/iso.c
@@ -269,7 +269,6 @@ int raw1394_iso_recv_start(raw1394handle_t handle, int start_on_cycle, int tag_m
return 0;
}
-
static int _raw1394_iso_xmit_queue_packets(raw1394handle_t handle)
{
struct raw1394_iso_status *stat = &handle->iso_status;
@@ -282,6 +281,10 @@ static int _raw1394_iso_xmit_queue_packets(raw1394handle_t handle)
goto out;
}
+ /* ensure stat->n_packets is sane */
+ if (stat->n_packets > stat->config.buf_packets)
+ stat->n_packets = stat->config.buf_packets;
+
/* we could potentially send up to stat->n_packets packets */
packets.n_packets = 0;
packets.infos = malloc(stat->n_packets * sizeof(struct raw1394_iso_packet_info));
diff --git a/src/raw1394.h b/src/raw1394.h
index bd482da..833915f 100644
--- a/src/raw1394.h
+++ b/src/raw1394.h
@@ -1207,7 +1207,9 @@ typedef int (*iso_handler_t)(raw1394handle_t, int channel, size_t length,
**/
iso_handler_t raw1394_set_iso_handler(raw1394handle_t handle,
unsigned int channel,
- iso_handler_t new_h);
+ iso_handler_t new_h)
+__attribute__ ((deprecated));
+
/**
* raw1394_start_iso_rcv - enable isochronous receiving (DEPRECATED)
* @handle: libraw1394 handle
@@ -1219,7 +1221,8 @@ iso_handler_t raw1394_set_iso_handler(raw1394handle_t handle,
* Isochronous packets are then passed to the callback specified with
* raw1394_set_iso_handler().
**/
-int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel);
+int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel)
+__attribute__ ((deprecated));
/**
* raw1394_stop_iso_rcv - stop isochronous receiving (DEPRECATED)
@@ -1230,7 +1233,8 @@ int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel);
*
* Stops the reception of isochronous packets in @channel on @handle.
**/
-int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel);
+int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel)
+__attribute__ ((deprecated));
/**
* raw1394_start_iso_write - initiate an isochronous packet write (DEPRECATED)
@@ -1259,7 +1263,8 @@ int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel);
int raw1394_start_iso_write(raw1394handle_t handle, unsigned int channel,
unsigned int tag, unsigned int sy,
unsigned int speed, size_t length, quadlet_t *data,
- unsigned long rawtag);
+ unsigned long rawtag)
+__attribute__ ((deprecated));
/**
* raw1394_iso_write - DEPRECATED
@@ -1269,7 +1274,8 @@ int raw1394_start_iso_write(raw1394handle_t handle, unsigned int channel,
**/
int raw1394_iso_write(raw1394handle_t handle, unsigned int channel,
unsigned int tag, unsigned int sy, unsigned int speed,
- size_t length, quadlet_t *data);
+ size_t length, quadlet_t *data)
+__attribute__ ((deprecated));
#ifdef __cplusplus
}