| Index: src/trusted/validator/x86/ncval_seg_sfi/ncvalidate_internaltypes.h
 | 
| diff --git a/src/trusted/validator/x86/ncval_seg_sfi/ncvalidate_internaltypes.h b/src/trusted/validator/x86/ncval_seg_sfi/ncvalidate_internaltypes.h
 | 
| deleted file mode 100644
 | 
| index 40bc2374d516d36ee3822f5811a42ed65cc89cac..0000000000000000000000000000000000000000
 | 
| --- a/src/trusted/validator/x86/ncval_seg_sfi/ncvalidate_internaltypes.h
 | 
| +++ /dev/null
 | 
| @@ -1,142 +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.
 | 
| - */
 | 
| -
 | 
| -#ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_SEG_SFI_NCVALIDATE_INTERNALTYPES_H__
 | 
| -#define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_SEG_SFI_NCVALIDATE_INTERNALTYPES_H__
 | 
| -
 | 
| -/*
 | 
| - * ncvalidate_internaltypes.h
 | 
| - * Declarations intimate to ncvalidate.h, exposed for testing and other files
 | 
| - * that define the validator.
 | 
| - *
 | 
| - */
 | 
| -#include "native_client/src/trusted/cpu_features/arch/x86/cpu_x86.h"
 | 
| -#include "native_client/src/trusted/validator/x86/ncval_seg_sfi/ncdecode.h"
 | 
| -
 | 
| -/* statistics */
 | 
| -typedef struct SummaryStats {
 | 
| -  /* these are just information */
 | 
| -  uint32_t instructions;
 | 
| -  uint32_t checktarget;
 | 
| -  uint32_t targetindirect;
 | 
| -  uint32_t segments;
 | 
| -  /* the following indicate safety defects */
 | 
| -  uint32_t badtarget;
 | 
| -  uint32_t unsafeindirect;
 | 
| -  uint32_t returns;
 | 
| -  uint32_t illegalinst;
 | 
| -  uint32_t badalignment;
 | 
| -  uint32_t segfaults;
 | 
| -  uint32_t badprefix;
 | 
| -  uint32_t badinstlength;
 | 
| -  uint32_t internalerrors;
 | 
| -  int didstubout; /* boolean */
 | 
| -  int sawfailure; /* boolean */
 | 
| -} SummaryStats;
 | 
| -
 | 
| -/* We track instructions in a three-entry circular buffer,
 | 
| - * allowing us to see the two previous instructions and to
 | 
| - * check the safe call sequence. I rounded up to
 | 
| - * four so we can use a mask, even though we only need to
 | 
| - * remember three instructions.
 | 
| - * This is #defined rather than const int because it is used
 | 
| - * as an array dimension
 | 
| - */
 | 
| -#define kNCValidatorInstBufferSize 4
 | 
| -
 | 
| -/* Defines a jump summarization function. When in sel_ldr, this will
 | 
| - * be the minimal code needed to detect issues. When in ncval, this
 | 
| - * will expend more effort and generate more readable error messages.
 | 
| - */
 | 
| -typedef void (*NCValidateJumpSummarizeFn)(struct NCValidatorState* vstate);
 | 
| -
 | 
| -/* put all formerly global data into a struct */
 | 
