| @@ -13,9 +13,9 @@ met: | |||||
| notice, this list of conditions and the following disclaimer in | notice, this list of conditions and the following disclaimer in | ||||
| the documentation and/or other materials provided with the | the documentation and/or other materials provided with the | ||||
| distribution. | distribution. | ||||
| 3. Neither the name of the OpenBLAS project nor the names of | |||||
| its contributors may be used to endorse or promote products | |||||
| derived from this software without specific prior written | |||||
| 3. Neither the name of the OpenBLAS project nor the names of | |||||
| its contributors may be used to endorse or promote products | |||||
| derived from this software without specific prior written | |||||
| permission. | permission. | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| @@ -79,7 +79,30 @@ static char *cpuname[] = { | |||||
| }; | }; | ||||
| int detect(void){ | int detect(void){ | ||||
| return CPU_UNKNOWN; | |||||
| #ifdef __linux | |||||
| FILE *infile; | |||||
| char buffer[512], *p; | |||||
| p = (char *)NULL; | |||||
| infile = fopen("/proc/cpuinfo", "r"); | |||||
| while (fgets(buffer, sizeof(buffer), infile)){ | |||||
| if (!strncmp("isa", buffer, 3)){ | |||||
| p = strchr(buffer, '4') + 1; /* the 4 in rv64ima... */ | |||||
| #if 0 | |||||
| fprintf(stderr, "%s\n", p); | |||||
| #endif | |||||
| break; | |||||
| } | |||||
| } | |||||
| fclose(infile); | |||||
| if (strchr(p, 'v')) return CPU_C910V; | |||||
| return CPU_GENERIC; | |||||
| #endif | |||||
| return CPU_GENERIC; | |||||
| } | } | ||||
| char *get_corename(void){ | char *get_corename(void){ | ||||
| @@ -91,6 +114,7 @@ void get_architecture(void){ | |||||
| } | } | ||||
| void get_subarchitecture(void){ | void get_subarchitecture(void){ | ||||
| printf("%s",cpuname[detect()]); | |||||
| } | } | ||||
| void get_subdirname(void){ | void get_subdirname(void){ | ||||