init:
INIT_LIST_HEAD(&gi->available_func);
add:
list_add_tail(&fi->cfs_list, &gi->available_func);
get:
list_for_each_entry(fi, &gi->available_func, cfs_list) {
if (fi != NULL && fi->f != NULL && fi->f->setup != NULL) {
value = fi->f->setup(fi->f, c);
if (value >= 0)
break;
}
}
del:
list_del(&fi->cfs_list);