#include <stdio.h> #include <stdlib.h> #include "cpu-features.h" static void panic(const char* msg) { fprintf(stderr, "ERROR: %s\n", msg); exit(1); } int main(void) { int count, cpu_count = 10; uint64_t features, cpu_features = 0xaabdedf012934839ULL; // Check that android_setCpu() can be called at program startup // and that android_getCpuCount() and android_getCpuFeatures() // will return the corresponding values. // printf("Setting cpu_count=%d, features=%08llx\n", cpu_count, cpu_features); if (!android_setCpu(cpu_count, cpu_features)) panic("Cannot call android_setCpu() at program startup!"); count = android_getCpuCount(); features = android_getCpuFeatures(); printf("Retrieved cpu_count=%d, features=%08llx\n", count, features); if (count != cpu_count) panic("android_getCpuCount() didn't return expected value!"); if (features != cpu_features) panic("android_getCpuFeatures() didn't return expected value!"); // Once one of the android_getXXX functions has been called, // android_setCpu() should always fail. if (android_setCpu(cpu_count, cpu_features)) panic("android_setCpu() could be called twice!"); printf("Second call to android_setCpu() failed as expected.\n"); return 0; }