|
libusbgx-0.3.0
|
#include <dirent.h>#include <sys/queue.h>#include <netinet/ether.h>#include <stdint.h>#include <limits.h>#include <stdbool.h>#include <stdio.h>#include <malloc.h>#include "usbg_version.h"Go to the source code of this file.
Data Structures | |
| struct | usbg_gadget_attrs |
| USB gadget device attributes. More... | |
| struct | usbg_gadget_strs |
| USB gadget device strings. More... | |
| struct | usbg_gadget_os_descs |
| USB gadget Microsoft OS Descriptors. More... | |
| struct | usbg_config_attrs |
| USB configuration attributes. More... | |
| struct | usbg_config_strs |
| USB configuration strings. More... | |
| struct | usbg_function_os_desc |
| USB OS Descriptor function attributes. More... | |
Macros | |
| #define | DEFAULT_UDC NULL |
| #define | LANG_US_ENG 0x0409 |
| #define | DEFAULT_CONFIG_LABEL "config" |
| #define | GUID_BIN_LENGTH 16 |
| #define | GUID_CHAR_LENGTH 36 /* 32 bytes + 4 dashes */ |
| #define | USBG_MAX_STR_LENGTH 256 |
| #define | USBG_MAX_NAME_LENGTH 40 |
| #define | USBG_MAX_DEV_LENGTH (USBG_MAX_NAME_LENGTH - 4) |
| #define | USBG_TO_UNION(UNAME, FIELD, WHAT) ((union UNAME){ .FIELD = WHAT, }) |
| #define | USBG_RM_RECURSE 1 |
| Additional option for usbg_rm_* functions. | |
| #define | usbg_for_each_gadget(g, s) |
| #define | usbg_for_each_function(f, g) |
| #define | usbg_for_each_config(c, g) |
| #define | usbg_for_each_binding(b, c) |
| #define | usbg_for_each_udc(u, s) |
Typedefs | |
| typedef struct usbg_state | usbg_state |
| State of the gadget devices in the system. | |
| typedef struct usbg_gadget | usbg_gadget |
| USB gadget device. | |
| typedef struct usbg_config | usbg_config |
| USB configuration. | |
| typedef struct usbg_function | usbg_function |
| USB function. | |
| typedef struct usbg_binding | usbg_binding |
| USB function to config binding. | |
| typedef struct usbg_udc | usbg_udc |
| USB device controller. | |
Enumerations | |
| enum | usbg_gadget_attr { USBG_GADGET_ATTR_MIN = 0 , USBG_BCD_USB = USBG_GADGET_ATTR_MIN , USBG_B_DEVICE_CLASS , USBG_B_DEVICE_SUB_CLASS , USBG_B_DEVICE_PROTOCOL , USBG_B_MAX_PACKET_SIZE_0 , USBG_ID_VENDOR , USBG_ID_PRODUCT , USBG_BCD_DEVICE , USBG_GADGET_ATTR_MAX } |
| Gadget attributes which can be set using usbg_set_gadget_attr() function. | |
| enum | usbg_gadget_str { USBG_GADGET_STR_MIN = 0 , USBG_STR_MANUFACTURER = USBG_GADGET_STR_MIN , USBG_STR_PRODUCT , USBG_STR_SERIAL_NUMBER , USBG_GADGET_STR_MAX } |
| enum | usbg_gadget_os_desc_strs { USBG_GADGET_OS_DESC_MIN = 0 , OS_DESC_USE = USBG_GADGET_OS_DESC_MIN , OS_DESC_B_VENDOR_CODE , OS_DESC_QW_SIGN , USBG_GADGET_OS_DESC_MAX } |
| Microsoft OS Descriptors strings. | |
| enum | usbg_function_type { USBG_FUNCTION_TYPE_MIN = 0 , USBG_F_SERIAL = USBG_FUNCTION_TYPE_MIN , USBG_F_ACM , USBG_F_OBEX , USBG_F_ECM , USBG_F_SUBSET , USBG_F_NCM , USBG_F_EEM , USBG_F_RNDIS , USBG_F_PHONET , USBG_F_FFS , USBG_F_MASS_STORAGE , USBG_F_MIDI , USBG_F_LOOPBACK , USBG_F_HID , USBG_F_UAC2 , USBG_F_UVC , USBG_F_PRINTER , USBG_F_9PFS , USBG_FUNCTION_TYPE_MAX } |
| Supported USB function types. | |
| enum | usbg_error { USBG_SUCCESS = 0 , USBG_ERROR_NO_MEM = -1 , USBG_ERROR_NO_ACCESS = -2 , USBG_ERROR_INVALID_PARAM = -3 , USBG_ERROR_NOT_FOUND = -4 , USBG_ERROR_IO = -5 , USBG_ERROR_EXIST = -6 , USBG_ERROR_NO_DEV = -7 , USBG_ERROR_BUSY = -8 , USBG_ERROR_NOT_SUPPORTED = -9 , USBG_ERROR_PATH_TOO_LONG = -10 , USBG_ERROR_INVALID_FORMAT = -11 , USBG_ERROR_MISSING_TAG = -12 , USBG_ERROR_INVALID_TYPE = -13 , USBG_ERROR_INVALID_VALUE = -14 , USBG_ERROR_NOT_EMPTY = -15 , USBG_ERROR_OTHER_ERROR = -99 } |
| Errors which could be returned by library functions. | |
Functions | |
| const char * | usbg_error_name (usbg_error e) |
| Get the error name as a constant string. | |
| const char * | usbg_strerror (usbg_error e) |
| Get the short description of error. | |
| int | usbg_init (const char *configfs_path, usbg_state **state) |
| Initialize the libusbgx library state. | |
| void | usbg_cleanup (usbg_state *s) |
| Clean up the libusbgx library state. | |
| const char * | usbg_get_configfs_path (usbg_state *s) |
| Get ConfigFS path. | |
| int | usbg_get_configfs_path_s (usbg_state *s, char *buf, int len) |
| Get ConfigFS path into user buffer. | |
| usbg_gadget * | usbg_get_gadget (usbg_state *s, const char *name) |
| Get a gadget device by name. | |
| usbg_function * | usbg_get_function (usbg_gadget *g, usbg_function_type type, const char *instance) |
| Get a function by name. | |
| usbg_config * | usbg_get_config (usbg_gadget *g, int id, const char *label) |
| Get a configuration by name. | |
| usbg_udc * | usbg_get_udc (usbg_state *s, const char *name) |
| Get a udc by name. | |
| int | usbg_rm_binding (usbg_binding *b) |
| Remove binding between configuration and function. | |
| int | usbg_rm_config (usbg_config *c, int opts) |
| Remove configuration. | |
| int | usbg_rm_function (usbg_function *f, int opts) |
| Remove existing USB function. | |
| int | usbg_rm_gadget (usbg_gadget *g, int opts) |
| Remove existing USB gadget. | |
| int | usbg_rm_config_strs (usbg_config *c, int lang) |
| Remove configuration strings for given language. | |
| int | usbg_rm_gadget_strs (usbg_gadget *g, int lang) |
| Remove gadget strings for given language. | |
| int | usbg_create_gadget_vid_pid (usbg_state *s, const char *name, uint16_t idVendor, uint16_t idProduct, usbg_gadget **g) |
| Create a new USB gadget device. | |
| int | usbg_create_gadget (usbg_state *s, const char *name, const struct usbg_gadget_attrs *g_attrs, const struct usbg_gadget_strs *g_strs, usbg_gadget **g) |
| Create a new USB gadget device and set given attributes and strings. | |
| const char * | usbg_get_gadget_attr_str (usbg_gadget_attr attr) |
| Get string representing selected gadget attribute. | |
| int | usbg_lookup_gadget_attr (const char *name) |
| Lookup attr code based on its name. | |
| int | usbg_lookup_gadget_str (const char *name) |
| Lookup str code based on its name. | |
| const char * | usbg_get_gadget_str_name (usbg_gadget_str str) |
| Get name of selected gadget string. | |
| const char * | usbg_get_gadget_os_desc_name (usbg_gadget_os_desc_strs str) |
| Get name of selected OS Descriptor string. | |
| int | usbg_set_gadget_attr (usbg_gadget *g, usbg_gadget_attr attr, int val) |
| Set selected attribute to value. | |
| int | usbg_get_gadget_attr (usbg_gadget *g, usbg_gadget_attr attr) |
| Get value of selected attribute. | |
| int | usbg_set_gadget_attrs (usbg_gadget *g, const struct usbg_gadget_attrs *g_attrs) |
| Set the USB gadget attributes. | |
| int | usbg_get_gadget_attrs (usbg_gadget *g, struct usbg_gadget_attrs *g_attrs) |
| Get the USB gadget strings. | |
| const char * | usbg_get_gadget_name (usbg_gadget *g) |
| Get gadget name. | |
| int | usbg_get_gadget_name_s (usbg_gadget *g, char *buf, int len) |
| Get gadget name into user buffer. | |
| int | usbg_set_gadget_vendor_id (usbg_gadget *g, uint16_t idVendor) |
| Set the USB gadget vendor id. | |
| int | usbg_set_gadget_product_id (usbg_gadget *g, uint16_t idProduct) |
| Set the USB gadget product id. | |
| int | usbg_set_gadget_device_class (usbg_gadget *g, uint8_t bDeviceClass) |
| Set the USB gadget device class code. | |
| int | usbg_set_gadget_device_protocol (usbg_gadget *g, uint8_t bDeviceProtocol) |
| Set the USB gadget protocol code. | |
| int | usbg_set_gadget_device_subclass (usbg_gadget *g, uint8_t bDeviceSubClass) |
| Set the USB gadget device subclass code. | |
| int | usbg_set_gadget_device_max_packet (usbg_gadget *g, uint8_t bMaxPacketSize0) |
| Set the maximum packet size for a gadget. | |
| int | usbg_set_gadget_device_bcd_device (usbg_gadget *g, uint16_t bcdDevice) |
| Set the gadget device BCD release number. | |
| int | usbg_set_gadget_device_bcd_usb (usbg_gadget *g, uint16_t bcdUSB) |
| Set the gadget device BCD USB version. | |
| int | usbg_get_gadget_strs (usbg_gadget *g, int lang, struct usbg_gadget_strs *g_strs) |
| Get the USB gadget strings. | |
| int | usbg_get_gadget_strs_langs (usbg_gadget *g, int **langs) |
| Get the array of languages available in this gadget. | |
| int | usbg_set_gadget_str (usbg_gadget *g, usbg_gadget_str str, int lang, const char *val) |
| Set selected string. | |
| int | usbg_set_gadget_strs (usbg_gadget *g, int lang, const struct usbg_gadget_strs *g_strs) |
| Set the USB gadget strings. | |
| int | usbg_set_gadget_serial_number (usbg_gadget *g, int lang, const char *ser) |
| Set the serial number for a gadget. | |
| int | usbg_set_gadget_manufacturer (usbg_gadget *g, int lang, const char *mnf) |
| Set the manufacturer name for a gadget. | |
| int | usbg_set_gadget_product (usbg_gadget *g, int lang, const char *prd) |
| Set the product name for a gadget. | |
| int | usbg_get_gadget_os_descs (usbg_gadget *g, struct usbg_gadget_os_descs *g_os_descs) |
| Get the USB gadget OS Descriptor. | |
| int | usbg_set_gadget_os_descs (usbg_gadget *g, const struct usbg_gadget_os_descs *g_os_descs) |
| Set the USB gadget OS Descriptor. | |
| int | usbg_create_function (usbg_gadget *g, usbg_function_type type, const char *instance, void *f_attrs, usbg_function **f) |
| Create a new USB gadget function and set its attributes. | |
| const char * | usbg_get_function_instance (usbg_function *f) |
| Get function instance name. | |
| int | usbg_get_function_instance_s (usbg_function *f, char *buf, int len) |
| Get function instance name into user buffer. | |
| const char * | usbg_get_function_type_str (usbg_function_type type) |
| Get function type as a string. | |
| int | usbg_lookup_function_type (const char *name) |
| Lookup function type suitable for given name. | |
| void | usbg_cleanup_function_attrs (usbg_function *f, void *f_attrs) |
| Cleanup content of function attributes. | |
| usbg_function_type | usbg_get_function_type (usbg_function *f) |
| Get type of given function. | |
| int | usbg_get_function_attrs (usbg_function *f, void *f_attrs) |
| Get attributes of given function. | |
| int | usbg_set_function_attrs (usbg_function *f, void *f_attrs) |
| Set attributes of given function. | |
| int | usbg_get_interf_os_desc (usbg_function *f, const char *iname, struct usbg_function_os_desc *f_os_desc) |
| Get OS Descriptor compatibility of given function. | |
| int | usbg_set_interf_os_desc (usbg_function *f, const char *iname, const struct usbg_function_os_desc *f_os_desc) |
| Set OS Descriptor compatibility of given function. | |
| int | usbg_create_config (usbg_gadget *g, int id, const char *label, const struct usbg_config_attrs *c_attrs, const struct usbg_config_strs *c_strs, usbg_config **c) |
| Create a new USB gadget configuration. | |
| const char * | usbg_get_config_label (usbg_config *c) |
| Get config label. | |
| int | usbg_get_config_label_s (usbg_config *c, char *buf, int len) |
| Get config label into user buffer. | |
| int | usbg_get_config_id (usbg_config *c) |
| Get config id. | |
| int | usbg_set_config_attrs (usbg_config *c, const struct usbg_config_attrs *c_attrs) |
| Set the USB configuration attributes. | |
| int | usbg_get_config_attrs (usbg_config *c, struct usbg_config_attrs *c_attrs) |
| Get the USB configuration strings. | |
| int | usbg_set_config_max_power (usbg_config *c, int bMaxPower) |
| Set the configuration maximum power. | |
| int | usbg_set_config_bm_attrs (usbg_config *c, int bmAttributes) |
| Set the configuration bitmap attributes. | |
| int | usbg_get_config_strs (usbg_config *c, int lang, struct usbg_config_strs *c_strs) |
| Get the USB configuration strings. | |
| int | usbg_get_config_strs_langs (usbg_config *c, int **langs) |
| Get the array of languages available in this config. | |
| int | usbg_set_config_strs (usbg_config *c, int lang, const struct usbg_config_strs *c_strs) |
| Set the USB configuration strings. | |
| int | usbg_set_config_string (usbg_config *c, int lang, const char *string) |
| Set the configuration string. | |
| int | usbg_add_config_function (usbg_config *c, const char *name, usbg_function *f) |
| Add a function to a configuration. | |
| usbg_function * | usbg_get_binding_target (usbg_binding *b) |
| Get target function of given binding. | |
| const char * | usbg_get_binding_name (usbg_binding *b) |
| Get binding name. | |
| int | usbg_get_binding_name_s (usbg_binding *b, char *buf, int len) |
| Get binding name into user buffer. | |
| usbg_config * | usbg_get_os_desc_binding (usbg_gadget *g) |
| Get configuration selected for OS Descriptors. | |
| int | usbg_set_os_desc_config (usbg_gadget *g, usbg_config *c) |
| Set configuration for OS Descriptors. | |
| int | usbg_enable_gadget (usbg_gadget *g, usbg_udc *udc) |
| Enable a USB gadget device. | |
| int | usbg_disable_gadget (usbg_gadget *g) |
| Disable a USB gadget device. | |
| const char * | usbg_get_udc_name (usbg_udc *u) |
| Get name of udc. | |
| int | usbg_get_udc_name_s (usbg_udc *u, char *buf, int len) |
| Get udc name into user buffer. | |
| usbg_udc * | usbg_get_gadget_udc (usbg_gadget *g) |
| Get udc to which gadget is bound. | |
| usbg_gadget * | usbg_get_udc_gadget (usbg_udc *u) |
| Get gadget which is attached to this UDC. | |
| usbg_gadget * | usbg_get_first_gadget (usbg_state *s) |
| Get first gadget in gadget list. | |
| usbg_function * | usbg_get_first_function (usbg_gadget *g) |
| Get first function in function list. | |
| usbg_config * | usbg_get_first_config (usbg_gadget *g) |
| Get first config in config list. | |
| usbg_binding * | usbg_get_first_binding (usbg_config *c) |
| Get first binding in binding list. | |
| usbg_udc * | usbg_get_first_udc (usbg_state *s) |
| Get first udc in udc list. | |
| usbg_gadget * | usbg_get_next_gadget (usbg_gadget *g) |
| Get the next gadget on a list. | |
| usbg_function * | usbg_get_next_function (usbg_function *f) |
| Get the next function on a list. | |
| usbg_config * | usbg_get_next_config (usbg_config *c) |
| Get the next config on a list. | |
| usbg_binding * | usbg_get_next_binding (usbg_binding *b) |
| Get the next binding on a list. | |
| usbg_udc * | usbg_get_next_udc (usbg_udc *u) |
| Get the next udc on a list. | |
| int | usbg_export_function (usbg_function *f, FILE *stream) |
| Exports usb function to file. | |
| int | usbg_export_config (usbg_config *c, FILE *stream) |
| Exports configuration to file. | |
| int | usbg_export_gadget (usbg_gadget *g, FILE *stream) |
| Exports whole gadget to file. | |
| int | usbg_import_function (usbg_gadget *g, FILE *stream, const char *instance, usbg_function **f) |
| Imports usb function from file and adds it to given gadget. | |
| int | usbg_import_config (usbg_gadget *g, FILE *stream, int id, usbg_config **c) |
| Imports usb configuration from file and adds it to given gadget. | |
| int | usbg_import_gadget (usbg_state *s, FILE *stream, const char *name, usbg_gadget **g) |
| Imports usb gadget from file. | |
| const char * | usbg_get_func_import_error_text (usbg_gadget *g) |
| Get text of error which occurred during last function import. | |
| int | usbg_get_func_import_error_line (usbg_gadget *g) |
| Get line number where function import error occurred. | |
| const char * | usbg_get_config_import_error_text (usbg_gadget *g) |
| Get text of error which occurred during last config import. | |
| int | usbg_get_config_import_error_line (usbg_gadget *g) |
| Get line number where config import error occurred. | |
| const char * | usbg_get_gadget_import_error_text (usbg_state *s) |
| Get text of error which occurred during last gadget import. | |
| int | usbg_get_gadget_import_error_line (usbg_state *s) |
| Get line number where gadget import error occurred. | |