[PATCH 3/4] environment: Add function to load envfs from buffer

Alexander Aring alex.aring at gmail.com
Thu Feb 20 10:16:05 EST 2014


Hi Sascha,

some little (maybe interesting) note, but all patches in this series
looks fine for me. :-)

On Thu, Feb 20, 2014 at 02:49:28PM +0100, Sascha Hauer wrote:
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  common/environment.c | 181 +++++++++++++++++++++++++++++++++------------------
>  include/envfs.h      |   1 +
>  2 files changed, 117 insertions(+), 65 deletions(-)
> 
> diff --git a/common/environment.c b/common/environment.c
> index 695baf7..19fb027 100644
> --- a/common/environment.c
> +++ b/common/environment.c
> @@ -218,78 +218,52 @@ out1:
>  }
>  EXPORT_SYMBOL(envfs_save);
>  
> -/**
> - * Restore the last environment into the current one
> - * @param[in] filename from where to restore
> - * @param[in] dir where to store the last content
> - * @return 0 on success, anything else in case of failure
> - *
> - * Note: This function will also be used on the host! See note in the header
> - * of this file.
> - */
> -int envfs_load(const char *filename, const char *dir, unsigned flags)
> +static int envfs_check_super(struct envfs_super *super, size_t *size)
>  {
> -	struct envfs_super super;
> -	void *buf = NULL, *buf_free = NULL;
> -	int envfd;
> -	int fd, ret = 0;
> -	char *str, *tmp;
> -	int headerlen_full;
> -	unsigned long size;
> -	/* for envfs < 1.0 */
> -	struct envfs_inode_end inode_end_dummy;
> -
> -	inode_end_dummy.mode = ENVFS_32(S_IRWXU | S_IRWXG | S_IRWXO);
> -	inode_end_dummy.magic = ENVFS_32(ENVFS_INODE_END_MAGIC);
> -
> -	envfd = open(filename, O_RDONLY);
> -	if (envfd < 0) {
> -		printf("Open %s %s\n", filename, errno_str());
> -		return -1;
> +	if (ENVFS_32(super->magic) != ENVFS_MAGIC) {
> +		printf("envfs: wrong magic\n");
> +		return -EIO;

In this case only on big endians machines:
if (super->magic != ENVFS_32(ENVFS_MAGIC))

is faster than:
if (ENVFS_32(super->magic) != ENVFS_MAGIC)

It's save (I suppose) ca. 4 instruktions... so it doesn't matter
to change it.

Regards
Alex



More information about the barebox mailing list