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

Side by Side Diff: src/trusted/validator_ragel/validator.h

Issue 11000033: Move validator_x86_XX.rl out of unreviewed. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 9 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 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_ 7 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_
8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_ 8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_
9 9
10 #include "native_client/src/trusted/validator_ragel/decoder.h" 10 #include "native_client/src/trusted/validator_ragel/decoder.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 /* Operations with %ebp must be followed with sandboxing immediately. */ 69 /* Operations with %ebp must be followed with sandboxing immediately. */
70 RESTRICTED_RBP_UNPROCESSED = 0x00080000, 70 RESTRICTED_RBP_UNPROCESSED = 0x00080000,
71 /* Attemp to "sandbox" %rbp without restricting it first. */ 71 /* Attemp to "sandbox" %rbp without restricting it first. */
72 UNRESTRICTED_RBP_PROCESSED = 0x00180000, 72 UNRESTRICTED_RBP_PROCESSED = 0x00180000,
73 /* Operations with %esp must be followed with sandboxing immediately. */ 73 /* Operations with %esp must be followed with sandboxing immediately. */
74 RESTRICTED_RSP_UNPROCESSED = 0x00280000, 74 RESTRICTED_RSP_UNPROCESSED = 0x00280000,
75 /* Attemp to "sandbox" %rsp without restricting it first. */ 75 /* Attemp to "sandbox" %rsp without restricting it first. */
76 UNRESTRICTED_RSP_PROCESSED = 0x00380000, 76 UNRESTRICTED_RSP_PROCESSED = 0x00380000,
77 /* Operations with %r15 are forbidden. */ 77 /* Operations with %r15 are forbidden. */
78 R15_MODIFIED = 0x00400000, 78 R15_MODIFIED = 0x00400000,
79 /* Operations with BPL are forbidden for compatibility with old validator. */ 79 /* Operations with %xBP are forbidden. */
80 BPL_MODIFIED = 0x00800000, 80 /* This includes %bpl for compatibility with old validator. */
81 /* Operations with SPL are forbidden for compatibility with old validator. */ 81 BP_MODIFIED = 0x00800000,
82 SPL_MODIFIED = 0x01000000, 82 /* Operations with %xSP are forbidden. */
83 /* This includes %spl for compatibility with old validator. */
84 SP_MODIFIED = 0x01000000,
83 /* Bad call alignment: "call" must end at the end of the bundle. */ 85 /* Bad call alignment: "call" must end at the end of the bundle. */
84 BAD_CALL_ALIGNMENT = 0x02000000, 86 BAD_CALL_ALIGNMENT = 0x02000000,
85 /* Instruction is modifiable by nacl_dyncode_modify. */ 87 /* Instruction is modifiable by nacl_dyncode_modify. */
86 MODIFIABLE_INSTRUCTION = 0x08000000, 88 MODIFIABLE_INSTRUCTION = 0x08000000,
87 /* Special instruction. Uses different, non-standard validation rules. */ 89 /* Special instruction. Uses different, non-standard validation rules. */
88 SPECIAL_INSTRUCTION = 0x10000000, 90 SPECIAL_INSTRUCTION = 0x10000000,
89 /* Some 3DNow! instructions use immediate byte as opcode extensions. */ 91 /* Some 3DNow! instructions use immediate byte as opcode extensions. */
90 LAST_BYTE_IS_NOT_IMMEDIATE = 0x20000000, 92 LAST_BYTE_IS_NOT_IMMEDIATE = 0x20000000,
91 /* Bad jump target. Note: in this case ptr points to jump target! */ 93 /* Bad jump target. Note: in this case ptr points to jump target! */
92 BAD_JUMP_TARGET = 0x40000000 94 BAD_JUMP_TARGET = 0x40000000
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 * Alternatively, if CALL_USER_CALLBACK_ON_EACH_INSTRUCTION flag in options is 171 * Alternatively, if CALL_USER_CALLBACK_ON_EACH_INSTRUCTION flag in options is
170 * set, user_callback is called for every instruction. 172 * set, user_callback is called for every instruction.
171 * If PROCESS_CHUNK_AS_A_CONTIGUOUS_STREAM flag in options is set, 173 * If PROCESS_CHUNK_AS_A_CONTIGUOUS_STREAM flag in options is set,
172 * instructions crossing bundle boundaries are not considered erroneous. 174 * instructions crossing bundle boundaries are not considered erroneous.
173 * 175 *
174 * Actually validation result is computed as conjunction of values returned 176 * Actually validation result is computed as conjunction of values returned
175 * by all invocations of user_callback, so custom validation logic can be 177 * by all invocations of user_callback, so custom validation logic can be
176 * placed there. 178 * placed there.
177 */ 179 */
178 DLLEXPORT 180 DLLEXPORT
179 Bool ValidateChunkAMD64(const uint8_t *data, size_t size, 181 Bool ValidateChunkAMD64(const uint8_t codeblock[],
182 size_t size,
180 uint32_t options, 183 uint32_t options,
181 const NaClCPUFeaturesX86 *cpu_features, 184 const NaClCPUFeaturesX86 *cpu_features,
182 ValidationCallbackFunc user_callback, 185 ValidationCallbackFunc user_callback,
183 void *callback_data); 186 void *callback_data);
184 187
185 /* 188 /*
186 * See ValidateChunkAMD64 189 * See ValidateChunkAMD64
187 */ 190 */
188 DLLEXPORT 191 DLLEXPORT
189 Bool ValidateChunkIA32(const uint8_t *data, size_t size, 192 Bool ValidateChunkIA32(const uint8_t codeblock[],
193 size_t size,
190 uint32_t options, 194 uint32_t options,
191 const NaClCPUFeaturesX86 *cpu_features, 195 const NaClCPUFeaturesX86 *cpu_features,
192 ValidationCallbackFunc user_callback, 196 ValidationCallbackFunc user_callback,
193 void *callback_data); 197 void *callback_data);
194 198
195 EXTERN_C_END 199 EXTERN_C_END
196 200
197 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_ */ 201 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_VALIDATOR_H_ */
OLDNEW
« no previous file with comments | « src/trusted/validator_ragel/unreviewed/validator_x86_64.rl ('k') | src/trusted/validator_ragel/validator_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698