| Index: src/trusted/validator/x86/nacl_cpuid.h
|
| diff --git a/src/trusted/validator/x86/nacl_cpuid.h b/src/trusted/validator/x86/nacl_cpuid.h
|
| deleted file mode 100644
|
| index 4228508f224d2b5ac340bc7dc5413b41f07fa334..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator/x86/nacl_cpuid.h
|
| +++ /dev/null
|
| @@ -1,154 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 The Native Client Authors. All rights reserved.
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -/*
|
| - * This module provides a simple abstraction for using the CPUID
|
| - * instruction to determine instruction set extensions supported by
|
| - * the current processor.
|
| - */
|
| -#ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_
|
| -#define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_
|
| -
|
| -#include "native_client/src/include/portability.h"
|
| -#include "native_client/src/trusted/validator/ncvalidate.h"
|
| -
|
| -
|
| -EXTERN_C_BEGIN
|
| -
|
| -/* The list of features we can get from the CPUID instruction.
|
| - * Do not modify this enum without making similar modifications to
|
| - * CPUFeatureDescriptions in nacl_cpuid.c.
|
| - */
|
| -typedef enum {
|
| - NaClCPUFeatureX86_CPUIDSupported,
|
| - NaClCPUFeatureX86_CPUSupported, /* CPU is one we support. */
|
| - NaClCPUFeatureX86_3DNOW, /* AMD-specific */
|
| - NaClCPUFeatureX86_AES,
|
| - NaClCPUFeatureX86_AVX,
|
| - NaClCPUFeatureX86_BMI1,
|
| - NaClCPUFeatureX86_CLFLUSH,
|
| - NaClCPUFeatureX86_CLMUL,
|
| - NaClCPUFeatureX86_CMOV,
|
| - NaClCPUFeatureX86_CX16,
|
| - NaClCPUFeatureX86_CX8,
|
| - NaClCPUFeatureX86_E3DNOW, /* AMD-specific */
|
| - NaClCPUFeatureX86_EMMX, /* AMD-specific */
|
| - NaClCPUFeatureX86_F16C,
|
| - NaClCPUFeatureX86_FMA,
|
| - NaClCPUFeatureX86_FMA4, /* AMD-specific */
|
| - NaClCPUFeatureX86_FXSR,
|
| - NaClCPUFeatureX86_LAHF,
|
| - NaClCPUFeatureX86_LM,
|
| - NaClCPUFeatureX86_LWP, /* AMD-specific */
|
| - NaClCPUFeatureX86_LZCNT, /* AMD-specific */
|
| - NaClCPUFeatureX86_MMX,
|
| - NaClCPUFeatureX86_MON,
|
| - NaClCPUFeatureX86_MOVBE,
|
| - NaClCPUFeatureX86_OSXSAVE,
|
| - NaClCPUFeatureX86_POPCNT,
|
| - NaClCPUFeatureX86_PRE, /* AMD-specific */
|
| - NaClCPUFeatureX86_SSE,
|
| - NaClCPUFeatureX86_SSE2,
|
| - NaClCPUFeatureX86_SSE3,
|
| - NaClCPUFeatureX86_SSE41,
|
| - NaClCPUFeatureX86_SSE42,
|
| - NaClCPUFeatureX86_SSE4A, /* AMD-specific */
|
| - NaClCPUFeatureX86_SSSE3,
|
| - NaClCPUFeatureX86_TBM, /* AMD-specific */
|
| - NaClCPUFeatureX86_TSC,
|
| - NaClCPUFeatureX86_x87,
|
| - NaClCPUFeatureX86_XOP, /* AMD-specific */
|
| - NaClCPUFeatureX86_Max
|
| -} NaClCPUFeatureX86ID;
|
| -
|
| -/* Features we can get about the x86 hardware. */
|
| -typedef struct cpu_feature_struct_X86 {
|
| - char data[NaClCPUFeatureX86_Max];
|
| -} NaClCPUFeaturesX86;
|
| -
|
| -/* Define the maximum length of a CPUID string.
|
| - *
|
| - * Note: If you change this length, fix the static initialization of wlid
|
| - * in nacl_cpuid.c to be initialized with an appropriate string.
|
| - */
|
| -#define /* static const int */ kCPUIDStringLength 21
|
| -
|
| -/* Defines the maximum number of feature registers used to hold CPUID.
|
| - * Note: This value corresponds to the number of enumerated elements in
|
| - * enum CPUFeatureReg defined in nacl_cpuid.c.
|
| - */
|
| -#define kMaxCPUFeatureReg 12
|
| -
|
| -/* Defines the maximum number of extended control registers.
|
| - */
|
| -#define kMaxCPUXCRReg 1
|
| -
|
| -/* Define a cache for collected CPU runtime information, from which
|
| - * queries can answer questions.
|
| - */
|
| -typedef struct NaClCPUData {
|
| - /* The following is used to cache whether CPUID is defined for the
|
| - * architecture the code is running on.
|
| - */
|
| - int _has_CPUID;
|
| - /* Version ID words used by CPUVersionID. */
|
| - uint32_t _vidwords[4];
|
| - /* Define the set of CPUID feature register values for the architecture.
|
| - * Note: We have two sets (of 4 registers) so that AMD specific flags can be
|
| - * picked up.
|
| - */
|
| - uint32_t _featurev[kMaxCPUFeatureReg];
|
| - /* Define the set of extended control register (XCR) values.
|
| - */
|
| - uint64_t _xcrv[kMaxCPUXCRReg];
|
| - /* Define a string to hold and cache the CPUID. In such cases, such races
|
| - * will at worst cause the CPUID to not be recognized.
|
| - */
|
| - char _wlid[kCPUIDStringLength];
|
| -} NaClCPUData;
|
| -
|
| -/* Collect CPU data about this CPU, and put into the given data structure.
|
| - */
|
| -void NaClCPUDataGet(NaClCPUData* data);
|
| -
|
| -/* GetCPUIDString creates an ASCII string that identifies this CPU's
|
| - * vendor ID, family, model, and stepping, as per the CPUID instruction
|
| - */
|
| -char *GetCPUIDString(NaClCPUData* data);
|
| -
|
| -/*
|
| - * Platform-independent NaClValidatorInterface functions.
|
| - */
|
| -void NaClSetAllCPUFeaturesX86(NaClCPUFeatures *features);
|
| -void NaClGetCurrentCPUFeaturesX86(NaClCPUFeatures *cpu_features);
|
| -int NaClFixCPUFeaturesX86(NaClCPUFeatures *cpu_features);
|
| -
|
| -/*
|
| - * Platform-dependent getter/setter.
|
| - */
|
| -static INLINE int NaClGetCPUFeatureX86(const NaClCPUFeaturesX86 *features,
|
| - NaClCPUFeatureX86ID id) {
|
| - return features->data[id];
|
| -}
|
| -
|
| -void NaClSetCPUFeatureX86(NaClCPUFeaturesX86 *features, NaClCPUFeatureX86ID id,
|
| - int state);
|
| -const char *NaClGetCPUFeatureX86Name(NaClCPUFeatureX86ID id);
|
| -
|
| -/*
|
| - * Platform-independent functions which are only used in platform-dependent
|
| - * code.
|
| - * TODO(jfb) The ARM and MIPS CPU feature do not offer NaClCopyCPUFeaturesX86
|
| - * and NaClArchSupportedX86, should they be removed?
|
| - */
|
| -void NaClClearCPUFeaturesX86(NaClCPUFeaturesX86 *features);
|
| -void NaClCopyCPUFeaturesX86(NaClCPUFeaturesX86 *target,
|
| - const NaClCPUFeaturesX86 *source);
|
| -int NaClArchSupportedX86(const NaClCPUFeaturesX86 *features);
|
| -
|
| -EXTERN_C_END
|
| -
|
| -#endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NACL_CPUID_H_ */
|
|
|