#define DEFAULT_UDC NULL
#define LANG_US_ENG 0x0409
+#define USBG_MAX_STR_LENGTH 256
+#define USBG_MAX_PATH_LENGTH 256
+#define USBG_MAX_NAME_LENGTH 40
+
/**
* @struct state
* @brief State of the gadget devices in the system
*/
struct state
{
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
TAILQ_HEAD(ghead, gadget) gadgets;
};
*/
struct gadget
{
- char name[40];
- char path[256];
- char udc[256];
+ char name[USBG_MAX_NAME_LENGTH];
+ char path[USBG_MAX_PATH_LENGTH];
+ char udc[USBG_MAX_STR_LENGTH];
int dclass;
int dsubclass;
int dproto;
int bcdusb;
int product;
int vendor;
- char str_ser[256];
- char str_mnf[256];
- char str_prd[256];
+ char str_ser[USBG_MAX_STR_LENGTH];
+ char str_mnf[USBG_MAX_STR_LENGTH];
+ char str_prd[USBG_MAX_STR_LENGTH];
TAILQ_ENTRY(gadget) gnode;
TAILQ_HEAD(chead, config) configs;
TAILQ_HEAD(fhead, function) functions;
TAILQ_HEAD(bhead, binding) bindings;
struct gadget *parent;
- char name[40];
- char path[256];
+ char name[USBG_MAX_NAME_LENGTH];
+ char path[USBG_MAX_PATH_LENGTH];
int maxpower;
int bmattrs;
- char str_cfg[256];
+ char str_cfg[USBG_MAX_STR_LENGTH];
};
/**
struct net_attrs {
struct ether_addr dev_addr;
struct ether_addr host_addr;
- char ifname[256];
+ char ifname[USBG_MAX_STR_LENGTH];
int qmult;
};
* @brief Attributes for the phonet USB function
*/
struct phonet_attrs {
- char ifname[256];
+ char ifname[USBG_MAX_STR_LENGTH];
};
/**
TAILQ_ENTRY(function) fnode;
struct gadget *parent;
- char name[40];
- char path[256];
+ char name[USBG_MAX_NAME_LENGTH];
+ char path[USBG_MAX_PATH_LENGTH];
enum function_type type;
union attrs attr;
struct config *parent;
struct function *target;
- char name[40];
- char path[256];
+ char name[USBG_MAX_NAME_LENGTH];
+ char path[USBG_MAX_PATH_LENGTH];
};
/* Library init and cleanup */
static char *usbg_read_buf(char *path, char *name, char *file, char *buf)
{
- char p[256];
+ char p[USBG_MAX_STR_LENGTH];
FILE *fp;
char *ret = NULL;
if (!fp)
goto out;
- ret = fgets(buf, 256, fp);
+ ret = fgets(buf, USBG_MAX_STR_LENGTH, fp);
fclose(fp);
static int usbg_read_int(char *path, char *name, char *file, int base)
{
- char buf[256];
+ char buf[USBG_MAX_STR_LENGTH];
if (usbg_read_buf(path, name, file, buf))
return strtol(buf, NULL, base);
static void usbg_write_buf(char *path, char *name, char *file, char *buf)
{
- char p[256];
+ char p[USBG_MAX_STR_LENGTH];
FILE *fp;
sprintf(p, "%s/%s/%s", path, name, file);
static void usbg_write_int(char *path, char *name, char *file, int value, char *str)
{
- char buf[256];
+ char buf[USBG_MAX_STR_LENGTH];
sprintf(buf, str, value);
usbg_write_buf(path, name, file, buf);
struct function *f;
int i, n;
struct dirent **dent;
- char fpath[256];
+ char fpath[USBG_MAX_PATH_LENGTH];
sprintf(fpath, "%s/%s/functions", path, g->name);
{
int i, n;
struct dirent **dent;
- char bpath[256];
+ char bpath[USBG_MAX_PATH_LENGTH];
struct gadget *g = c->parent;
struct binding *b;
struct function *f;
for (i=0; i < n; i++) {
TAILQ_FOREACH(f, &g->functions, fnode) {
int n;
- char contents[256];
- char cpath[256];
+ char contents[USBG_MAX_STR_LENGTH];
+ char cpath[USBG_MAX_PATH_LENGTH];
char fname[40];
sprintf(cpath, "%s/%s", bpath, dent[i]->d_name);
- n = readlink(cpath, contents, 256);
+ n = readlink(cpath, contents, USBG_MAX_PATH_LENGTH);
if (n<0)
ERRORNO("bytes %d contents %s\n", n, contents);
strcpy(fname, f->name);
struct config *c;
int i, n;
struct dirent **dent;
- char cpath[256];
+ char cpath[USBG_MAX_PATH_LENGTH];
sprintf(cpath, "%s/%s/configs", path, g->name);
{
int ret;
struct stat sts;
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
struct state *s = NULL;
strcpy(path, configfs_path);
struct gadget *usbg_create_gadget(struct state *s, char *name,
int vendor, int product)
{
- char gpath[256];
+ char gpath[USBG_MAX_PATH_LENGTH];
struct gadget *g, *cur;
int ret;
void usbg_set_gadget_serial_number(struct gadget *g, int lang, char *serno)
{
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
sprintf(path, "%s/%s/%s/0x%x", g->path, g->name, "strings", lang);
void usbg_set_gadget_manufacturer(struct gadget *g, int lang, char *mnf)
{
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
sprintf(path, "%s/%s/%s/0x%x", g->path, g->name, "strings", lang);
void usbg_set_gadget_product(struct gadget *g, int lang, char *prd)
{
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
sprintf(path, "%s/%s/%s/0x%x", g->path, g->name, "strings", lang);
struct function *usbg_create_function(struct gadget *g, enum function_type type, char *instance)
{
- char fpath[256];
- char name[256];
+ char fpath[USBG_MAX_PATH_LENGTH];
+ char name[USBG_MAX_STR_LENGTH];
struct function *f, *cur;
int ret;
struct config *usbg_create_config(struct gadget *g, char *name)
{
- char cpath[256];
+ char cpath[USBG_MAX_PATH_LENGTH];
struct config *c, *cur;
int ret;
void usbg_set_config_string(struct config *c, int lang, char *str)
{
- char path[256];
+ char path[USBG_MAX_PATH_LENGTH];
sprintf(path, "%s/%s/0x%x", c->path, "strings", lang);
int usbg_add_config_function(struct config *c, char *name, struct function *f)
{
- char bpath[256];
- char fpath[256];
+ char bpath[USBG_MAX_PATH_LENGTH];
+ char fpath[USBG_MAX_PATH_LENGTH];
struct binding *b;
struct binding *cur;
int ret = -1;
void usbg_enable_gadget(struct gadget *g, char *udc)
{
- char gudc[256];
+ char gudc[USBG_MAX_STR_LENGTH];
struct dirent **udc_list;
int n;