Release 960611
[wine] / miscemu / cpu.c
1 /*
2  * What processor?
3  *
4  * Copyright 1995 Morten Welinder
5  */
6
7 #include <stdio.h>
8 #include <ctype.h>
9 #include <string.h>
10 #include "windows.h"
11
12 int runtime_cpu (void)
13 {
14   static int cache = 0;
15
16 #ifdef linux
17   if (!cache)
18     {
19       FILE *f = fopen ("/proc/cpuinfo", "r");
20
21       cache = 3;  /* Default.  */
22
23       if (f)
24         {
25           char info[5], value[5];
26           while (fscanf (f, " %4s%*s : %4s%*s", info, value) == 2)
27             if (!lstrcmpi32A(info, "cpu"))
28               {
29                 if (isdigit (value[0]) && value[1] == '8'
30                     && value[2] == '6' && value[3] == 0)
31                   {
32                     cache = value[0] - '0';
33                     break;
34                   }
35               }
36           fclose (f);
37         }
38     }
39   return cache;
40 #else
41   /* FIXME: how do we do this on other systems? */
42   return 3;
43 #endif
44 }