Changeset 14856

Show
Ignore:
Timestamp:
07/31/10 14:41:16 (1 month ago)
Author:
BrainSlayer
Message:

simplify code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/router/httpd/visuals/dd-wrt.c

    r14854 r14856  
    307307} 
    308308 
    309 #ifdef HAVE_RB500 
    310 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    311 
    312         FILE *fp = fopen("/proc/cpuinfo", "rb"); 
    313  
    314         if (fp == NULL) { 
    315                 websWrite(wp, "unknown"); 
    316                 return; 
    317         } 
    318         int cnt = 0; 
    319         int b = 0; 
    320  
    321         while (b != EOF) { 
    322                 b = getc(fp); 
    323                 if (b == ':') 
    324                         cnt++; 
    325  
    326                 if (cnt == 4) { 
    327                         getc(fp); 
    328                         char cpuclk[4]; 
    329  
    330                         cpuclk[0] = getc(fp); 
    331                         cpuclk[1] = getc(fp); 
    332                         cpuclk[2] = getc(fp); 
    333                         cpuclk[3] = 0; 
    334                         websWrite(wp, cpuclk); 
    335                         fclose(fp); 
    336                         return; 
    337                 } 
    338         } 
    339  
    340         fclose(fp); 
    341         websWrite(wp, "unknown"); 
    342         return; 
    343 
    344  
    345 #elif HAVE_STORM 
    346 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    347 
    348         websWrite(wp, "300"); 
    349         return; 
    350 
     309#ifdef HAVE_STORM 
     310    #define HARDFREQ "300" 
    351311#elif HAVE_OPENRISC 
    352 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    353 
    354         websWrite(wp, "166"); 
    355         return; 
    356 
     312    #define HARDFREQ "166" 
    357313#elif HAVE_RT3052 
    358 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    359 
    360         websWrite(wp, "384"); 
    361         return; 
    362 
     314    #define HARDFREQ "384" 
    363315#elif HAVE_RT2880 
    364 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    365 
    366         websWrite(wp, "266"); 
    367         return; 
    368 
     316    #define HARDFREQ "266" 
    369317#elif HAVE_XSCALE 
    370 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    371 
    372         FILE *fp = fopen("/proc/cpuinfo", "rb"); 
    373  
    374         if (fp == NULL) { 
    375                 websWrite(wp, "unknown"); 
    376                 return; 
    377         } 
    378         int cnt = 0; 
    379         int b = 0; 
    380  
    381         while (b != EOF) { 
    382                 b = getc(fp); 
    383                 if (b == ':') 
    384                         cnt++; 
    385                 if (cnt == 2) { 
    386                         getc(fp); 
    387                         char cpuclk[4]; 
    388  
    389                         cpuclk[0] = getc(fp); 
    390                         cpuclk[1] = getc(fp); 
    391                         cpuclk[2] = getc(fp); 
    392                         cpuclk[3] = 0; 
    393                         websWrite(wp, cpuclk); 
    394                         fclose(fp); 
    395                         return; 
    396                 } 
    397         } 
    398  
    399         fclose(fp); 
    400         websWrite(wp, "unknown"); 
    401         return; 
    402 
     318    #define FREQLINE 2 
     319#elif defined(HAVE_MAGICBOX) || defined(HAVE_RB600) 
     320    #define FREQLINE 3 
     321#elif defined(HAVE_FONERA) || defined(HAVE_SOLO51) || defined(HAVE_ADM5120) || defined(HAVE_MERAKI) || defined(HAVE_LS2) || defined(HAVE_LS5) || defined(HAVE_WHRAG108) || defined(HAVE_TW6600) || defined(HAVE_CA8) || defined(HAVE_RB500) 
     322    #define FREQLINE 4 
     323#elif defined(HAVE_PB42) || defined(HAVE_LSX) || defined(HAVE_DANUBE) 
     324    #define FREQLINE 5 
    403325#elif HAVE_X86 
    404326void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
     
    438360        return; 
    439361} 
    440 #elif HAVE_MAGICBOX 
     362#else 
     363void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
     364
     365        char *clk = nvram_get("clkfreq"); 
     366 
     367        if (clk == NULL) { 
     368                if (getcpurev() == 0)   //BCM4710 
     369                        websWrite(wp, "125"); 
     370                else if (getcpurev() == 29)     //BCM5354 
     371                        websWrite(wp, "240"); 
     372                else 
     373                        websWrite(wp, "unknown"); 
     374                return; 
     375        } 
     376        char buf[64]; 
     377 
     378        strcpy(buf, clk); 
     379        int i = 0; 
     380 
     381        while (buf[i++] != 0) { 
     382                if (buf[i] == ',') 
     383                        buf[i] = 0; 
     384        } 
     385        websWrite(wp, buf); 
     386        return; 
     387
     388#endif 
     389 
     390 
     391#ifdef FREQLINE 
    441392void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    442393{ 
     
    454405                if (b == ':') 
    455406                        cnt++; 
    456                 if (cnt == 3) { 
     407 
     408                if (cnt == FREQLINE) { 
    457409                        getc(fp); 
    458410                        char cpuclk[4]; 
     
    472424        return; 
    473425} 
    474 #elif HAVE_RB600 
     426#undef FREQLINE 
     427#elif HARDFREQ 
    475428void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    476429{ 
    477         FILE *fp = fopen("/proc/cpuinfo", "rb"); 
    478  
    479         if (fp == NULL) { 
    480                 websWrite(wp, "unknown"); 
    481                 return; 
    482         } 
    483         int cnt = 0; 
    484         int b = 0; 
    485  
    486         while (b != EOF) { 
    487                 b = getc(fp); 
    488                 if (b == ':') 
    489                         cnt++; 
    490                 if (cnt == 3) { 
    491                         getc(fp); 
    492                         char cpuclk[4]; 
    493  
    494                         cpuclk[0] = getc(fp); 
    495                         cpuclk[1] = getc(fp); 
    496                         cpuclk[2] = getc(fp); 
    497                         cpuclk[3] = 0; 
    498                         websWrite(wp, cpuclk); 
    499                         fclose(fp); 
    500                         return; 
    501                 } 
    502         } 
    503  
    504         fclose(fp); 
    505         websWrite(wp, "unknown"); 
     430        websWrite(wp, HARDFREQ); 
    506431        return; 
    507432} 
    508 #elif defined(HAVE_FONERA) || defined(HAVE_SOLO51) || defined(HAVE_ADM5120) || defined(HAVE_MERAKI) || defined(HAVE_LS2) || defined(HAVE_LS5) || defined(HAVE_WHRAG108) || defined(HAVE_TW6600) || defined(HAVE_CA8) 
    509 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    510 
    511         FILE *fp = fopen("/proc/cpuinfo", "rb"); 
    512  
    513         if (fp == NULL) { 
    514                 websWrite(wp, "unknown"); 
    515                 return; 
    516         } 
    517         int cnt = 0; 
    518         int b = 0; 
    519  
    520         while (b != EOF) { 
    521                 b = getc(fp); 
    522                 if (b == ':') 
    523                         cnt++; 
    524                 if (cnt == 4) { 
    525                         getc(fp); 
    526                         char cpuclk[4]; 
    527  
    528                         cpuclk[0] = getc(fp); 
    529                         cpuclk[1] = getc(fp); 
    530                         cpuclk[2] = getc(fp); 
    531                         cpuclk[3] = 0; 
    532                         websWrite(wp, cpuclk); 
    533                         fclose(fp); 
    534                         return; 
    535                 } 
    536         } 
    537  
    538         fclose(fp); 
    539         websWrite(wp, "unknown"); 
    540         return; 
    541 
    542 #elif defined(HAVE_PB42) || defined(HAVE_LSX) || defined(HAVE_DANUBE) 
    543 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    544 
    545         FILE *fp = fopen("/proc/cpuinfo", "rb"); 
    546  
    547         if (fp == NULL) { 
    548                 websWrite(wp, "unknown"); 
    549                 return; 
    550         } 
    551         int cnt = 0; 
    552         int b = 0; 
    553  
    554         while (b != EOF) { 
    555                 b = getc(fp); 
    556                 if (b == ':') 
    557                         cnt++; 
    558                 if (cnt == 5) { 
    559                         getc(fp); 
    560                         char cpuclk[4]; 
    561  
    562                         cpuclk[0] = getc(fp); 
    563                         cpuclk[1] = getc(fp); 
    564                         cpuclk[2] = getc(fp); 
    565                         cpuclk[3] = 0; 
    566                         websWrite(wp, cpuclk); 
    567                         fclose(fp); 
    568                         return; 
    569                 } 
    570         } 
    571  
    572         fclose(fp); 
    573         websWrite(wp, "unknown"); 
    574         return; 
    575 
    576  
    577 #else 
    578  
    579 void ej_get_clkfreq(webs_t wp, int argc, char_t ** argv) 
    580 
    581         char *clk = nvram_get("clkfreq"); 
    582  
    583         if (clk == NULL) { 
    584                 if (getcpurev() == 0)   //BCM4710 
    585                         websWrite(wp, "125"); 
    586                 else if (getcpurev() == 29)     //BCM5354 
    587                         websWrite(wp, "240"); 
    588                 else 
    589                         websWrite(wp, "unknown"); 
    590                 return; 
    591         } 
    592         char buf[64]; 
    593  
    594         strcpy(buf, clk); 
    595         int i = 0; 
    596  
    597         while (buf[i++] != 0) { 
    598                 if (buf[i] == ',') 
    599                         buf[i] = 0; 
    600         } 
    601         websWrite(wp, buf); 
    602         return; 
    603 
    604 #endif 
     433#undef HARDFREQ 
     434#endif 
     435 
    605436 
    606437void ej_show_cpuinfo(webs_t wp, int argc, char_t ** argv) 
    607438{ 
    608 #ifdef HAVE_RB600 
    609         websWrite(wp, "FreeScale MPC8343"); 
    610 #else 
    611         FILE *fcpu = fopen("/proc/cpuinfo", "r"); 
    612  
    613         if (fcpu == NULL) { 
     439 
     440        char *str = cpustring(); 
     441        if (!str) { 
    614442                websWrite(wp, "Not Detected!\n"); 
    615443                return; 
    616444        } 
    617         char buf[256]; 
    618         int i; 
    619  
    620 #ifdef HAVE_MAGICBOX 
    621         int cnt = 0; 
    622 #endif 
    623 #ifdef HAVE_X86 
    624         int cnt = 0; 
    625 #endif 
    626         for (i = 0; i < 256; i++) { 
    627                 int c = getc(fcpu); 
    628  
    629                 if (c == EOF) { 
    630                         websWrite(wp, "Not Detected!\n"); 
    631                         fclose(fcpu); 
    632                         return; 
    633                 } 
    634                 if (c == ':') 
    635 #ifdef HAVE_MAGICBOX 
    636                         cnt++; 
    637                 if (cnt == 2) 
    638                         break; 
    639 #elif HAVE_X86 
    640                         cnt++; 
    641                 if (cnt == 5) 
    642                         break; 
    643 #else 
    644                         break; 
    645 #endif 
    646         } 
    647         getc(fcpu); 
    648         for (i = 0; i < 256; i++) { 
    649                 int c = getc(fcpu); 
    650  
    651                 if (c == EOF) { 
    652                         websWrite(wp, "Not Detected!\n"); 
    653                         fclose(fcpu); 
    654                         return; 
    655                 } 
    656                 if (c == 0xa || c == 0xd) 
    657                         break; 
    658                 buf[i] = c; 
    659         } 
    660         buf[i] = 0; 
    661         websWrite(wp, buf); 
    662         fclose(fcpu); 
    663         return; 
    664 #endif 
     445        websWrite(wp, str);      
    665446} 
    666447 
     
    36923473                websWrite(wp, "</fieldset><br />\n"); 
    36933474                count++; 
    3694 #ifdef HAVE_BUFFALO 
    3695 #ifdef HAVE_AP83 
    3696                 if( count == 4 ) { 
     3475#ifdef HAVE_MADWIFI_MIMO 
     3476                if( count == 4 && isap8x()) { 
    36973477                        websWrite(wp, "<div class=\"warning\">\n"); 
    36983478                        websWrite(wp, "  <p><script type=\"text/javascript\">Capture(wl_basic.ap83_vap_note)</script></p>\n"); 
    36993479                        websWrite(wp, "</div>\n<br>\n"); 
    37003480                } 
    3701 #endif 
    37023481#endif 
    37033482        } 
  • src/router/libutils/utils.c

    r14823 r14856  
    19621962                return ROUTER_WAP54G_V3; 
    19631963        } 
    1964          
    1965         if (boardnum == 1 
    1966             && nvram_match("boardtype", "0xE4CD") 
     1964 
     1965        if (boardnum == 1 && nvram_match("boardtype", "0xE4CD") 
    19671966            && nvram_match("boardrev", "0x1700")) { 
    19681967                cprintf("router is wnr2000 v2\n"); 
     
    28592858} 
    28602859 
     2860char *cpustring(void) 
     2861{ 
     2862#ifdef HAVE_RB600 
     2863        websWrite(wp, "FreeScale MPC8343"); 
     2864#else 
     2865        FILE *fcpu = fopen("/proc/cpuinfo", "r"); 
     2866 
     2867        if (fcpu == NULL) { 
     2868                return NULL; 
     2869        } 
     2870        static char buf[256]; 
     2871        int i; 
     2872 
     2873#ifdef HAVE_MAGICBOX 
     2874        int cnt = 0; 
     2875#endif 
     2876#ifdef HAVE_X86 
     2877        int cnt = 0; 
     2878#endif 
     2879        for (i = 0; i < 256; i++) { 
     2880                int c = getc(fcpu); 
     2881 
     2882                if (c == EOF) { 
     2883                        fclose(fcpu); 
     2884                        return NULL; 
     2885                } 
     2886                if (c == ':') 
     2887#ifdef HAVE_MAGICBOX 
     2888                        cnt++; 
     2889                if (cnt == 2) 
     2890                        break; 
     2891#elif HAVE_X86 
     2892                        cnt++; 
     2893                if (cnt == 5) 
     2894                        break; 
     2895#else 
     2896                        break; 
     2897#endif 
     2898        } 
     2899        getc(fcpu); 
     2900        for (i = 0; i < 256; i++) { 
     2901                int c = getc(fcpu); 
     2902 
     2903                if (c == EOF) { 
     2904                        fclose(fcpu); 
     2905                        return NULL; 
     2906                } 
     2907                if (c == 0xa || c == 0xd) 
     2908                        break; 
     2909                buf[i] = c; 
     2910        } 
     2911        buf[i] = 0; 
     2912        fclose(fcpu); 
     2913        return buf; 
     2914#endif 
     2915} 
     2916 
     2917#ifdef HAVE_MADWIFI_MIMO 
     2918 
     2919int isap8x(void) 
     2920{ 
     2921#define CPUSTR "Atheros AR91" 
     2922        char *str = cpustring(); 
     2923        if (str && !strncmp(str, CPUSTR, 12)) 
     2924                return 1; 
     2925        else 
     2926                return 0; 
     2927#undef CPUSTR 
     2928 
     2929} 
     2930 
     2931#endif 
     2932 
    28612933int led_control(int type, int act) 
    28622934/* 
     
    33563428                //power_gpio = ??; 
    33573429                diag_gpio = 0x002; 
    3358                 ses_gpio = 0x007;  //WPS led 
     3430                ses_gpio = 0x007;      //WPS led 
    33593431                connected_gpio = 0x006; 
    33603432                break;