Changeset 36449


Ignore:
Timestamp:
2013-04-26T15:20:15+02:00 (5 years ago)
Author:
jow
Message:

iwinfo: move builtin hardware database to /usr/share/libiwinfo/hardware.txt

Location:
trunk/package/network/utils/iwinfo
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/network/utils/iwinfo/Makefile

    r36417 r36449  
    88 
    99PKG_NAME:=libiwinfo 
    10 PKG_RELEASE:=42 
     10PKG_RELEASE:=43 
    1111 
    1212PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) 
     
    102102        $(INSTALL_DIR) $(1)/usr/lib 
    103103        $(INSTALL_BIN) $(PKG_BUILD_DIR)/libiwinfo.so $(1)/usr/lib/libiwinfo.so 
     104        $(INSTALL_DIR) $(1)/usr/share/libiwinfo 
     105        $(INSTALL_DATA) $(PKG_BUILD_DIR)/hardware.txt $(1)/usr/share/libiwinfo/hardware.txt 
    104106endef 
    105107 
  • trunk/package/network/utils/iwinfo/src/include/iwinfo.h

    r34982 r36449  
    133133 
    134134struct iwinfo_hardware_entry { 
    135         const char *vendor_name; 
    136         const char *device_name; 
     135        char vendor_name[64]; 
     136        char device_name[64]; 
    137137        uint16_t vendor_id; 
    138138        uint16_t device_id; 
     
    144144 
    145145extern const struct iwinfo_iso3166_label IWINFO_ISO3166_NAMES[]; 
    146 extern const struct iwinfo_hardware_entry IWINFO_HARDWARE_ENTRIES[]; 
     146 
     147#define IWINFO_HARDWARE_FILE    "/usr/share/libiwinfo/hardware.txt" 
    147148 
    148149 
  • trunk/package/network/utils/iwinfo/src/iwinfo_lib.c

    r36417 r36449  
    314314}; 
    315315 
    316 /* 
    317  * hardware database 
    318  */ 
    319  
    320 const char VENDOR_UBNT[] = "Ubiquiti"; 
    321 const char VENDOR_ATH[]  = "Atheros"; 
    322 const char VENDOR_RALINK[]  = "RaLink"; 
    323  
    324 const struct iwinfo_hardware_entry IWINFO_HARDWARE_ENTRIES[] = { 
    325 /*      { vendor, model, vendorid, deviceid, subsys vendorid, subsys deviceid, poweroff, freqoff } */ 
    326 #if defined(USE_MADWIFI) || defined(USE_NL80211) 
    327         { VENDOR_UBNT, "PowerStation2 (18V)",   0xffff, 0xffff, 0xffff, 0xb102,  0,     0 }, 
    328         { VENDOR_UBNT, "PowerStation2 (16D)",   0xffff, 0xffff, 0xffff, 0xb202,  0,     0 }, 
    329         { VENDOR_UBNT, "PowerStation2 (EXT)",   0xffff, 0xffff, 0xffff, 0xb302,  0,     0 }, 
    330         { VENDOR_UBNT, "PowerStation5 (22V)",   0xffff, 0xffff, 0xffff, 0xb105,  0,     0 }, 
    331         { VENDOR_UBNT, "PowerStation5 (EXT)",   0xffff, 0xffff, 0xffff, 0xb305,  0,     0 }, 
    332         { VENDOR_UBNT, "PicoStation2",          0xffff, 0xffff, 0xffff, 0xc302,  0,     0 }, 
    333         { VENDOR_UBNT, "PicoStation2 HP",       0xffff, 0xffff, 0xffff, 0xc3a2, 10,     0 }, 
    334         { VENDOR_UBNT, "WispStation5",          0xffff, 0xffff, 0xffff, 0xa105,  0,     0 }, 
    335         { VENDOR_UBNT, "LiteStation2",          0xffff, 0xffff, 0xffff, 0xa002, 10,     0 }, 
    336         { VENDOR_UBNT, "LiteStation5",          0xffff, 0xffff, 0xffff, 0xa005,  5,     0 }, 
    337         { VENDOR_UBNT, "NanoStation2",          0xffff, 0xffff, 0xffff, 0xc002, 10,     0 }, 
    338         { VENDOR_UBNT, "NanoStation5",          0xffff, 0xffff, 0xffff, 0xc005,  5,     0 }, 
    339         { VENDOR_UBNT, "NanoStation Loco2",     0xffff, 0xffff, 0xffff, 0xc102, 10,     0 }, 
    340         { VENDOR_UBNT, "NanoStation Loco5",     0xffff, 0xffff, 0xffff, 0xc105,  5,     0 }, 
    341         { VENDOR_UBNT, "Bullet2",               0xffff, 0xffff, 0xffff, 0xc202, 10,     0 }, 
    342         { VENDOR_UBNT, "Bullet5",               0xffff, 0xffff, 0xffff, 0xc205,  5,     0 }, 
    343         { VENDOR_UBNT, "XR2",                   0x168c, 0x001b, 0x0777, 0x3002, 10,     0 }, 
    344         { VENDOR_UBNT, "XR2",                   0x168c, 0x001b, 0x7777, 0x3002, 10,     0 }, 
    345         { VENDOR_UBNT, "XR2.3",                 0x168c, 0x001b, 0x0777, 0x3b02, 10,     0 }, 
    346         { VENDOR_UBNT, "XR2.6",                 0x168c, 0x001b, 0x0777, 0x3c02, 10,     0 }, 
    347         { VENDOR_UBNT, "XR3-2.8",               0x168c, 0x001b, 0x0777, 0x3b03, 10,     0 }, 
    348         { VENDOR_UBNT, "XR3-3.6",               0x168c, 0x001b, 0x0777, 0x3c03, 10,     0 }, 
    349         { VENDOR_UBNT, "XR3",                   0x168c, 0x001b, 0x0777, 0x3003, 10,     0 }, 
    350         { VENDOR_UBNT, "XR4",                   0x168c, 0x001b, 0x0777, 0x3004, 10,     0 }, 
    351         { VENDOR_UBNT, "XR5",                   0x168c, 0x001b, 0x0777, 0x3005, 10,     0 }, 
    352         { VENDOR_UBNT, "XR5",                   0x168c, 0x001b, 0x7777, 0x3005, 10,     0 }, 
    353         { VENDOR_UBNT, "XR7",                   0x168c, 0x001b, 0x0777, 0x3007, 10,     0 }, 
    354         { VENDOR_UBNT, "XR9",                   0x168c, 0x001b, 0x0777, 0x3009, 10, -1520 }, 
    355         { VENDOR_ATH,  "AR5413",                0x168c, 0x001b, 0x168c, 0x2063,  0,     0 }, 
    356         { VENDOR_UBNT, "SRC",                   0x168c, 0x0013, 0x168c, 0x1042,  1,     0 }, 
    357         { VENDOR_UBNT, "SR2",                   0x168c, 0x0013, 0x0777, 0x2041, 10,     0 }, 
    358         { VENDOR_UBNT, "SR4",                   0x168c, 0x0013, 0x0777, 0x2004,  6,     0 }, 
    359         { VENDOR_UBNT, "SR4",                   0x168c, 0x0013, 0x7777, 0x2004,  6,     0 }, 
    360         { VENDOR_UBNT, "SR4C",                  0x168c, 0x0013, 0x0777, 0x1004,  6,     0 }, 
    361         { VENDOR_UBNT, "SR4C",                  0x168c, 0x0013, 0x7777, 0x1004,  6,     0 }, 
    362         { VENDOR_UBNT, "SR5",                   0x168c, 0x0013, 0x168c, 0x2042,  7,     0 }, 
    363         { VENDOR_UBNT, "SR9",                   0x168c, 0x0013, 0x7777, 0x2009, 12, -1500 }, 
    364         { VENDOR_UBNT, "SR71A",                 0x168c, 0x0027, 0x168c, 0x2082,  7,     0 }, 
    365         { VENDOR_UBNT, "SR71",                  0x168c, 0x0027, 0x0777, 0x4082,  7,     0 }, 
    366         { VENDOR_UBNT, "SR71-15",               0x168c, 0x0029, 0x0777, 0x4005,  7,     0 }, 
    367 #endif 
    368 #ifdef USE_NL80211 
    369         { VENDOR_UBNT, "PicoStation M2",        0x168c, 0x002a, 0x0777, 0xe302, 12,     0 }, /* ToDo: confirm offset */ 
    370         { VENDOR_UBNT, "NanoStation M2",        0x168c, 0x002a, 0x0777, 0xe012, 12,     0 }, /* ToDo: confirm offset */ 
    371         { VENDOR_UBNT, "NanoStation M5",        0x168c, 0x002a, 0x0777, 0xe005,  5,     0 }, /* ToDo: confirm offset */ 
    372         { VENDOR_UBNT, "Bullet M2",             0x168c, 0x002a, 0x0777, 0xe202, 12,     0 }, 
    373         { VENDOR_UBNT, "Bullet M5",             0x168c, 0x002a, 0x0777, 0xe805,  5,     0 }, 
    374  
    375         { VENDOR_ATH,  "AR9220",                0x168c, 0x0029, 0x168c, 0xa094,  0,     0 }, 
    376         { VENDOR_ATH,  "AR9223",                0x168c, 0x0029, 0x168c, 0xa095,  0,     0 }, 
    377         { VENDOR_ATH,  "AR9280",                0x168c, 0x002a, 0x168c, 0xa093,  0,     0 }, 
    378         { VENDOR_ATH,  "AR9285",                0x168c, 0x002b, 0x168c, 0xa091,  0,     0 }, 
    379         { VENDOR_RALINK,  "Rt3050",             0x1814, 0x3050, 0x1814, 0x0005,  0,     0 }, 
    380         { VENDOR_RALINK,  "Rt3052",             0x1814, 0x3052, 0x1814, 0x0008,  0,     0 }, 
    381         { VENDOR_RALINK,  "Rt3352",             0x1814, 0x3352, 0x1814, 0x000c,  0,     0 }, 
    382 #endif 
    383         { NULL } 
    384 }; 
    385  
    386316 
    387317const char * iwinfo_type(const char *ifname) 
  • trunk/package/network/utils/iwinfo/src/iwinfo_utils.c

    r35471 r36449  
    130130struct iwinfo_hardware_entry * iwinfo_hardware(struct iwinfo_hardware_id *id) 
    131131{ 
    132         const struct iwinfo_hardware_entry *e; 
    133  
    134         for (e = IWINFO_HARDWARE_ENTRIES; e->vendor_name; e++) 
    135         { 
    136                 if ((e->vendor_id != 0xffff) && (e->vendor_id != id->vendor_id)) 
    137                         continue; 
    138  
    139                 if ((e->device_id != 0xffff) && (e->device_id != id->device_id)) 
    140                         continue; 
    141  
    142                 if ((e->subsystem_vendor_id != 0xffff) && 
    143                         (e->subsystem_vendor_id != id->subsystem_vendor_id)) 
    144                         continue; 
    145  
    146                 if ((e->subsystem_device_id != 0xffff) && 
    147                         (e->subsystem_device_id != id->subsystem_device_id)) 
    148                         continue; 
    149  
    150                 return (struct iwinfo_hardware_entry *)e; 
    151         } 
     132        FILE *db; 
     133        char buf[256] = { 0 }; 
     134        static struct iwinfo_hardware_entry e; 
     135 
     136        if (!(db = fopen(IWINFO_HARDWARE_FILE, "r"))) 
     137                return NULL; 
     138 
     139        while (fgets(buf, sizeof(buf) - 1, db) != NULL) 
     140        { 
     141                memset(&e, 0, sizeof(e)); 
     142 
     143                if (sscanf(buf, "%hx %hx %hx %hx %hd %hd \"%63[^\"]\" \"%63[^\"]\"", 
     144                               &e.vendor_id, &e.device_id, 
     145                               &e.subsystem_vendor_id, &e.subsystem_device_id, 
     146                               &e.txpower_offset, &e.frequency_offset, 
     147                               e.vendor_name, e.device_name) < 8) 
     148                        continue; 
     149 
     150                if ((e.vendor_id != 0xffff) && (e.vendor_id != id->vendor_id)) 
     151                        continue; 
     152 
     153                if ((e.device_id != 0xffff) && (e.device_id != id->device_id)) 
     154                        continue; 
     155 
     156                if ((e.subsystem_vendor_id != 0xffff) && 
     157                        (e.subsystem_vendor_id != id->subsystem_vendor_id)) 
     158                        continue; 
     159 
     160                if ((e.subsystem_device_id != 0xffff) && 
     161                        (e.subsystem_device_id != id->subsystem_device_id)) 
     162                        continue; 
     163 
     164                break; 
     165        } 
     166 
     167        fclose(db); 
     168 
     169        if (e.device_name[0]) 
     170                return &e; 
    152171 
    153172        return NULL; 
Note: See TracChangeset for help on using the changeset viewer.