- dev->tx_msg.length=(__u8)len;
- dev->tx_msg.flags=(__u16)msg->flags;
-
- if(msg->flags&MSG_EXT) {
- dev->tx_msg.id[0]=(msg->id) & 0xff;
- dev->tx_msg.id[1]=(msg->id>>8) & 0xff;
- dev->tx_msg.id[2]=(msg->id>>16) & 0xff;
- dev->tx_msg.id[3]=(msg->id>>24) & 0xff;
- } else {
- dev->tx_msg.id[0]=(msg->id) & 0xff;
- dev->tx_msg.id[1]=(msg->id>>8) & 0xff;
- dev->tx_msg.id[2]=0;
- dev->tx_msg.id[3]=0;
- }
- for(i=0; i < len; i++) {
- dev->tx_msg.data[i]=(__u8) msg->data[i];
+
+ *(uint8_t *)(dev->tx_msg+1)=len & 0xFF;
+ *(uint16_t *)(dev->tx_msg+2)=cpu_to_le16(msg->flags);
+ *(uint32_t *)(dev->tx_msg+4)=cpu_to_le32(msg->id);
+
+ for(ptr=dev->tx_msg+8,i=0; i < len; ptr++,i++) {
+ *ptr=msg->data[i] & 0xFF;