aboutsummaryrefslogtreecommitdiff
path: root/src/linux
diff options
context:
space:
mode:
authorMarat Dukhan <marat@fb.com>2018-03-24 23:21:02 -0700
committerMarat Dukhan <marat@fb.com>2018-03-24 23:21:02 -0700
commitcf70aeeb83cbc1c582aca39793056904abcb1e57 (patch)
tree860516fa04782fd05a89747ce78c42163c093b49 /src/linux
parent806dcca7bdd4759db446a26b2080e6cbf3307edd (diff)
downloadcpuinfo-cf70aeeb83cbc1c582aca39793056904abcb1e57.tar.gz
Report fatal error and abort if any cpuinfo_get_* function is called before initialization
Diffstat (limited to 'src/linux')
-rw-r--r--src/linux/current.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/linux/current.c b/src/linux/current.c
index d4a7f69..9d48b92 100644
--- a/src/linux/current.c
+++ b/src/linux/current.c
@@ -9,14 +9,18 @@
#include <cpuinfo.h>
#include <api.h>
+#include <log.h>
#include <linux/api.h>
-const struct cpuinfo_processor** cpuinfo_linux_cpu_to_processor_map;
-const struct cpuinfo_core** cpuinfo_linux_cpu_to_core_map;
+const struct cpuinfo_processor** cpuinfo_linux_cpu_to_processor_map = NULL;
+const struct cpuinfo_core** cpuinfo_linux_cpu_to_core_map = NULL;
const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_current_processor(void) {
+ if (!cpuinfo_is_initialized) {
+ cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "current_processor");
+ }
const int cpu = sched_getcpu();
if (cpu >= 0) {
return cpuinfo_linux_cpu_to_processor_map[cpu];
@@ -26,6 +30,9 @@ const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_current_processor(void)
}
const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_current_core(void) {
+ if (!cpuinfo_is_initialized) {
+ cpuinfo_log_fatal("cpuinfo_get_%s called before cpuinfo is initialized", "current_core");
+ }
const int cpu = sched_getcpu();
if (cpu >= 0) {
return cpuinfo_linux_cpu_to_core_map[cpu];