• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdio.h>
2 #include <stdlib.h>
3 
4 #include "cpu-features.h"
5 
panic(const char * msg)6 static void panic(const char* msg) {
7   fprintf(stderr, "ERROR: %s\n", msg);
8   exit(1);
9 }
10 
main(void)11 int main(void) {
12   int count, cpu_count = 10;
13   uint64_t features, cpu_features = 0xaabdedf012934839ULL;
14 
15   // Check that android_setCpu() can be called at program startup
16   // and that android_getCpuCount() and android_getCpuFeatures()
17   // will return the corresponding values.
18   //
19   printf("Setting cpu_count=%d, features=%08llx\n",
20          cpu_count,
21          cpu_features);
22   if (!android_setCpu(cpu_count, cpu_features))
23     panic("Cannot call android_setCpu() at program startup!");
24 
25   count = android_getCpuCount();
26   features = android_getCpuFeatures();
27 
28   printf("Retrieved cpu_count=%d, features=%08llx\n",
29          count, features);
30 
31   if (count != cpu_count)
32     panic("android_getCpuCount() didn't return expected value!");
33 
34   if (features != cpu_features)
35     panic("android_getCpuFeatures() didn't return expected value!");
36 
37   // Once one of the android_getXXX functions has been called,
38   // android_setCpu() should always fail.
39   if (android_setCpu(cpu_count, cpu_features))
40     panic("android_setCpu() could be called twice!");
41 
42   printf("Second call to android_setCpu() failed as expected.\n");
43   return 0;
44 }
45 
46