| -typedef struct NCValidatorState {
 | 
| -  /* NOTE: Decoder state (dstate) must appear first so that we can use it like
 | 
| -   * C++ inheritance, where a pointer to a validator state will be the
 | 
| -   * same as a pointer to a decoder state.
 | 
| -   */
 | 
| -  NCDecoderState dstate;
 | 
| -  NCDecoderInst inst_buffer[kNCValidatorInstBufferSize];
 | 
| -  NaClCPUFeaturesX86 cpufeatures;  /* from CPUID bit masks; see cpu_x86.c */
 | 
| -  NaClPcAddress iadrbase;
 | 
| -  NaClMemorySize codesize;
 | 
| -  uint8_t bundle_size;
 | 
| -  uint32_t bundle_mask;
 | 
| -  SummaryStats stats;
 | 
| -  uint32_t opcodehisto[256];
 | 
| -  uint8_t *vttable;
 | 
| -  uint8_t *kttable;
 | 
| -  /* If non-null, then in detailed mode. Keeps track of addresses
 | 
| -   * to instructions in the middle of a NaCl (atomic) pattern.
 | 
| -   * This allows detailed mode to give better error messages (i.e.
 | 
| -   * whether the jump isn't to an instruction boundary,
 | 
| -   * or if the jump is into the middle of a nacl pattern).
 | 
| -   */
 | 
| -  uint8_t *pattern_nonfirst_insts_table;
 | 
| -  int do_stub_out;  /* boolean */
 | 
| -  int readonly_text; /* boolean */
 | 
| -  int num_diagnostics; /* How many error messages to print. */
 | 
| -  /* Defines the summarization function to apply. Defaults to
 | 
| -   * NCSelLDrJumpSummarizeFn, which is the summarize function
 | 
| -   * for sel_ldr (i.e. non-detailed).
 | 
| -   */
 | 
| -  NCValidateJumpSummarizeFn summarize_fn;
 | 
| -} NCValidatorState;
 | 
| -
 | 
| -/* The following macro is used to clarify the derived class relationship
 | 
| - * of NCValidateState and NCDecoderState. That is, &this->dstate is also
 | 
| - * an instance of a validator state. Hence one can downcast this pointer.
 | 
| - */
 | 
| -#define NCVALIDATOR_STATE_DOWNCAST(this_dstate) \
 | 
| -  ((NCValidatorState*) (this_dstate))
 | 
| -
 | 
| -/* Masks used to access bits within a byte. */
 | 
| -extern const uint8_t nc_iadrmasks[8];
 | 
| -
 | 
| -/* Converts address to corresponding byte in jump table. */
 | 
| -#define NCIATOffset(__IA) ((__IA) >> 3)
 | 
| -
 | 
| -/* Gets mask for bit associated with corresponding byte in jump table. */
 | 
| -#define NCIATMask(__IA) (nc_iadrmasks[(__IA) & 0x7])
 | 
| -
 | 
| -/* Sets bit __IOFF in jump table __TABLE. */
 | 
| -#define NCSetAdrTable(__IOFF, __TABLE) \
 | 
| -  (__TABLE)[NCIATOffset(__IOFF)] |= NCIATMask(__IOFF)
 | 
| -
 | 
| -/* Clears bit __IOFF in jump table __TABLE. */
 | 
| -#define NCClearAdrTable(__IOFF, __TABLE) \
 | 
| -  (__TABLE)[NCIATOffset(__IOFF)] &= ~(NCIATMask(__IOFF))
 | 
| -
 | 
| -/* Gets bit __IOFF in jump table __TABLE. */
 | 
| -#define NCGetAdrTable(__IOFF, __TABLE) \
 | 
| -  ((__TABLE)[NCIATOffset(__IOFF)] & NCIATMask(__IOFF))
 | 
| -
 | 
| -/* Report that the given instruction is illegal in native client, using
 | 
| - * the given error message.
 | 
| - */
 | 
| -void NCBadInstructionError(const struct NCDecoderInst *dinst, const char *msg);
 | 
| -
 | 
| -/* Update statistics to show that another bad jump target was found. */
 | 
| -void NCStatsBadTarget(struct NCValidatorState *vstate);
 | 
| -
 | 
| -/* Update statistics to show that another bad address alignment issues has been
 | 
| - * found.
 | 
| - */
 | 
| -void NCStatsBadAlignment(struct NCValidatorState *vstate);
 | 
| -
 | 
| -/* Update statistics to show that some (unexpected) internal error occurred
 | 
| - * while running the validator.
 | 
| - */
 | 
| -void NCStatsInternalError(struct NCValidatorState *vstate);
 | 
| -
 | 
| -/* Provide a partial-validation operation, checking a single instruction
 | 
| - * but ignoring inter-instruction considerations, useful for validator
 | 
| - * testing.
 | 
| - */
 | 
| -Bool UnsafePartialValidateInst(const NCDecoderInst *dinst);
 | 
| -
 | 
| -#endif  /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_NCVAL_SEG_SFI_NCVALIDATE_INTERNALTYPES_H__ */
 | 
| 
 |