struct list_head functions;
add:
function->config = config;
list_add_tail(&function->list, &config->functions);
get:
f = list_first_entry(&config->functions,struct usb_function, list);
list_for_each_entry(uc, &cdev->gstrings, list) {
}
f = list_first_entry(&c->functions, struct usb_function,list);
if (f->setup)
value = f->setup(f, ctrl);
del:
list_del(&f->list);