summaryrefslogtreecommitdiff
path: root/Zend/zend_cpuinfo.h
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2018-01-16 14:56:43 +0800
committerXinchen Hui <laruence@gmail.com>2018-01-16 14:56:43 +0800
commit3cb7fff9f1e2efdd3042682bc14a481bea3e0d44 (patch)
treebabcc1409ec414affbaaf25fb3cf921009942064 /Zend/zend_cpuinfo.h
parentff6a9d1f10eae8653c918d72d5cdd8e676dd4265 (diff)
downloadphp-git-3cb7fff9f1e2efdd3042682bc14a481bea3e0d44.tar.gz
Added missed header file
Diffstat (limited to 'Zend/zend_cpuinfo.h')
-rw-r--r--Zend/zend_cpuinfo.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/Zend/zend_cpuinfo.h b/Zend/zend_cpuinfo.h
new file mode 100644
index 0000000000..e44938fd98
--- /dev/null
+++ b/Zend/zend_cpuinfo.h
@@ -0,0 +1,104 @@
+/*
+ +----------------------------------------------------------------------+
+ | Zend Engine |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 2018-2018 Zend Technologies Ltd. (http://www.zend.com) |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.00 of the Zend license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.zend.com/license/2_00.txt. |
+ | If you did not receive a copy of the Zend license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@zend.com so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Xinchen Hui <xinchen.h@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+#ifndef ZEND_CPU_INFO_H
+#define ZEND_CPU_INFO_H
+
+#define ZEND_CPU_EDX_MASK (1<<31)
+
+typedef enum _zend_cpu_feature {
+ /* ECX */
+ ZEND_CPU_FEATURE_SSE3 = (1<<0),
+ ZEND_CPU_FEATURE_PCLMULQDQ = (1<<1),
+ ZEND_CPU_FEATURE_DTES64 = (1<<2),
+ ZEND_CPU_FEATURE_MONITOR = (1<<3),
+ ZEND_CPU_FEATURE_DSCPL = (1<<4),
+ ZEND_CPU_FEATURE_VMX = (1<<5),
+ ZEND_CPU_FEATURE_SMX = (1<<6),
+ ZEND_CPU_FEATURE_EST = (1<<7),
+ ZEND_CPU_FEATURE_TM2 = (1<<8),
+ ZEND_CPU_FEATURE_SSSE3 = (1<<9),
+ ZEND_CPU_FEATURE_CID = (1<<10),
+ ZEND_CPU_FEATURE_SDBG = (1<<11),
+ ZEND_CPU_FEATURE_FMA = (1<<12),
+ ZEND_CPU_FEATURE_CX16 = (1<<13),
+ ZEND_CPU_FEATURE_XTPR = (1<<14),
+ ZEND_CPU_FEATURE_PDCM = (1<<15),
+ /* reserved = (1<<16),*/
+ ZEND_CPU_FEATURE_PCID = (1<<17),
+ ZEND_CPU_FEATURE_DCA = (1<<18),
+ ZEND_CPU_FEATURE_SSE41 = (1<<19),
+ ZEND_CPU_FEATURE_SSE42 = (1<<20),
+ ZEND_CPU_FEATURE_X2APIC = (1<<21),
+ ZEND_CPU_FEATURE_MOVBE = (1<<22),
+ ZEND_CPU_FEATURE_POPCNT = (1<<23),
+ ZEND_CPU_FEATURE_TSC_DEADLINE = (1<<24),
+ ZEND_CPU_FEATURE_AES = (1<<25),
+ ZEND_CPU_FEATURE_XSAVE = (1<<26),
+ ZEND_CPU_FEATURE_OSXSAVE = (1<<27) ,
+ ZEND_CPU_FEATURE_AVX = (1<<28),
+ ZEND_CPU_FEATURE_F16C = (1<<29),
+ ZEND_CPU_FEATURE_RDRAND = (1<<30),
+ /* intentionally don't support = (1<<31) */
+
+ /* EDX */
+ ZEND_CPU_FEATURE_FPU = (1<<0 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_VME = (1<<1 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_DE = (1<<2 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PSE = (1<<3 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_TSC = (1<<4 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_MSR = (1<<5 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PAE = (1<<6 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_MCE = (1<<7 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_CX8 = (1<<8 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_APIC = (1<<9 | ZEND_CPU_EDX_MASK),
+ /* reserved = (1<<10 | ZEND_CPU_EDX_MASK),*/
+ ZEND_CPU_FEATURE_SEP = (1<<11 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_MTRR = (1<<12 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PGE = (1<<13 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_MCA = (1<<14 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_CMOV = (1<<15 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PAT = (1<<16 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PSE36 = (1<<17 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_PN = (1<<18 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_CLFLUSH = (1<<19 | ZEND_CPU_EDX_MASK),
+ /* reserved = (1<<20 | ZEND_CPU_EDX_MASK),*/
+ ZEND_CPU_FEATURE_DS = (1<<21 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_ACPI = (1<<22 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_MMX = (1<<23 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_FXSR = (1<<24 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_SSE = (1<<25 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_SSE2 = (1<<26 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_SS = (1<<27 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_HT = (1<<28 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_TM = (1<<29 | ZEND_CPU_EDX_MASK),
+ ZEND_CPU_FEATURE_IA64 = (1<<30 | ZEND_CPU_EDX_MASK)
+ /*intentionally don't support = (1<<31 | ZEND_CPU_EDX_MASK)*/
+} zend_cpu_feature;
+
+ZEND_API int zend_cpu_supports(zend_cpu_feature feature);
+
+#endif
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ */