]> sigrok.org Git - libsigrok.git/commitdiff
link-mso19: improve endianess conversion, avoid mem access alignment issue
authorGerhard Sittig <redacted>
Wed, 21 Feb 2018 17:04:29 +0000 (18:04 +0100)
committerUwe Hermann <redacted>
Sat, 3 Mar 2018 17:58:59 +0000 (18:58 +0100)
Prefer sigrok's endianess conversion helper over the inet htons()
routine which is harder to read (is "network order" little or big?).

Writing the conversion results in units of bytes also avoids misaligned
memory access. The header length is odd, each payload item got written
as an uint16_t item to an odd address.

src/hardware/link-mso19/protocol.c

index b0cb2d8a7ecb120d00260a2ebadd46dcbfb97644..8721ec2b0c4761e4abf675de1e0a722821575057 100644 (file)
@@ -48,8 +48,8 @@ SR_PRIV int mso_send_control_message(struct sr_serial_dev_inst *serial,
        p += sizeof(mso_head);
 
        for (i = 0; i < n; i++) {
-               *(uint16_t *) p = g_htons(payload[i]);
-               p += 2;
+               WB16(p, payload[i]);
+               p += sizeof(uint16_t);
        }
        memcpy(p, mso_foot, sizeof(mso_foot));