struct opd_event * find_counter_event(unsigned long counter) { size_t i; struct opd_event * ret = NULL; if (counter >= OP_MAX_COUNTERS) { if((ret = opd_ext_find_counter_event(counter)) != NULL) return ret; } for (i = 0; i < op_nr_counters && opd_events[i].name; ++i) { if (counter == opd_events[i].counter) return &opd_events[i]; } fprintf(stderr, "Unknown event for counter %lu\n", counter); /* * ANDROID FIXME - from time to time there seems to be 1 phantom event * reported from counter 3 when only counter 0 is enabled. Instead of * crashing the daemon and losing tons of useful samples, we just * charge the erroneous single count to the first event. */ #ifdef ANDROID return &opd_events[0]; #else abort(); return NULL; #endif }
struct opd_event * find_counter_event(unsigned long counter) { size_t i; struct opd_event * ret = NULL; if (counter >= OP_MAX_COUNTERS) { if((ret = opd_ext_find_counter_event(counter)) != NULL) return ret; } for (i = 0; i < op_nr_counters && opd_events[i].name; ++i) { if (counter == opd_events[i].counter) return &opd_events[i]; } fprintf(stderr, "Unknown event for counter %lu\n", counter); abort(); return NULL; }