> On 8 Sep 2016, at 22:20, Alan Stern <[email protected]> wrote:
>
> On Thu, 8 Sep 2016, Binyamin Sharet (bsharet) wrote:
>
>>> I was thinking more like:
>>>
>>> struct usb_gadgetfs_ioctl_arg {
>>> uint16_t length;
>>> uint8_t reserved[2];
>>>
>>> uint8_t data[0];
>>> }
>>>
>>> but the principle is pretty much the same.
>>>
>>> Alan Stern
>>>
>>
>> Won’t the user lose the relevant information (e.g. feature
>> structure) by using this model?
>
> What feature structure? Aren't your feature lists just vectors of 64
> bits? They can be stored in the .data field above.
>
> Alan Stern
>
Not “just” - they are platform-dependant uint64_t. which means they
won’t look the same on systems with different endianness. If the
user is unaware of this, it can cause confusion w/r/t which bit is which.
We can use 8-bit vectors instead and skip the endianness issue,
but why define a generic usb_gadgetfs_ioctl_args structure instead
of “features struct” for feature-related ioctls and different structs for
other types of ioctl (if we’ll have such in the future)?
Binyamin Sharet
Cisco, STARE-C
N�����r��y����b�X��ǧv�^�){.n�+����{������^n�r���z���h�����&���G���h�(�階�ݢj"���m������z�ޖ���f���h���~�m