str_ser, str_prd and str_mnf are a little bit weird names
so let's replace them with names defined by USB spec.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Let's remove typedefs from public structures to clearly
indicate users which structures can be accessed and which
should be used only as handles.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
bMaxPacketSize0 is maximal size of packet which can be
used for communication with ep0. As most people use digital
format for size, lets use digital format for both
initialization of this member in gadget atributes and for
printing it in show-gadgets.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Use the same order of structure initialization in all
examples.
Initialize gadget attributes and strings using:
.member = val,
syntax to make examples easier to read.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Naming convention of Config FS should not be exposed
to user of library. All API functions should use
configuration ID (configuration number) as unique
identificator and configuration label as human
readable description.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Examples provided with the library should use returned
error codes and provide information to user.
Remove todo baceuse it has been already done.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Each usbg_set_config_*() may fail so it should have
a return value to notify user about reason of failure.
To be consistent with rest of API usbg_create_config()
should also return error code to notify user about reasons
of failure instead of binary information (NULL or not).
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Each usbg_set_*() may fail so it should have a return value
to notify user about reason of failure.
To be consistent with rest of API usbg_create_function()
should also return error code to notify user about reasons
of failure instead of binary information (NULL or not).
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Functions related to gadget creation should return error codes
instead of pointer.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Assumption that all malloc() and read()/write() finish correctly
is too bold. Errors should be handled and propagated to upper
layers of library and returned to user.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
API of library has been changed, so it is necessary
to update examples of library usage.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Hide definition of function structure to avoid direct
access to its fields. Rename it to usbg_function.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Hide definition of config structure to avoid direct
access to its fields. Rename it to usbg_confg.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Remove definition of gadget structure to avoid direct
access to its fields. Rename that structure to usbg_gadget.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Hide definition of state structure to avoid direct
access to its fields. Rename it to usbg_state.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Add usbg_get_function_attrs() and usbg_get_function_type()
to aviod direct access to function structure members.
Add usbg_set_function_attrs() to allow set all function\
attributes with one call.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Add usbg_set_config_attrs() function to allow setting
all attributes with one call. Add also getter for attrs
to avoid direct accessing of configuration fields.
Add usbg_set_config_strs() to be consistent with gadget
API.
Change usbg_create_config() to allow configuration creation
and attribute setting with one call.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Rename usbg_create_gadget() to usbg_create_vid_pid().
dd usbg_create_gadget() to allow gadget creation
with given attributes and strings. Add usbg_set_gadget_attrs()
which allow to set all attributes with one call. Add
usbg_set_gadget_strs() which allow to set all strings with
one call.
Gadget structure creation and initialization has been moved to
usbg_create_empty_gadget() to avoid copy-paste same code in
usbg_create_gadget_vid_pid() and usbg_create_gadget().
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Make use of previously unused variable ret to cleanup
after successful gadget creation.
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Update documentation and example source code to reflect use of the
standard /sys/kernel/config mount point for configfs.
Signed-off-by: Matt Porter <mporter@linaro.org>
Rename library to libusbg. Moves the API include to usbg.h and
accordingly changes all API prefixes to usbg_*().
Signed-off-by: Matt Porter <mporter@linaro.org>