aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Certner <olce@FreeBSD.org>2026-06-26 22:17:35 +0000
committerOlivier Certner <olce@FreeBSD.org>2026-07-03 15:32:25 +0000
commitc3c8f4d9e66287b24af2b3881c528236b836f2f1 (patch)
tree75b3f6885b5dfe096e6e92d88edff371ed4daa94
parent465a3b7adc008c068741594f6c922ede98924f39 (diff)
cpu: New cpu_get_pcpuid(), retrieves internal CPU ID
It is a handy shortcut that will be used extensively in hwpstate_intel(4) and hwpstate_amd(4). Warn users that it panics if the parent bus does not provide the CPU_IVAR_PCPU instance variable. That condition should be tested by callers (doing so once is enough). Suggest to do that in driver's attach method. Reviewed by: jhb (code) Event: Halifax Hackathon 202606 Location: Seat 36K in AC667, waiting for a gate at Montréal-Trudeau Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57897
-rw-r--r--sys/sys/cpu.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/sys/cpu.h b/sys/sys/cpu.h
index 21e79e6db6a4..9156fa9f723d 100644
--- a/sys/sys/cpu.h
+++ b/sys/sys/cpu.h
@@ -51,6 +51,17 @@ cpu_get_pcpu(device_t dev)
return ((struct pcpu *)v);
}
+/*
+ * Assumes the parent bus sets the CPU_IVAR_PCPU instance variable, which most
+ * CPU buses do. A panic will ensure if not the case. Calling devices should
+ * check for that condition (most probably in their attach function).
+ */
+static __inline u_int
+cpu_get_pcpuid(device_t dev)
+{
+ return (cpu_get_pcpu(dev)->pc_cpuid);
+}
+
static __inline int32_t
cpu_get_nominal_mhz(device_t dev)
{