#include "global.h" #include "ub_env.h" env_t *env; static int ub_flash_io(const char *csSec, int mode) { int f, rlen, ret = 0; const char *str; size_t siz; FTRACE(4); 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) { printf("Error:: Can't access u-boot-env device %s\n", str); return -1; } if (mode & O_RDWR) { 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); 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* ub_getenv(const char *csSec, const char *csName) { const char *str = NULL; FTRACE(3); return str; } int ub_setenv(const char *csSec, const char *csName, const char *csValue) { FTRACE(3); return 0; }