/* NVRAM utility */ int main(int argc, char **argv) { char *name, *value; /* Skip program name */ --argc; ++argv; if (!*argv) usage(); /* Process the remaining arguments. */ for (; *argv; argv++) { if (!strncmp(*argv, "get", 3)) { if (*++argv) { if ((value = nvram_get(*argv))) puts(value); } } else if (!strncmp(*argv, "set", 3)) { if (*++argv) { char buf[1024]; strncpy(value = buf, *argv, sizeof(buf)-1); name = strsep(&value, "="); nvram_set(name, value); } } else if (!strncmp(*argv, "unset", 5)) { if (*++argv) nvram_unset(*argv); } else if (!strncmp(*argv, "commit", 6)) { nvram_commit(); } else if (!strncmp(*argv, "clear", 5)) { nvram_clear(); } else if (!strncmp(*argv, "save", 4)) { if (*++argv) nvram_save_new(*argv); } else if (!strncmp(*argv, "restore", 7)) { if (*++argv) nvram_restore_new(*argv); } else if (!strncmp(*argv, "show", 4) || !strncmp(*argv, "getall", 6)) { nvram_show_new(); } if (!*argv) break; } return 0; }
/* NVRAM utility */ int main(int argc, char **argv) { char *name, *value, buf[MAX_NVRAM_SPACE]; char *tmpbuf; //Andy Chiu, 2015/06/09 int size; /* Skip program name */ --argc; ++argv; if (!*argv) usage(); /* Process the arguments */ for (; *argv; ++argv) { if (!strcmp(*argv, "get")) { if (*++argv) { if ((value = nvram_get(*argv))) puts(value); } } else if (!strcmp(*argv, "set")) { if (*++argv) { strncpy(value = buf, *argv, sizeof(buf)); name = strsep(&value, "="); nvram_set(name, value); } } else if (!strcmp(*argv, "unset")) { if (*++argv) nvram_unset(*argv); } else if (!strcmp(*argv, "commit")) { nvram_commit(); } else if (!strcmp(*argv, "save")) { if (*++argv) { nvram_getall(buf, NVRAM_SPACE); nvram_save_new(*argv, buf); } //Andy Chiu, 2015/06/09 }else if(!strncmp(*argv, "fb_save", 7)) { if (*++argv) { tmpbuf = malloc(MAX_NVRAM_SPACE); if(!tmpbuf) { fprintf(stderr, "Can NOT alloc memory!!!"); return 0; } nvram_getall(buf, MAX_NVRAM_SPACE); memcpy(tmpbuf, buf, MAX_NVRAM_SPACE); _secure_conf(tmpbuf); #if 0 FILE *fp = fopen("/tmp/var/fb_conf.test", "w"); if(fp) { fwrite(tmpbuf, 1, MAX_NVRAM_SPACE, fp); fclose(fp); } #endif nvram_save_new(*argv, tmpbuf); free(tmpbuf); } } else if (!strcmp(*argv, "restore")) { if (*++argv) nvram_restore_new(*argv, buf); } else if (!strcmp(*argv, "erase")) { system("nvram_erase"); } else if (!strcmp(*argv, "show") || !strcmp(*argv, "dump")) { nvram_getall(buf, sizeof(buf)); for (name = buf; *name; name += strlen(name) + 1) puts(name); size = sizeof(struct nvram_header) + (int) name - (int) buf; if (**argv != 'd') fprintf(stderr, "size: %d bytes (%d left)\n", size, MAX_NVRAM_SPACE - size); } else usage(); } return 0; }
/* NVRAM utility */ int main(int argc, char **argv) { char *name, *value, *buf; int size; char *tmpbuf; //Andy Chiu, 2015/06/09 #ifdef RTCONFIG_CFE_NVRAM_CHK int ret = 0; FILE *fp; #endif /* Skip program name */ --argc; ++argv; if (!*argv) usage(); buf = malloc (MAX_NVRAM_SPACE); if (buf == NULL) { perror ("Out of memory!\n"); return -1; } /* Process the remaining arguments. */ for (; *argv; argv++) { if (!strncmp(*argv, "get", 3)) { if (*++argv) { if ((value = nvram_get(*argv))) puts(value); } } else if (!strncmp(*argv, "set", 3)) { if (*++argv) { strncpy(value = buf, *argv, MAX_NVRAM_SPACE); name = strsep(&value, "="); #ifdef RTCONFIG_CFE_NVRAM_CHK ret = nvram_set(name, value); if(ret == 2) { fp = fopen("/var/log/cfecommit_ret", "w"); if(fp!=NULL) { fprintf(fp,"Illegal nvram\n"); fclose(fp); } puts("Illegal nvram format!"); } #else nvram_set(name, value); #endif } } else if (!strncmp(*argv, "unset", 5)) { if (*++argv) nvram_unset(*argv); } else if (!strncmp(*argv, "commit", 5)) { nvram_commit(); } else if (!strncmp(*argv, "save", 4)) { if (*++argv) { nvram_getall(buf, MAX_NVRAM_SPACE); nvram_save_new(*argv, buf); } } //Andy Chiu, 2015/06/09 else if (!strncmp(*argv, "fb_save", 7)) { if (*++argv) { tmpbuf = malloc(MAX_NVRAM_SPACE); if(!tmpbuf) { fprintf(stderr, "Can NOT alloc memory!!!"); return 0; } nvram_getall(buf, MAX_NVRAM_SPACE); memcpy(tmpbuf, buf, MAX_NVRAM_SPACE); _secure_conf(tmpbuf); #if 0 FILE *fp = fopen("/tmp/var/fb_conf.test", "w"); if(fp) { fwrite(tmpbuf, 1, MAX_NVRAM_SPACE, fp); fclose(fp); } #endif nvram_save_new(*argv, tmpbuf); free(tmpbuf); } } else if (!strncmp(*argv, "restore", 7)) { if (*++argv) { nvram_restore_new(*argv, buf); } } else if (!strncmp(*argv, "show", 4) || !strncmp(*argv, "getall", 6)) { nvram_getall(buf, MAX_NVRAM_SPACE); for (name = buf; *name; name += strlen(name) + 1) puts(name); size = sizeof(struct nvram_header) + (int) name - (int) buf; fprintf(stderr, "size: %d bytes (%d left)\n", size, MAX_NVRAM_SPACE - size); } if (!*argv) break; } if (buf != NULL) free (buf); return 0; }