iio: Use unaligned access helpers to access buffer values

So as to avoid unaligned access warnings on ARM, or unsigned values be
interpreted as signed.

Closes: #191
This commit is contained in:
Bastien Nocera
2017-10-11 18:24:03 +02:00
parent 0640bf01a6
commit 393c1139dd

View File

@@ -535,14 +535,14 @@ process_scan_1 (char *data,
/* only a few cases implemented so far */
case 4:
if (!buffer_data->channels[k]->is_signed) {
guint32 val = *(guint32 *) (data + buffer_data->channels[k]->location);
guint32 val = iio_readu32(buffer_data->channels[k], (guint8 *) data);
val = val >> buffer_data->channels[k]->shift;
if (buffer_data->channels[k]->bits_used < 32)
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;
*ch_val = (int) val;
*ch_present = TRUE;
} else {
gint32 val = *(gint32 *) (data + buffer_data->channels[k]->location);
gint32 val = iio_read32(buffer_data->channels[k], (gint8 *) data);
val = val >> buffer_data->channels[k]->shift;
if (buffer_data->channels[k]->bits_used < 32)
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;