mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
env: Allow returning errors from hdelete_r()
At present this function returns 1 on success and 0 on failure. But in the latter case it provides no indication of what went wrong. If an attempt is made to delete a non-existent variable, the caller may want to ignore this error. This happens when setting a non-existent variable to "", for example. Update the function to return 0 on success and a useful error code on failure. Add a function comment too. Make sure that env_set() does not return an error if it is deleting a variable that doesn't exist. We could update env_set() to return useful error numbers also, but that is beyond the scope of this change. Signed-off-by: Simon Glass <sjg@chromium.org> wip
This commit is contained in:
@@ -80,7 +80,16 @@ int hsearch_r(struct env_entry item, enum env_action action,
|
||||
int hmatch_r(const char *match, int last_idx, struct env_entry **retval,
|
||||
struct hsearch_data *htab);
|
||||
|
||||
/* Search and delete entry matching "key" in internal hash table. */
|
||||
/**
|
||||
* hdelete_r() - Search and delete entry in internal hash table
|
||||
*
|
||||
* @key: Name of entry to delete
|
||||
* @htab: Hash table
|
||||
* @flag: Flags to use (H_...)
|
||||
* @return 0 on success, -ENOENT if not found, -EPERM if the hash table callback
|
||||
* rejected changing the variable, -EINVAL if the hash table refused to
|
||||
* delete the variable
|
||||
*/
|
||||
int hdelete_r(const char *key, struct hsearch_data *htab, int flag);
|
||||
|
||||
ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag,
|
||||
|
||||
Reference in New Issue
Block a user