Changeset 13109

Show
Ignore:
Timestamp:
10/20/09 16:28:21 (1 month ago)
Author:
BrainSlayer
Message:

separate wireless functions into a second library and remove unused functions for certain targets

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/router/libutils/Makefile

    r13102 r13109  
    3333 
    3434#CFLAGS += -g -DDEBUG 
    35 CFLAGS  += -fpic  
     35CFLAGS  += -fPIC 
    3636LDFLAGS += -L. 
    37 OBJS := utils.o shutils.o wl.o linux_timer.o wl_linux.o gpio.o md5c.o crc.o 
     37OBJS := utils.o shutils.o wl_basic.o linux_timer.o wl_linux.o gpio.o md5c.o crc.o 
     38WOBJS := wl.o 
     39 
    3840#defaults.o 
    3941ifeq ($(CONFIG_MAGICBOX),y) 
     
    5557ifeq ($(CONFIG_MADWIFI),y) 
    5658ifeq ($(CONFIG_MADWIFI_MIMO),y) 
    57 CFLAGS += -DHAVE_MADWIFI -DMADWIFI_MIMO -I../services/networking -I../madwifi.dev/madwifi_mimo.dev/core -include ../madwifi.dev/madwifi_mimo.dev/core/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 
     59CFLAGS += -DHAVE_MADWIFI -DMADWIFI_MIMO -I../services/networking -I../madwifi.dev/madwifi_mimo.dev/core -include ../madwifi.dev/madwifi_mimo.dev/core/include/compat.h -I../wireless-tools -DHEADERS_KERNEL  
    5860else 
    59 CFLAGS += -DHAVE_MADWIFI -I../services/networking -I../madwifi.dev/madwifi.dev -include ../madwifi.dev/madwifi.dev/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 
    60 endif 
    61  
    62  
    63 OBJS += ../wireless-tools/libiw.so.29  
     61CFLAGS += -DHAVE_MADWIFI -I../services/networking -I../madwifi.dev/madwifi.dev -include ../madwifi.dev/madwifi.dev/include/compat.h -I../wireless-tools -DHEADERS_KERNEL  
     62endif 
     63WLDFLAGS = ../wireless-tools/libiw.so.29 
    6464endif 
    6565OBJS += country.o 
     
    578578HFLAGS := $(CFLAGS) 
    579579CFLAGS += $(COPTS) 
    580 all: libutils.so libutils.a 
    581 #       gcc -o defaults $(HFLAGS) defaults.c 
    582 #       ./defaults 
     580all: libutils.so libutils.a libwireless.so libwireless.a 
    583581 
    584582install: all 
     
    586584        install -d $(INSTALLDIR)/libutils/lib 
    587585        install -m 755 libutils.so $(INSTALLDIR)/libutils/lib 
     586        install -m 755 libwireless.so $(INSTALLDIR)/libutils/lib 
    588587else 
    589588        install -d $(INSTALLDIR)/libutils/usr/lib 
    590589        install -m 755 libutils.so $(INSTALLDIR)/libutils/usr/lib 
     590        install -m 755 libwireless.so $(INSTALLDIR)/libutils/usr/lib 
    591591endif 
    592592 
     
    599599 
    600600libutils.so: $(OBJS) 
    601         $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ $^ -L../nvram -lnvram -lm 
     601        $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ $^ -L../nvram -lnvram 
     602 
     603libwireless.so: $(WOBJS) 
     604        $(CC) -shared $(CFLAGS) $(LDFLAGS)  -o $@ $^ -L../nvram -lnvram  $(WLDFLAGS) 
     605 
    602606 
    603607libutils.a: $(OBJS) 
    604608        $(AR) arc -o  $@ $^ 
    605609 
     610libwireless.a: $(WOBJS) 
     611        $(AR) arc -o  $@ $^ 
     612 
    606613*.o: $(CY_DEPS) 
  • src/router/libutils/wl.c

    r13001 r13109  
    16981698#endif 
    16991699 
    1700 #ifdef HAVE_RT2880 
    1701 char *get_wl_instance_name(int instance) 
    1702 
    1703         return "ra0"; 
    1704 
    1705  
    1706 int get_wl_instances(void) 
    1707 
    1708         return 1; 
    1709 
    1710  
    1711 int get_wl_instance(char *name) 
    1712 
    1713         return 1; 
    1714 
    1715  
    1716 #else 
    1717 char *get_wl_instance_name(int instance) 
    1718 
    1719         if (get_wl_instance("eth1") == instance) 
    1720                 return "eth1"; 
    1721         if (get_wl_instance("eth2") == instance) 
    1722                 return "eth2"; 
    1723         if (get_wl_instance("eth0") == instance) 
    1724                 return "eth0"; 
    1725         if (get_wl_instance("eth3") == instance) 
    1726                 return "eth3"; 
    1727         fprintf(stderr, "get_wl_instance doesnt return the right value %d\n", 
    1728                 instance); 
    1729         return nvram_safe_get("wl0_ifname");    // dirty for debugging 
    1730 
    1731  
    1732 int get_wl_instances(void) 
    1733 
    1734         if (get_wl_instance("eth1") == 1) 
    1735                 return 2; 
    1736         if (get_wl_instance("eth2") == 1) 
    1737                 return 2; 
    1738         if (get_wl_instance("eth3") == 1) 
    1739                 return 2; 
    1740         return 1; 
    1741 
    1742  
    1743 int get_wl_instance(char *name) 
    1744 
    1745         int unit; 
    1746         int ret; 
    1747  
    1748         if (!ifexists(name)) 
    1749                 return -1; 
    1750         if (wl_probe(name)) 
    1751                 return -1; 
    1752         ret = wl_ioctl(name, WLC_GET_INSTANCE, &unit, sizeof(unit)); 
    1753 //      fprintf(stderr,"wl_instance = %d\n",unit); 
    1754         if (ret == 0) 
    1755                 return unit; 
    1756         return ret; 
    1757 
    1758  
    1759 int bcm_gettxpower(char *wlname) 
    1760 
    1761         int pwr = 0; 
    1762         int realpwr; 
    1763         int c; 
    1764         char cmd[32]; 
    1765         char wl[16]; 
    1766  
    1767         sprintf(wl, "%s_txpwr", wlname); 
    1768         pwr = atoi(nvram_safe_get(wl)); 
    1769  
    1770         if (!strcmp(wlname, "wl0")) 
    1771                 c = 0; 
    1772         else if (!strcmp(wlname, "wl1")) 
    1773                 c = 1; 
    1774         else 
    1775                 return pwr; 
    1776  
    1777         sprintf(cmd, "wl -i %s txpwr1", get_wl_instance_name(c)); 
    1778  
    1779         FILE *in = popen(cmd, "rb"); 
    1780         if (in == NULL) 
    1781                 return pwr; 
    1782         // TxPower is 74 qdbm,  18.50 dbm, 71 mW  Override is Off                
    1783         if (fscanf(in, "%*s %*s %*s %*s %*s %*s %d", &realpwr) == 1) 
    1784                 pwr = realpwr; 
    1785  
    1786         pclose(in); 
    1787  
    1788         return pwr; 
    1789 
    1790  
    1791 #endif 
    1792     /* 
    1793      * return 1st wireless interface  
    1794      */ 
    1795 char *get_wdev(void) 
    1796 
    1797 #ifdef HAVE_MADWIFI 
    1798         if (nvram_match("wifi_bonding", "1")) 
    1799                 return "bond0"; 
    1800         else { 
    1801                 return "ath0"; 
    1802         } 
    1803 #elif HAVE_RT2880 
    1804         return "ra0"; 
    1805 #else 
    1806         return get_wl_instance_name(0); 
    1807 #endif 
    1808 
    1809  
    1810 int wl_probe(char *name) 
    1811 
    1812         int ret, val; 
    1813  
    1814         if (isListed("probe_blacklist", name)) 
    1815                 return -1; 
    1816  
    1817 #if 0 //defined(linux) 
    1818         char buf[DEV_TYPE_LEN]; 
    1819  
    1820         if ((ret = wl_get_dev_type(name, buf, DEV_TYPE_LEN)) < 0) { 
    1821 //              fprintf(stderr,"dev type=%s fail\n",name); 
    1822                 addList("probe_blacklist", name); 
    1823                 return ret; 
    1824         } 
    1825         /* 
    1826          * Check interface  
    1827          */ 
    1828 //      fprintf(stderr,"dev type=%s\n",buf); 
    1829         if (strncmp(buf, "wl", 2)) { 
    1830                 addList("probe_blacklist", name); 
    1831                 return -1; 
    1832         } 
    1833 #else 
    1834         /* 
    1835          * Check interface  
    1836          */ 
    1837         if ((ret = wl_ioctl(name, WLC_GET_MAGIC, &val, sizeof(val)))) { 
    1838         //    fprintf(stderr,"magic fail\n"); 
    1839                 addList("probe_blacklist", name); 
    1840                 return ret; 
    1841         } 
    1842 #endif 
    1843         if ((ret = wl_ioctl(name, WLC_GET_VERSION, &val, sizeof(val)))) { 
    1844         //    fprintf(stderr,"version fail\n"); 
    1845                 addList("probe_blacklist", name); 
    1846                 return ret; 
    1847         } 
    1848         if (val > WLC_IOCTL_VERSION) { 
    1849         //    fprintf(stderr,"version fail %d\n",val); 
    1850                 addList("probe_blacklist", name); 
    1851                 return -1; 
    1852         } 
    1853         return ret; 
    1854 
     1700 
     1701 
     1702#if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 
     1703 
    18551704 
    18561705/* 
     
    21632012 */ 
    21642013 
    2165 // #endif 
     2014#endif 
  • src/router/rc/Makefile

    r13102 r13109  
    190190endif 
    191191 
    192 ifeq ($(CONFIG_MADWIFI),y) 
    193 CFLAGS += -DHAVE_MADWIFI -DHAVE_ROAMING 
    194 OBJS += ../wireless-tools/libiw.so.29  
    195 OBJS += roaming_daemon.o 
    196 endif 
    197192ifeq ($(CONFIG_FON),y) 
    198193CFLAGS += -DHAVE_FON 
     
    457452CFLAGS += -DHAVE_RSTP 
    458453endif 
     454ifeq ($(CONFIG_MADWIFI),y) 
     455CFLAGS +=  -DHAVE_MADWIFI -DHAVE_ROAMING  
     456endif 
     457 
     458 
    459459 
    460460ifeq ($(CONFIG_SNMP),y) 
     
    564564endif 
    565565        cd $(INSTALLDIR)/sbin && ln -sf rc erase 
    566       cd $(INSTALLDIR)/sbin && ln -sf rc roaming_daemon 
     566#     cd $(INSTALLDIR)/sbin && ln -sf rc roaming_daemon 
    567567        cd $(INSTALLDIR)/sbin && ln -sf rc get_wanface 
    568568#       cd $(INSTALLDIR)/sbin && ln -sf rc ledtool 
     
    665665rc: $(OBJS) 
    666666#       $(AR) arc -o $@.a $^ 
    667         $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) 
     667        $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lwireless 
     668        $(CC) $(CFLAGS) -o roaming_daemon roaming_daemon.c $(LDFLAGS) ../wireless-tools/libiw.so.29  
    668669        $(CC) $(CFLAGS) -o ttraff ttraff.c $(LDFLAGS) 
    669         $(CC) $(CFLAGS) -o wland wland.c $(LDFLAGS) 
     670        $(CC) $(CFLAGS) -o wland wland.c $(LDFLAGS) -lwireless 
    670671        $(CC) $(CFLAGS) -o process_monitor process_monitor.c ntp.c $(LDFLAGS) 
    671         $(CC) $(CFLAGS) -o resetbutton resetbutton.c $(LDFLAGS) 
    672         $(CC) $(CFLAGS) -o init init.c $(LDFLAGS) 
     672        $(CC) $(CFLAGS) -o resetbutton resetbutton.c $(LDFLAGS) -lwireless 
     673        $(CC) $(CFLAGS) -o init init.c -L$(TOP)/nvram -I$(LINUXDIR) -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/libutils -ldl -lutils 
    673674        $(CC) $(CFLAGS) -o check_ps check_ps.c $(LDFLAGS) 
    674675        $(CC) $(CFLAGS) -o nvram nvram.c -L../nvram -lnvram 
  • src/router/rc/init.c

    r13102 r13109  
    2929#define _PATH_CONSOLE   "/dev/console" 
    3030 
    31 #define start_service(a) eval("startservice",a); 
    32 #define start_service_f(a) eval("startservice_f",a); 
    33 #define start_services() eval("startservices"); 
    34 #define start_single_service() eval("start_single_service"); 
    35 #define stop_service(a) eval("stopservice",a); 
    36 #define stop_services() eval("stopservices"); 
    37 #define startstop(a) eval("startstop",a); 
    38 #define startstop_f(a) eval("startstop_f",a); 
     31int sysprintf(const char *fmt, ...) 
     32
     33        char varbuf[256]; 
     34        va_list args; 
     35 
     36        va_start(args, (char *)fmt); 
     37        vsnprintf(varbuf, sizeof(varbuf), fmt, args); 
     38        va_end(args); 
     39        return system(varbuf); 
     40
     41 
     42 
     43 
     44#define start_service(a) sysprintf("startservice %s",a); 
     45#define start_service_f(a) sysprintf("startservice_f %s",a); 
     46#define start_services() system("startservices"); 
     47#define start_single_service() system("start_single_service"); 
     48#define stop_service(a) sysprintf("stopservice %s",a); 
     49#define stop_services() system("stopservices"); 
     50#define startstop(a) sysprintf("startstop %s",a); 
     51#define startstop_f(a) sysprintf("startstop_f %s",a); 
    3952 
    4053static void set_term(int fd) 
     
    231244        sleep(1); 
    232245 
    233 #ifdef HAVE_RB500 
    234         eval("umount", "/"); 
    235 #endif 
    236246} 
    237247 
     
    542552        fclose(fp); 
    543553 
     554#ifndef HAVE_MADWIFI 
    544555        int cnt = get_wl_instances(); 
     556#endif 
    545557        int c; 
    546558 
     
    578590#if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 
    579591                        for (c = 0; c < cnt; c++) { 
    580                                 eval("wlconf", get_wl_instance_name(c), "down"); 
     592                                sysprintf("wlconf %s down", get_wl_instance_name(c)); 
    581593                                char *next; 
    582594                                char var[80]; 
     
    585597                                if (vifs != NULL) 
    586598                                        foreach(var, vifs, next) { 
    587                                         eval("ifconfig", var, "down"); 
     599                                        sysprintf ("ifconfig %s down", var); 
    588600                                        } 
    589601                        } 
     
    618630#endif 
    619631#ifdef HAVE_RSTP 
    620                         eval("killall", "rstpd"); 
     632                        system("killall rstpd"); 
    621633                        unlink("/tmp/.rstp_server"); 
    622634#endif 
     
    707719                            && nvram_match("radiooff_boot_off", "1")) { 
    708720                                for (c = 0; c < cnt; c++) { 
    709                                         eval("wl", "-i", 
    710                                              get_wl_instance_name(c), "radio", 
    711                                              "off"); 
     721                                        sysprintf("wl -i %s radio off", 
     722                                             get_wl_instance_name(c)); 
    712723                                } 
    713724                                led_control(LED_SEC0, LED_OFF); 
     
    758769#ifdef HAVE_RSTP 
    759770                        // just experimental for playing 
    760                         eval("brctl", "stp", "br0", "off"); 
    761                         eval("rstpd"); 
    762                         eval("rstpctl", "rstp", "br0", "on"); 
     771                        system("brctl stp br0 off"); 
     772                        system("rstpd"); 
     773                        system("rstpctl rstp br0 on"); 
    763774#endif 
    764775 
  • src/router/rc/rc.c

    r12224 r13109  
    226226        // {"nvram", NULL, &nvram_main}, 
    227227#ifdef HAVE_ROAMING 
    228       {"roaming_daemon", NULL, &roaming_daemon_main}, 
     228//    {"roaming_daemon", NULL, &roaming_daemon_main}, 
    229229        {"supplicant", "supplicant", NULL}, 
    230230#endif 
  • src/router/rc/resetbutton.c

    r13085 r13109  
    351351                initses = 0; 
    352352        } 
     353#ifndef HAVE_MADWIFI 
    353354        int cc = get_wl_instances(); 
     355#endif 
    354356        int ii; 
    355357#endif 
  • src/router/rc/roaming_daemon.c

    r12224 r13109  
    168168} 
    169169 
    170 int roaming_daemon_main(int argc, char *argv[]) 
     170int main(int argc, char *argv[]) 
    171171{ 
    172172 
  • src/router/services/Makefile

    r13105 r13109  
    77endif 
    88 
    9 LDFLAGS = -L$(TOP)/nvram -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/shared -L$(INSTALLDIR)/shared/usr/lib -lshared -lcrypt -L../libnet/lib -lnet -L../libutils -lutils 
     9LDFLAGS = -L$(TOP)/nvram -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/shared -L$(INSTALLDIR)/shared/usr/lib -lshared -lcrypt -L../libnet/lib -lnet -L../libutils -lutils -lwireless 
    1010ifneq ($(CONFIG_DIST),"micro") 
    1111ifneq ($(CONFIG_DIST),"micro-special") 
  • src/router/services/networking/network.c

    r13094 r13109  
    390390 * Enable WET DHCP relay for ethernet clients  
    391391 */ 
     392#if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 
    392393static int enable_dhcprelay(char *ifname) 
    393394{ 
     
    434435        return 0; 
    435436} 
    436  
     437#endif 
    437438static int wlconf_up(char *name) 
    438439{ 
     
    15531554                                        led_control(LED_BRIDGE, LED_ON); 
    15541555                                        /* Enable host DHCP relay */ 
     1556#if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 
    15551557                                        if (nvram_match("lan_dhcp", "1")) { 
    15561558                                                wl_iovar_set(name, 
     
    15651567                                                enable_dhcprelay(lan_ifname); 
    15661568                                        } 
     1569#endif 
    15671570                                        do_mssid(name); 
    15681571                                }