/* * libuci - Library for the Unified Configuration Interface * Copyright (C) 2008 Felix Fietkau * * this program is free software; you can redistribute it and/or modify * it under the terms of the gnu lesser general public license version 2.1 * as published by the free software foundation * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __LIBUCI_H #define __LIBUCI_H /* * you can use these defines to enable debugging behavior for * apps compiled against libuci: * * #define UCI_DEBUG_TYPECAST: * enable uci_element typecast checking at run time * */ #ifdef DEBUG_ALL #define UCI_DEBUG #define UCI_DEBUG_TYPECAST #endif #include #include #include #define UCI_CONFDIR "/etc/config" #define UCI_SAVEDIR "/tmp/.uci" #define UCI_FILEMODE 0600 enum { UCI_OK = 0, UCI_ERR_MEM, UCI_ERR_INVAL, UCI_ERR_NOTFOUND, UCI_ERR_IO, UCI_ERR_PARSE, UCI_ERR_DUPLICATE, UCI_ERR_UNKNOWN, UCI_ERR_LAST }; struct uci_list; struct uci_list { struct uci_list *next; struct uci_list *prev; }; struct uci_element; struct uci_package; struct uci_section; struct uci_option; struct uci_history; struct uci_context; struct uci_parse_context; /** * uci_parse_tuple: Parse an uci tuple * @ctx: uci context * @str: input string * @package: output package pointer * @section: output section pointer * @option: output option pointer * @value: output value pointer * * format: [.
[.