| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /* | 7 /* |
| 8 * cpuid.c | 8 * cpuid.c |
| 9 * This module provides a simple abstraction for using the CPUID | 9 * This module provides a simple abstraction for using the CPUID |
| 10 * instruction to determine instruction set extensions supported by | 10 * instruction to determine instruction set extensions supported by |
| 11 * the current processor. | 11 * the current processor. |
| 12 */ | 12 */ |
| 13 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ | 13 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ |
| 14 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ | 14 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ |
| 15 | 15 |
| 16 #include "native_client/src/include/portability.h" | 16 #include "native_client/src/include/portability.h" |
| 17 | 17 |
| 18 EXTERN_C_BEGIN |
| 19 |
| 18 /* The list of features we can get from the CPUID instruction. | 20 /* The list of features we can get from the CPUID instruction. |
| 19 * Do not modify this enum without making similar modifications to | 21 * Do not modify this enum without making similar modifications to |
| 20 * CPUFeatureDescriptions in nacl_cpuid.c. | 22 * CPUFeatureDescriptions in nacl_cpuid.c. |
| 21 */ | 23 */ |
| 22 typedef enum { | 24 typedef enum { |
| 23 NaClCPUFeature_x87 = 0, | 25 NaClCPUFeature_x87 = 0, |
| 24 NaClCPUFeature_MMX, | 26 NaClCPUFeature_MMX, |
| 25 NaClCPUFeature_SSE, | 27 NaClCPUFeature_SSE, |
| 26 NaClCPUFeature_SSE2, | 28 NaClCPUFeature_SSE2, |
| 27 NaClCPUFeature_SSE3, | 29 NaClCPUFeature_SSE3, |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 /* Copy a set of cpu features. */ | 139 /* Copy a set of cpu features. */ |
| 138 void NaClCopyCPUFeatures(NaClCPUFeaturesX86* target, | 140 void NaClCopyCPUFeatures(NaClCPUFeaturesX86* target, |
| 139 const NaClCPUFeaturesX86* source); | 141 const NaClCPUFeaturesX86* source); |
| 140 | 142 |
| 141 /* Get the features for the CPU this code is running on. */ | 143 /* Get the features for the CPU this code is running on. */ |
| 142 void NaClGetCurrentCPUFeatures(NaClCPUFeaturesX86 *cpu_features); | 144 void NaClGetCurrentCPUFeatures(NaClCPUFeaturesX86 *cpu_features); |
| 143 | 145 |
| 144 /* Returns true if CPUID is defined, and the CPU is supported. */ | 146 /* Returns true if CPUID is defined, and the CPU is supported. */ |
| 145 int NaClArchSupported(NaClCPUFeaturesX86 *features); | 147 int NaClArchSupported(NaClCPUFeaturesX86 *features); |
| 146 | 148 |
| 149 EXTERN_C_END |
| 150 |
| 147 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ */ | 151 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ */ |
| OLD | NEW |