Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: src/trusted/validator/x86/ncval_reg_sfi/nc_cpu_checks.h

Issue 11864002: Move CPU features into its own static library. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Address bsy's comments by not building x86 target when host isn't x86. This is how things are curre… Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 * Checks that CPU ID features match instructions found in executable. 8 * Checks that CPU ID features match instructions found in executable.
9 * 9 *
10 * Note: The following functions are used to define a validator function 10 * Note: The following functions are used to define a validator function
11 * for collecting this information. See header file ncvalidator_iter.h 11 * for collecting this information. See header file ncvalidator_iter.h
12 * for more information on how to register these functions as a validator 12 * for more information on how to register these functions as a validator
13 * function. 13 * function.
14 */ 14 */
15 15
16 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H__ 16 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H__
17 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H__ 17 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H__
18 18
19 #include "native_client/src/shared/utils/types.h" 19 #include "native_client/src/shared/utils/types.h"
20 #include "native_client/src/trusted/validator/x86/nacl_cpuid.h" 20 #include "native_client/src/trusted/cpu_features/arch/x86/cpu_x86.h"
21 21
22 /* Defines a validator state. */ 22 /* Defines a validator state. */
23 struct NaClValidatorState; 23 struct NaClValidatorState;
24 24
25 /* Defines an instruction iterator that processes a code segment. */ 25 /* Defines an instruction iterator that processes a code segment. */
26 struct NaClInstIter; 26 struct NaClInstIter;
27 27
28 /* Defines the set of cpu feature checks applied to the code. */ 28 /* Defines the set of cpu feature checks applied to the code. */
29 typedef struct NaClCpuCheckState { 29 typedef struct NaClCpuCheckState {
30 /* The standard CPU features. */ 30 /* The standard CPU features. */
31 NaClCPUFeaturesX86 cpu_features; 31 NaClCPUFeaturesX86 cpu_features;
32 /* Check that both f_CMOV and f_x87 is defined. */ 32 /* Check that both f_CMOV and f_x87 is defined. */
33 Bool f_CMOV_and_x87; 33 Bool f_CMOV_and_x87;
34 /* Check that either f_MMX or f_SSE2 is defined. */ 34 /* Check that either f_MMX or f_SSE2 is defined. */
35 Bool f_MMX_or_SSE2; 35 Bool f_MMX_or_SSE2;
36 } NaClCpuCheckState; 36 } NaClCpuCheckState;
37 37
38 /* Creates a CPU feature struct (all fields initialized to false), to be used 38 /* Creates a CPU feature struct (all fields initialized to false), to be used
39 * to record what features need to be squashed out of the executable. 39 * to record what features need to be squashed out of the executable.
40 */ 40 */
41 void NaClCpuCheckMemoryInitialize(struct NaClValidatorState* state); 41 void NaClCpuCheckMemoryInitialize(struct NaClValidatorState* state);
42 42
43 /* Check that cpu features match instructions for native client rules. */ 43 /* Check that cpu features match instructions for native client rules. */
44 void NaClCpuCheck(struct NaClValidatorState* state, 44 void NaClCpuCheck(struct NaClValidatorState* state,
45 struct NaClInstIter* iter); 45 struct NaClInstIter* iter);
46 46
47 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H __ */ 47 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_REG_SFI_NC_CPU_CHECKS_H __ */
OLDNEW
« no previous file with comments | « src/trusted/validator/x86/nacl_xgetbv.S ('k') | src/trusted/validator/x86/ncval_reg_sfi/ncvalidate_iter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698