aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Common
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-02-20 18:47:25 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-02-20 18:47:25 +0000
commit4068efbd1898058854f9ca5a967bc5ad5a851759 (patch)
tree2b69bbeafedf62cae42634354d4c4ea3401f9fdb /LUFA/Drivers/USB/Class/Common
parent6c738343ae7bab9bd96aa5fc29d5656d966647b5 (diff)
downloadlufa-4068efbd1898058854f9ca5a967bc5ad5a851759.tar.gz
lufa-4068efbd1898058854f9ca5a967bc5ad5a851759.tar.bz2
lufa-4068efbd1898058854f9ca5a967bc5ad5a851759.zip
Remove potentially unaligned uint32_t access in HIDParser.c, replace with standard C bit shifts.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Common')
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c
index d3e7d0226..4447e8a0b 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c
@@ -61,17 +61,18 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
{
case HID_RI_DATA_BITS_32:
- ReportItemData = le32_to_cpu(*((uint32_t*)ReportData));
+ ReportItemData = (((uint32_t)ReportData[3] << 24) | ((uint32_t)ReportData[2] << 16) |
+ ((uint16_t)ReportData[1] << 8) | ReportData[0]);
ReportSize -= 4;
ReportData += 4;
break;
case HID_RI_DATA_BITS_16:
- ReportItemData = le16_to_cpu(*((uint16_t*)ReportData));
+ ReportItemData = (((uint16_t)ReportData[1] << 8) | (ReportData[0]));
ReportSize -= 2;
ReportData += 2;
break;
case HID_RI_DATA_BITS_8:
- ReportItemData = *((uint8_t*)ReportData);
+ ReportItemData = ReportData[0];
ReportSize -= 1;
ReportData += 1;
break;