upgrade the ixp4xx ethernet driver to v0.3.1, split the Gateway 7001 support to two...
[openwrt.git] / package / broadcom-wl / src / wlc / wlc.c
index 2d6b846..382e83a 100644 (file)
@@ -92,7 +92,11 @@ struct wlc_call {
 
 /* can't use the system include because of the stupid broadcom header files */
 extern struct ether_addr *ether_aton(const char *asc);
-extern char *ether_ntoa(const struct ether_addr *addr);
+static inline int my_ether_ntoa(unsigned char *ea, char *buf)
+{
+       return sprintf(buf, "%02x:%02x:%02x:%02x:%02x:%02x",
+               ea[0], ea[1], ea[2], ea[3], ea[4], ea[5]);
+}
 
 /*
  * find the starting point of wl.o in memory
@@ -476,8 +480,10 @@ static int wlc_maclist(wlc_param param, void *data, void *value)
                ret = wl_ioctl(interface, (ioc >> 16) & 0xffff, wlbuf, sizeof(wlbuf));
                
                if (!ret) 
-                       while (list->count)
-                               str += sprintf(str, "%s%s", ((((char *) value) == str) ? "" : " "), ether_ntoa(&list->ea[list->count-- - 1]));
+                       while (list->count) {
+                               str += sprintf(str, "%s", ((((char *) value) == str) ? "" : " "));
+                               str += my_ether_ntoa((unsigned char *) &list->ea[list->count-- - 1], str);
+                       }
                
                return ret;
        } else {
@@ -663,13 +669,12 @@ static int wlc_ifname(wlc_param param, void *data, void *value)
 
 static int wlc_wdsmac(wlc_param param, void *data, void *value)
 {
-       static struct ether_addr mac;
+       unsigned char mac[6];
        int ret = 0;
        
        ret = wl_ioctl(interface, WLC_WDS_GET_REMOTE_HWADDR, &mac, 6);
-       if (ret == 0) {
-               strcpy((char *) value, ether_ntoa(&mac));
-       }
+       if (ret == 0)
+               my_ether_ntoa(mac, value);
 
        return ret;
 }
@@ -894,6 +899,20 @@ static const struct wlc_call wlc_calls[] = {
                .data.str = "wme_noack",
                .desc = "WME ACK disable request",
        },
+       {
+               .name = "802.11d",
+               .param = INT,
+               .handler = wlc_ioctl,
+               .data.num = ((WLC_GET_REGULATORY << 16) | WLC_SET_REGULATORY),
+               .desc = "Enable/disable 802.11d regulatory management",
+       },
+       {
+               .name = "802.11h",
+               .param = INT,
+               .handler = wlc_ioctl,
+               .data.num = ((WLC_GET_SPECT_MANAGMENT << 16) | WLC_SET_SPECT_MANAGMENT),
+               .desc = "Enable/disable 802.11h spectrum management",
+       },
        {
                .name = "fragthresh",
                .param = INT,
This page took 0.031757 seconds and 4 git commands to generate.