Hi Matt, as we have spoken some time ago, I have prepared patches which hides definitions of internal library structures. User shouldn't have access to internal libraries structures which he could modify. To avoid this I have provided some public structures which contains attributes of gadget/config/function and strings. This allowed to remove definitions of gadget/function/config from header file and provide only nice typedefs for them. I have also done some API upgrade to allow setting of all attributes with only one function call. I have also changed the sizes and order of attributes in public structures to be consistent with USB standard and libusb implementation. This allow for example to memcpy() from libusb_device_descriptor to usbg_gadget_attributes. Moreover, there were some bugs and missing functionality. I have fixed some wrong paths and add missing API functions. I hope that you will enjoy this code and merge it when it will be possible. I would like also to remind you that you didn't merge the previous series of patches [1]. This series depends on previous one so please update github repository. Footnotes: 1 - http://permalink.gmane.org/gmane.linux.usb.general/102224 -- BR's Krzysztof Opasiak Samsung R&D Institute Poland Samsung Electronics Krzysztof Opasiak (25): libusbg: Separate gadget attributes from gadget. libusbg: Change gadget attributes size and names. libusbg: Separate gadget strings from gadget. libusbg: Use dedicated macro instead of copy-paste code. libusbg: Update strings only when writting US English strings. libsubg: Add missing set vendor/product functions. libusbg: Fix wrong paths while setting gadget attributes. libusbg: Add functions to set all strs and attrs with one call. libusbg: Add getters for gadget strings and attributes. libusbg: Add getter for gadget name and udc. libusbg: Change for each macros to avoid direct access to fields. libusbg: Add getter for configfs path in state. libusbg: Separate config attrs and strs form configuration. libusbg: Add set/get config attrs/strings functions. libusbg: Add getter for config name. libusbg: Remove function_names from header file. libusbg: Add functions for get/set function attributes. libusbg: Add getter for function name. libusbg: Add getter for binding name and target. libusbg: Hide definition of state structure. libusbg: Hide definition of gadget structure. libusbg: Hide definition of function structure. libusbg: Hide definition of binding structure. libusbg: Rename all public structures to usbg convention. libusbg: Update examples to new API. examples/gadget-acm-ecm.c | 46 ++- examples/show-gadgets.c | 107 ++++--- include/usbg/usbg.h | 575 +++++++++++++++++++++++++--------- src/usbg.c | 753 +++++++++++++++++++++++++++++++++++---------- 4 files changed, 1115 insertions(+), 366 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html