Changeset 15429


Ignore:
Timestamp:
2009-04-26T22:42:36+02:00 (9 years ago)
Author:
jow
Message:

[package] unvram: make it work on bcm47xx, also look for /dev/mtdblockX

Location:
trunk/package/unvram
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/unvram/Makefile

    r15426 r15429  
    99 
    1010PKG_NAME:=unvram 
    11 PKG_RELEASE:=1 
     11PKG_RELEASE:=2 
    1212 
    1313PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) 
  • trunk/package/unvram/src/nvram.c

    r15426 r15429  
    410410        char dev[PATH_MAX]; 
    411411        char *path = NULL; 
     412        struct stat s; 
    412413 
    413414        // "/dev/mtdblock/" + ( 0 < x < 99 ) + \0 = 19 
     
    417418        if ((fp = fopen("/proc/mtd", "r"))) { 
    418419                while (fgets(dev, sizeof(dev), fp)) { 
    419                         if (strstr(dev, "nvram") && sscanf(dev, "mtd%d: %08x", &i, &esz)) { 
    420                                 if( (path = (char *) malloc(19)) != NULL ) 
     420                        if (strstr(dev, "nvram") && sscanf(dev, "mtd%d: %08x", &i, &esz)) 
     421                        { 
     422                                nvram_erase_size = esz; 
     423 
     424                                sprintf(dev, "/dev/mtdblock/%d", i); 
     425                                if( stat(dev, &s) > -1 && (s.st_mode & S_IFBLK) ) 
    421426                                { 
    422                                         nvram_erase_size = esz; 
    423                                         snprintf(path, 19, "/dev/mtdblock/%d", i); 
    424                                         break; 
     427                                        if( (path = (char *) malloc(strlen(dev)+1)) != NULL ) 
     428                                        { 
     429                                                strncpy(path, dev, strlen(dev)+1); 
     430                                                break; 
     431                                        } 
     432                                } 
     433                                else 
     434                                { 
     435                                        sprintf(dev, "/dev/mtdblock%d", i); 
     436                                        if( stat(dev, &s) > -1 && (s.st_mode & S_IFBLK) ) 
     437                                        { 
     438                                                if( (path = (char *) malloc(strlen(dev)+1)) != NULL ) 
     439                                                { 
     440                                                        strncpy(path, dev, strlen(dev)+1); 
     441                                                        break; 
     442                                                } 
     443                                        } 
    425444                                } 
    426445                        } 
  • trunk/package/unvram/src/nvram.h

    r15426 r15429  
    2525#include <sys/mman.h> 
    2626#include <sys/stat.h> 
    27 #include <sys/ioctl.h> 
    28 #include <arpa/inet.h> 
    2927#include <linux/limits.h> 
    3028 
Note: See TracChangeset for help on using the changeset viewer.