On Wed, 10 Apr 2019 at 01:26, Erik Kline <1814...@bugs.launchpad.net> wrote: > Sure. Looking at HEAD, and even the surrounding the lines, I think I > should have tried STRUCT_short_ifreq instead of STRUCT_int_ifreq, though > I'm not sure what the real difference would be.
The multiple STRUCT_*_ifreq are working around the fact that our MK_STRUCT infrastructure can't handle unions. The struct ifreq is a char array followed by a union whose members are various different types. You should use the STRUCT_*_ifreq corresponding to whatever type the union field used by this particular ioctl is. For SIOCGIFNAME the ifr_ifindex is read, and that's an int, so you want STRUCT_int_ifreq. (If you used the 'short' version by mistake this would probably break for the case of big-endian guest and little-endian host or vice-versa because we'd swap the wrong amount of data.) thanks -- PMM