/* (Re)initialize the hash table. Should be locked. */ static int BCMINITFN(nvram_rehash)(struct nvram_header *header) { char buf[] = "0xXXXXXXXX", *name, *value, *end, *eq; /* (Re)initialize hash table */ nvram_free(); /* Parse and set "name=value\0 ... \0\0" */ name = (char *) &header[1]; end = (char *) header + NVRAM_SPACE - 2; end[0] = end[1] = '\0'; for (; *name; name = value + strlen(value) + 1) { if (!(eq = strchr(name, '='))) break; *eq = '\0'; value = eq + 1; _nvram_set(name, value); *eq = '='; } /* Set special SDRAM parameters */ if (!_nvram_get("sdram_init")) { sprintf(buf, "0x%04X", (uint16)(header->crc_ver_init >> 16)); _nvram_set("sdram_init", buf); }
char * nvram_get(const char *name) { char *value; NVRAM_LOCK(); value = _nvram_get(name); NVRAM_UNLOCK(); return value; }
char * real_nvram_get(const char *name) { unsigned long flags; char *value; spin_lock_irqsave(&nvram_lock, flags); value = _nvram_get(name); spin_unlock_irqrestore(&nvram_lock, flags); return value; }
/* (Re)initialize the hash table. Should be locked. */ static int BCMINITFN(nvram_rehash)(struct nvram_header *header) { char buf[] = "0xXXXXXXXX", *name, *value, *end, *eq; struct nvram_header *hdrptr; /* (Re)initialize hash table */ nvram_free(); hdrptr = header; /* Parse and set "name=value\0 ... \0\0" */ name = (char *) &hdrptr[1]; end = (char *) hdrptr + NVRAM_SPACE - 2; end[0] = end[1] = '\0'; again: for (; *name; name = value + strlen(value) + 1) { if (!(eq = strchr(name, '='))) break; *eq = '\0'; value = eq + 1; _nvram_set(name, value); *eq = '='; } printk("rehash %x %x\n", header, name); { int j; for(j=0;j<64;j++) { if(j%16==0) printk("\n"); printk("%x ", *(name-32+j)); } printk("\n"); } hdrptr = find_next_header(header, name+2); if(hdrptr) printk("magic: %x\n", hdrptr->magic); if(hdrptr && hdrptr->magic==NVRAM_MAGIC) { name = (char *)&hdrptr[1]; goto again; } /* Set special SDRAM parameters */ if (!_nvram_get("sdram_init")) { sprintf(buf, "0x%04X", (uint16)(header->crc_ver_init >> 16)); _nvram_set("sdram_init", buf); }
char * nvram_get(const char *name) { char *value; if (nvram_header == NULL) { return (char *)0; } NVRAM_LOCK(); value = _nvram_get(name); NVRAM_UNLOCK(); return value; }
char * nvram_get(const char *name) { char *value; #ifdef __ECOS if (!kernel_initial) return NULL; #endif NVRAM_LOCK(); value = _nvram_get(name); NVRAM_UNLOCK(); return value; }
char *nvram_get(const char *name) { LOCK_NVRAM(); char *value; if(!(_nvram!=NULL)) _nvram = _lib_nvram_open_staging(); if(!(_nvram!=NULL)) { UNLOCK_NVRAM(); return NULL; } if((value=_nvram_get(_nvram,name))!=NULL) { } UNLOCK_NVRAM(); return value; }
char * nvram_get(const char *name) { unsigned long flags; char *value; if (!name) return NULL; // Check early read if (nvram_major < 0) return NULL; spin_lock_irqsave(&nvram_lock, flags); value = _nvram_get(name); spin_unlock_irqrestore(&nvram_lock, flags); return value; }