Loading...
Searching...
No Matches
usbg.c File Reference
`#include <dirent.h>`
`#include <errno.h>`
`#include <netinet/ether.h>`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <sys/queue.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <unistd.h>`
`#include <ctype.h>`
`#include <stdbool.h>`
`#include "usbg/usbg_internal.h"`

## Macros

#define | SET_GADGET_STR(file, field)

## Functions

int | usbg_lookup_function_type (const char *name)
| Lookup function type suitable for given name.
const char * | usbg_get_function_type_str (usbg_function_type type)
| Get function type as a string.
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_attr_str (usbg_gadget_attr attr)
| Get string representing selected gadget attribute.
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_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.
usbg_binding * | usbg_get_binding (usbg_config *c, const char *name)
usbg_binding * | usbg_get_link_binding (usbg_config *c, usbg_function *f)
int | usbg_rm_binding (usbg_binding *b)
| Remove binding between configuration and function.
usbg_config * | usbg_get_os_desc_binding (usbg_gadget *g)
| Get configuration selected for OS Descriptors.
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.
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.
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.
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.
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.
int | usbg_set_gadget_attrs (usbg_gadget *g, const struct usbg_gadget_attrs *g_attrs)
| Set the USB gadget attributes.
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_get_config_strs_langs (usbg_config *c, int **langs)
| Get the array of languages available in this config.
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 *serno)
| 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.
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.
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.
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_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 *str)
| 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.
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.
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.
void | usbg_cleanup_function_attrs (usbg_function *f, void *f_attrs)
| Cleanup content of function attributes.
int | usbg_set_function_attrs (usbg_function *f, void *f_attrs)
| Set attributes of given function.
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.

## Variables

struct usbg_function_type | usbg_f_type_acm
struct usbg_function_type | usbg_f_type_serial
struct usbg_function_type | usbg_f_type_obex
struct usbg_function_type | usbg_f_type_ecm
struct usbg_function_type | usbg_f_type_subset
struct usbg_function_type | usbg_f_type_ncm
struct usbg_function_type | usbg_f_type_eem
struct usbg_function_type | usbg_f_type_rndis
struct usbg_function_type | usbg_f_type_ffs
struct usbg_function_type | usbg_f_type_midi
struct usbg_function_type | usbg_f_type_ms
struct usbg_function_type | usbg_f_type_phonet
struct usbg_function_type | usbg_f_type_loopback
struct usbg_function_type | usbg_f_type_hid
struct usbg_function_type | usbg_f_type_uac2
struct usbg_function_type | usbg_f_type_uvc
struct usbg_function_type | usbg_f_type_printer
struct usbg_function_type | usbg_f_type_9pfs
struct usbg_function_type * | function_types []
| Types of functions supported by library.
const char * | gadget_attr_names []
const char * | gadget_str_names []
const char * | gadget_os_desc_names []

## Macro Definition Documentation

## SET_GADGET_STR

#define SET_GADGET_STR | ( |  | file,
|  |  | field )

Value:
if (g_strs->field) { \
ret = usbg_write_string(path, "", #file, \
g_strs->field); \
if (ret != USBG_SUCCESS) \
goto out; \
}

## Variable Documentation

## function_types

struct usbg_function_type* function_types[]

Initial value:
= {
[USBG_F_ACM] = &usbg_f_type_acm,
[USBG_F_SERIAL] = &usbg_f_type_serial,
[USBG_F_OBEX] = &usbg_f_type_obex,
[USBG_F_ECM] = &usbg_f_type_ecm,
[USBG_F_SUBSET] = &usbg_f_type_subset,
[USBG_F_NCM] = &usbg_f_type_ncm,
[USBG_F_EEM] = &usbg_f_type_eem,
[USBG_F_RNDIS] = &usbg_f_type_rndis,
[USBG_F_FFS] = &usbg_f_type_ffs,
[USBG_F_MIDI] = &usbg_f_type_midi,
[USBG_F_MASS_STORAGE] = &usbg_f_type_ms,
[USBG_F_PHONET] = &usbg_f_type_phonet,
[USBG_F_LOOPBACK] = &usbg_f_type_loopback,
[USBG_F_HID] = &usbg_f_type_hid,
[USBG_F_UAC2] = &usbg_f_type_uac2,
[USBG_F_UVC] = &usbg_f_type_uvc,
[USBG_F_PRINTER] = &usbg_f_type_printer,
[USBG_F_9PFS] = &usbg_f_type_9pfs,
}

Types of functions supported by library.

## gadget_attr_names

const char* gadget_attr_names[]

Initial value:
=
{
"bcdUSB",
"bDeviceClass",
"bDeviceSubClass",
"bDeviceProtocol",
"bMaxPacketSize0",
"idVendor",
"idProduct",
"bcdDevice"
}

## gadget_os_desc_names

const char* gadget_os_desc_names[]

Initial value:
=
{
"use",
"b_vendor_code",
"qw_sign",
}

## gadget_str_names

const char* gadget_str_names[]

Initial value:
=
{
"manufacturer",
"product",
"serialnumber",
}