/**
* uci_list_configs: List available uci config files
* @ctx: uci context
+ *
+ * caller is responsible for freeing the allocated memory behind list
*/
extern int uci_list_configs(struct uci_context *ctx, char ***list);
struct uci_backend
{
const char *name;
+ char **(*list_configs)(struct uci_context *ctx);
struct uci_package *(*load)(struct uci_context *ctx, const char *name);
void (*commit)(struct uci_context *ctx, struct uci_package **p, bool overwrite);
};
struct uci_element e;
struct uci_list sections;
struct uci_context *ctx;
- bool confdir;
+ bool has_history;
char *path;
/* private: */
* @_type: config, section or option
* @_ptr: pointer to the uci_list struct
*/
-#define element_to(type, ptr) \
- container_of(ptr, struct uci_ ## type, e)
-
#define list_to_element(ptr) \
container_of(ptr, struct uci_element, list)