diff --git a/cpu.go b/cpu.go
index 5a5d9b3..2e1bf2a 100644
--- a/cpu.go
+++ b/cpu.go
@@ -19,6 +19,7 @@
 // int global_eCoreL1DataCacheSize;
 // int global_pCoreL2CacheSize;
 // int global_eCoreL2CacheSize;
+// char global_brand[32];
 //
 // UInt64 getFrequency(CFTypeRef typeRef) {
 // CFDataRef cfData = typeRef;
@@ -43,6 +44,11 @@
 //  return value;
 // }
 //
+// void sysctl_string(const char * name, char * dest) {
+//   size_t size = 32;
+//   sysctlbyname(name, dest, &size, NULL, 0);
+// }
+//
 // void initialize() {
 //   global_pCoreCount = sysctl_int("hw.perflevel0.physicalcpu");
 //   global_eCoreCount = sysctl_int("hw.perflevel1.physicalcpu");
@@ -52,6 +58,7 @@
 //   global_eCoreL1DataCacheSize = sysctl_int("hw.perflevel1.l1dcachesize");
 //   global_pCoreL2CacheSize = sysctl_int("hw.perflevel0.l2cachesize");
 //   global_eCoreL2CacheSize = sysctl_int("hw.perflevel1.l2cachesize");
+//   sysctl_string("machdep.cpu.brand_string", global_brand);
 //
 //   CFMutableDictionaryRef matching = IOServiceMatching("AppleARMIODevice");
 //   io_iterator_t  iter;
@@ -125,6 +132,10 @@
 // int eCoreL2CacheSize() {
 //   return global_eCoreL2CacheSize;
 // }
+//
+// char * modelName() {
+//   return global_brand;
+// }
 import "C"
 
 func init() {
@@ -189,3 +200,7 @@
 		int(C.eCoreL1DataCacheSize()),
 		int(C.eCoreL2CacheSize())
 }
+
+func ModelName() string {
+	return C.GoString(C.modelName())
+}
diff --git a/cpu_test.go b/cpu_test.go
index 704d13a..ed38452 100644
--- a/cpu_test.go
+++ b/cpu_test.go
@@ -39,6 +39,7 @@
 }
 
 func Test_Show(t *testing.T) {
+	t.Log("model name", ModelName())
 	t.Log("pCore Hz", PCoreHz())
 	t.Log("eCore Hz", ECoreHz())
 	t.Log("pCore GHz", PCoreGHz())
