On Fri, Sep 18, 2015 at 08:09:53PM +0200, Uwe Hermann wrote: > Hi, > > On Thu, Sep 17, 2015 at 11:59:42AM +0200, Bartosz Golaszewski wrote: > > http://git.baylibre.com/pub/acme/libsigrok/ revB > > Merged, thanks! > > Looks good, one minor improvement you could do is use g_ntohl() instead > of ntohl(), which also avoids the inet.h include.
Or maybe you should not use ntohl() at all. But more importantly, you can't map the eeprom content directly to a struct whose size will vary depending on the target arch, and you probably shouldn't rely on a packed struct which is not standard C (even though it is probably supported by all sigrok relevant compilers). I suggest you just read the whole eeprom to a simple byte buffer and extract the fields you want depending on their formats with something like this: rd = read(fd, buf, len); eeprom->type = RB32(buf + 0); eeprom->rev = RB32(buf + 4); eeprom->shunt = RB64(buf + 8); memcpy(eeprom->serial, buf + 17, EEPROM_SERIAL_SIZE); This way, you stay fully standard and portable. Aurel ------------------------------------------------------------------------------ _______________________________________________ sigrok-devel mailing list sigrok-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sigrok-devel