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:
@@ -535,14 +535,14 @@ process_scan_1 (char *data,
|
|||||||
/* only a few cases implemented so far */
|
/* only a few cases implemented so far */
|
||||||
case 4:
|
case 4:
|
||||||
if (!buffer_data->channels[k]->is_signed) {
|
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;
|
val = val >> buffer_data->channels[k]->shift;
|
||||||
if (buffer_data->channels[k]->bits_used < 32)
|
if (buffer_data->channels[k]->bits_used < 32)
|
||||||
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;
|
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;
|
||||||
*ch_val = (int) val;
|
*ch_val = (int) val;
|
||||||
*ch_present = TRUE;
|
*ch_present = TRUE;
|
||||||
} else {
|
} 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;
|
val = val >> buffer_data->channels[k]->shift;
|
||||||
if (buffer_data->channels[k]->bits_used < 32)
|
if (buffer_data->channels[k]->bits_used < 32)
|
||||||
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;
|
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1;
|
||||||
|
Reference in New Issue
Block a user