X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=uci.h;h=cb9fd66d259ba04cc2e7a0d8a4e4aa8a7aa4e253;hp=674981c8f369685ecc894ef843a34e91c02fc1a6;hb=d65c93f0d05fae484d687ff03b6fd982142b98e1;hpb=406d259cd1faab6de1ee2b817970c9f71d7945a2 diff --git a/uci.h b/uci.h index 674981c..cb9fd66 100644 --- a/uci.h +++ b/uci.h @@ -32,7 +32,8 @@ #define UCI_CONFDIR "/etc/config" #define UCI_SAVEDIR "/tmp/.uci" -#define UCI_FILEMODE 0600 +#define UCI_DIRMODE 0700 +#define UCI_FILEMODE 0600 enum { @@ -145,7 +146,7 @@ extern int uci_unload(struct uci_context *ctx, struct uci_package *p); * If section is omitted, then a pointer to the config package is returned * If option is omitted, then a pointer to the config section is returned */ -extern int uci_lookup(struct uci_context *ctx, struct uci_element **res, struct uci_package *package, char *section, char *option); +extern int uci_lookup(struct uci_context *ctx, struct uci_element **res, struct uci_package *package, const char *section, const char *option); /** * uci_add_section: Add an unnamed section @@ -154,7 +155,7 @@ extern int uci_lookup(struct uci_context *ctx, struct uci_element **res, struct * @type: section type * @res: pointer to store a reference to the new section in */ -extern int uci_add_section(struct uci_context *ctx, struct uci_package *p, char *type, struct uci_section **res); +extern int uci_add_section(struct uci_context *ctx, struct uci_package *p, const char *type, struct uci_section **res); /** * uci_set_element_value: Replace an element's value with a new one @@ -165,7 +166,7 @@ extern int uci_add_section(struct uci_context *ctx, struct uci_package *p, char * Only valid for uci_option and uci_section. Will replace the type string * when used with an uci_section */ -extern int uci_set_element_value(struct uci_context *ctx, struct uci_element **element, char *value); +extern int uci_set_element_value(struct uci_context *ctx, struct uci_element **element, const char *value); /** * uci_set: Set an element's value; create the element if necessary @@ -176,7 +177,7 @@ extern int uci_set_element_value(struct uci_context *ctx, struct uci_element **e * @value: value (option) or type (section) * @result: store the updated element in this variable (optional) */ -extern int uci_set(struct uci_context *ctx, struct uci_package *p, char *section, char *option, char *value, struct uci_element **result); +extern int uci_set(struct uci_context *ctx, struct uci_package *p, const char *section, const char *option, const char *value, struct uci_element **result); /** * uci_rename: Rename an element @@ -202,7 +203,7 @@ extern int uci_delete_element(struct uci_context *ctx, struct uci_element *e); * @section: section name * @option: option name (optional) */ -extern int uci_delete(struct uci_context *ctx, struct uci_package *p, char *section, char *option); +extern int uci_delete(struct uci_context *ctx, struct uci_package *p, const char *section, const char *option); /** * uci_save: save change history for a package @@ -261,7 +262,7 @@ extern int uci_add_history_path(struct uci_context *ctx, const char *dir); * @section: section name (optional) * @option option name (optional) */ -extern int uci_revert(struct uci_context *ctx, struct uci_package **p, char *section, char *option); +extern int uci_revert(struct uci_context *ctx, struct uci_package **p, const char *section, const char *option); /** * uci_parse_argument: parse a shell-style argument, with an arbitrary quoting style @@ -311,6 +312,10 @@ struct uci_backend 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); + + /* private: */ + const void *ptr; + void *priv; }; struct uci_context @@ -335,7 +340,7 @@ struct uci_context struct uci_list history_path; /* private: */ - int errno; + int err; const char *func; jmp_buf trap; bool internal; @@ -390,17 +395,6 @@ struct uci_history char *value; }; -#define UCI_BACKEND(_var, _name, ...) \ -struct uci_backend _var = { \ - .e.list = { \ - .next = &_var.e.list, \ - .prev = &_var.e.list, \ - }, \ - .e.name = _name, \ - .e.type = UCI_TYPE_BACKEND, \ - __VA_ARGS__ \ -} - /* linked list handling */ #ifndef offsetof