1
0
Fork 0
mirror of https://github.com/linux-usb-gadgets/libusbgx.git synced 2025-07-26 04:05:06 +03:00
Commit graph

230 commits

Author SHA1 Message Date
Krzysztof Opasiak
4b935e55cd libusbgx: Add getter for configfs path in state.
Add usbg_get_configfs_path_len() and usbg_get_configfs_path()
to avoid direct access to state structure.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
d6b69dea33 libusbgx: Change for each macros to avoid direct access to fields.
Add dedicated functions for iterating over gadgets, configs,
bindigs and functions to avoid direct access to fields of this
structures. Change definitons of usbg_for_each_* macros to use
new functions.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
14bbd7ebba libusbgx: Add getter for gadget name and udc.
Add usbg_get_gadget_name() and usbg_get_gadget_udc() to avoid
direct gadget structure members access.

Add also usbg_get_gadget_name_len() and
usbg_get_gadget_udc_len() to allow getting udc and name length.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
36fefe9491 libusbgx: Add getters for gadget strings and attributes.
Add getter's to avoid direct access to gadget structure
members.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
2a0e2bc756 libusbgx: Add functions to set all strs and attrs with one call.
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>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
d1148ca3fc libusbgx: Fix wrong paths while setting gadget attributes.
Add missing gadget name to path while writting gadget attributes.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:35:20 +01:00
Krzysztof Opasiak
452d208fe7 libusbgx: Add missing set vendor/product functions.
Setting idVendor and idProduct was allowed only when
creating new gadget. Add usbg_set_gadget_vendor_id() and
usbg_set_gadget_product_id() to allow set those values
on existing 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>
2015-12-22 20:34:56 +01:00
Krzysztof Opasiak
287b62f924 libusbgx: Update strings only when writting US English strings.
Strings in current verison of library are hardcoded to
US English. Functions which set strings are generic and
allow to set other languages, but internal library structures
should be update only when setting US English strings.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
95d6b5fd9d libusbgx: Use dedicated macro instead of copy-paste code.
Insterting in string order has been done few times.
It was almost the same piece of code copied and pasted with
some minor changes. All those pieces has been replaced with
new macro INSERT_TAILQ_STRING_ORDER which does all the job.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
e9f314a78a libusbgx: Separate gadget strings from gadget.
Gadget strings are not logically part of gadget, so should
be separated.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
652d2dd8ca libusbgx: Change gadget attributes size and names.
Rename all gadget attributes to be consistent with usb
standard and libusb. Change also field size and order
to allow direct memcpy from libusb_device_descriptor.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
6ce3bdaad3 libusbgx: Separate gadget attributes from gadget.
Gadget attributes should be placed in external structure
because they are almost that same as USB device descriptor.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
bd5c062526 libusbgx: Replace directory names with defines.
Replace strings, functions, configs strings placed
everywhere in code with macro defintions STRINGS_DIR,
FUNCTIONS_DIR and CONFIGS_DIR.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
1295f64d05 libusbgx: Replace memcpy with structure assignment.
Use the assign operator for structure instead of using
memcpy with hard coded size.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
cb5e2ab9a7 libusbgx: Move symlink creation after memory allocation.
Move creation of symlink after memory allocation for
binding structure. Fix missing initialization of parent.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
301666cb3c libusbgx: Initialize gadget attributes and strings while gadget creation.
Fix gadget_create_gadget function to initialize gadget attributes
and strings with default values provided by kernel.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
6123252024 libusbgx: Separate parsing gadget attributes and strings.
Gadget attributes and strings are logically independent,
so they should be initialized in separate functions.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
d6604e97d7 libusbgx: Add missing config attrs parsing while new config creation.
Afther creation of configuration its attributes left uninitialized.
Config attrs should be initialized with default values provided
by kernel.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
46f3bd29d7 libusbgx: Add error handling to gadget_read_string().
Add error handling when gadget_read_buf() returns NULL.
If read of string fails, the string should be set as empty.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
41c958208e libusbgx: Fix memory leak when unable to create directory.
Free the memory allocated for gadget/config/function structure
when faild to create suitable directory.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
066c8a0ff3 libusbgx: Move directory creation before writing attributes.
Change order of gadget creation and attribute writting
to fix  No such file or directory error while creating
new 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>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
58fb019754 libusbgx: Add missing return statement in non-void functions.
Add return 0 in functions which return non-void to
suppress compiler complaint.

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Stanislaw Wadas
896561d165 libusbgx: Add inline to gadget_write_string().
Add inline to gadget_write_string().

Signed-off-by: Stanislaw Wadas <s.wadas@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Stanislaw Wadas
25d7b9dfd0 libusbgx: Move mkdir functions
Call mkdir() function after successful memory allocation
and gadget function creation.

Signed-off-by: Stanislaw Wadas <s.wadas@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Stanislaw Wadas
58d98d19c2 libusbgx: Add fputs()/fgets()/fprintf() error
handling

Add error handling to fputs()/fgets()/fprintf() functions.

Signed-off-by: Stanislaw Wadas <s.wadas@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Stanislaw Wadas
d3f390aa82 libusbgx: Replace array lengths with defines
Replace hard coded value of 256 by two constant
defines, USBG_MAX_STR_LENGTH and USBG_MAX_PATH_LENGTH
Define USBG_MAX_NAME_LENGTH for name[] array

Signed-off-by: Stanislaw Wadas <s.wadas@samsung.com>
[Port from libusbg and update description]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:56 +01:00
Krzysztof Opasiak
c07046b8f5 Fork from libusbg project
As libusbg project looks for a dead for over a year it
has been forked and now it is developed as:

	libusbg-neXt (libusbgx)

Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
2015-12-22 20:33:32 +01:00
Matt Porter
14949f6764 libusbg: update preferred email address
Update email address for myself throughout the code.

Signed-off-by: Matt Porter <mporter@linaro.org>
2014-01-21 07:58:24 -05:00
Matt Porter
a371518d64 libusbg: rename gadget_*() -> usbg_*(), libusbg, and usbg.h
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>
2014-01-21 07:58:24 -05:00
Matt Porter
a6a036a403 Initial release
Signed-off-by: Matt Porter <matt.porter@linaro.org>
2013-09-04 12:51:23 -04:00