Diff for /embedtools/src/ub_env.c between versions 1.1.2.3 and 1.1.2.6

version 1.1.2.3, 2014/01/28 22:03:01 version 1.1.2.6, 2014/01/28 22:50:37
Line 2 Line 2
 #include "ub_env.h"  #include "ub_env.h"
   
   
   env_t *env;
   
   
 static int  static int
ub_flash_io(env_t * __restrict e, int mode)ub_flash_io(const char *csSec, int mode)
 {  {
        int f, ret = 0;        int f, rlen, ret = 0;
         const char *str;
         size_t siz;
   
         FTRACE(4);          FTRACE(4);
   
        f = open(DRV_UB_ENV_MAP, mode);        str = cfg_getAttribute(&cfg, csSec, "size");
         siz = strtol(str, NULL, 0);
         if (!siz)
                 return -1;
         str = cfg_getAttribute(&cfg, csSec, "drive");
         if (!str) {
                 printf("Error:: drive not found!\n");
                 return -1;
         }
 
         f = open(str, mode);
         if (f == -1) {          if (f == -1) {
                printf("Error:: Can't access u-boot-env device %s\n", DRV_UB_ENV_MAP);                printf("Error:: Can't access u-boot-env device %s\n", str);
                 return -1;                  return -1;
         }          }
   
         if (mode & O_RDWR) {          if (mode & O_RDWR) {
        } else {                rlen = write(f, env, siz);
                 if (rlen != siz)
                         printf("Error:: written %d bytes != %d\n", rlen, siz);
                 else
                         VERB(3) printf("Written %d bytes\n", rlen);
                 lseek(f, 0, SEEK_SET);
         }          }
   
           rlen = read(f, env, siz);
           if (rlen != siz)
                   printf("Error:: readed %d bytes != %d\n", rlen, siz);
           else
                   VERB(3) printf("Readed %d bytes\n", rlen);
   
         close(f);          close(f);
         return ret;          return ret;
 }  }
   
   int
   ub_load(const char *csSec)
   {
           const char *str;
           size_t siz;
   
           FTRACE(4);
   
           str = cfg_getAttribute(&cfg, csSec, "size");
           siz = strtol(str, NULL, 0);
           if (!siz)
                   return -1;
   
           env = e_malloc(siz);
           if (!env) {
                   ELIBERR(elwix);
                   return -1;
           }
   
           return 0;
   }
   
   void
   ub_unload()
   {
           FTRACE(4);
   
           if (env)
                   e_free(env);
   }
   
 const char*  const char*
ub_getenv(const char *csName)ub_getenv(const char *csSec, const char *csName)
 {  {
         const char *str = NULL;          const char *str = NULL;
   
Line 34  ub_getenv(const char *csName) Line 91  ub_getenv(const char *csName)
 }  }
   
 int  int
ub_setenv(const char *csName, const char *csValue)ub_setenv(const char *csSec, const char *csName, const char *csValue)
 {  {
         FTRACE(3);          FTRACE(3);
   

Removed from v.1.1.2.3  
changed lines
  Added in v.1.1.2.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>