#if defined(HAVE_CONFIG_H) #include #endif #include #include #if defined(NETPERF_STANDALONE_DEBUG) #include #include #endif void find_driver_info(char *ifname, char *driver, char *version, char *firmware, char *bus, int len) { /* until something better comes along, we will use the expedient that the interface name, up to but not including the instance number is the driver name. raj 2008-03-19 */ int i; strncpy(driver,ifname,len); driver[len-1] = 0; /* work backwards nuking numbers and punctuation */ for (i = strlen(driver) - 1; ((isdigit(driver[i])) || (ispunct(driver[i]))) && (i >= 0); i--) { driver[i] = 0; } /* on the off chance we managed to toast the entire string, we should probably mention that somehow. raj 2008-03-19 */ if (strlen(driver) == 0) strncpy(driver,"NoAlpha",len); strncpy(version,"Unavailable",len); strncpy(firmware,"Unavailable",len); strncpy(bus,"Unavailable",len); version[len-1] = 0; firmware[len-1] = 0; bus[len-1] = 0; return; } #if defined(NETPERF_STANDALONE_DEBUG) int main(int argc, char *argv[]) { #define MYLEN 32 char driver[MYLEN]; char version[MYLEN]; char firmware[MYLEN]; char bus[MYLEN]; if (argc != 2) { fprintf(stderr,"%s \n",argv[0]); exit(-1); } find_driver_info(argv[1],driver, version, firmware, bus, MYLEN); printf("Interface %s driver %s version %s firmware %s bus %s\n", argv[1], driver, version, firmware, bus); return 0; } #endif