diff --git a/cpu.go b/cpu.go
index aa261bb..e04c9ee 100644
--- a/cpu.go
+++ b/cpu.go
@@ -5,11 +5,14 @@
 // #cgo LDFLAGS: -framework CoreFoundation -framework IOKit
 // #include <CoreFoundation/CoreFoundation.h>
 // #include <IOKit/IOKitLib.h>
+// #include <sys/sysctl.h>
 //
 // #define HzToGHz(hz) ((hz) / 1000000000.0)
 //
 // UInt64 global_pCoreHz;
 // UInt64 global_eCoreHz;
+// int global_pCoreCount;
+// int global_eCoreCount;
 //
 // UInt64 getFrequency(CFTypeRef typeRef) {
 // CFDataRef cfData = typeRef;
@@ -27,7 +30,17 @@
 // return pCoreHz;
 // }
 //
+// int sysctl_int(const char * name) {
+//  int value = -1;
+//  size_t size = 8;
+//  sysctlbyname(name, &value, &size, NULL, 0);
+//  return value;
+// }
+//
 // void initialize() {
+//   global_pCoreCount = sysctl_int("hw.perflevel0.physicalcpu");
+//   global_eCoreCount = sysctl_int("hw.perflevel1.physicalcpu");
+//
 //   CFMutableDictionaryRef matching = IOServiceMatching("AppleARMIODevice");
 //   io_iterator_t  iter;
 //   IOServiceGetMatchingServices(kIOMainPortDefault, matching, &iter);
@@ -68,6 +81,14 @@
 // Float64 pCoreGHz() {
 //   return HzToGHz(global_pCoreHz);
 // }
+//
+// int pCoreCount() {
+//   return global_pCoreCount;
+// }
+//
+// int eCoreCount() {
+//   return global_eCoreCount;
+// }
 import "C"
 
 func init() {
@@ -98,3 +119,13 @@
 func ECoreGHz() float64 {
 	return float64(C.eCoreGHz())
 }
+
+// PCoreCount returns the number of physical P (performance) cores.
+func PCoreCount() int {
+	return int(C.pCoreCount())
+}
+
+// ECoreCount returns the number of physical E (efficiency) cores.
+func ECoreCount() int {
+	return int(C.eCoreCount())
+}
diff --git a/cpu_test.go b/cpu_test.go
index 1edc836..34f32e1 100644
--- a/cpu_test.go
+++ b/cpu_test.go
@@ -33,4 +33,6 @@
 	t.Log("eCore Hz", ECoreHz())
 	t.Log("pCore GHz", PCoreGHz())
 	t.Log("eCore GHz", ECoreGHz())
+	t.Log("pCore count", PCoreCount())
+	t.Log("eCoreCount", ECoreCount())
 }
\ No newline at end of file
diff --git a/incompatible.go b/incompatible.go
index 76c1d8b..0a9ddf2 100644
--- a/incompatible.go
+++ b/incompatible.go
@@ -7,22 +7,32 @@
 	return false
 }
 
-// PCoreHZ returns the max frequency in Hertz of the P-Core of an Apple Silicon CPU.
+// PCoreHZ requires darwin/arm64
 func PCoreHz() uint64 {
 	panic("m1cpu: not a darwin/arm64 system")
 }
 
-// ECoreHZ returns the max frequency in Hertz of the E-Core of an Apple Silicon CPU.
+// ECoreHZ requires darwin/arm64
 func ECoreHz() uint64 {
 	panic("m1cpu: not a darwin/arm64 system")
 }
 
-// PCoreGHz returns the max frequency in Gigahertz of the P-Core of an Apple Silicon CPU.
+// PCoreGHz requires darwin/arm64
 func PCoreGHz() float64 {
 	panic("m1cpu: not a darwin/arm64 system")
 }
 
-// ECoreGHz returns the max frequency in Gigahertz of the E-Core of an Apple Silicon CPU.
+// ECoreGHz requires darwin/arm64
 func ECoreGHz() float64 {
 	panic("m1cpu: not a darwin/arm64 system")
 }
+
+// PCoreCount requires darwin/arm64
+func PCoreCount() int {
+	panic("m1cpu: not a darwin/arm64 system")
+}
+
+// ECoreCount requires darwin/arm64
+func ECoreCount() int {
+	panic("m1cpu: not a darwin/arm64 system")
+}
