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

Side by Side Diff: src/trusted/validator/x86/decoder/generator/ncdecode_st.h

Issue 625923004: Delete old x86 validator. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: rebase master Created 6 years, 2 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
(Empty)
1 /*
2 * Copyright 2010 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7 /* ncdecode_st.h - Implements a (simple) hashtable used by the
8 * instruction table generator.
9 */
10
11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_GENERATOR_NCDECODE_ST_H_
12 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_GENERATOR_NCDECODE_ST_H_
13
14 #ifndef NACL_TRUSTED_BUT_NOT_TCB
15 #error("This file is not meant for use in the TCB")
16 #endif
17
18 #include "native_client/src/include/portability.h"
19 #include "native_client/src/trusted/validator/x86/decoder/generator/ncdecode_for ms.h"
20
21 struct NaClSymbolTable;
22 struct NaClStValue;
23 struct Gio;
24
25 /* The set of possible values that can be put in a symbol table. */
26 typedef enum {
27 nacl_byte, /* (unsigned) byte value. */
28 nacl_text, /* char* value. */
29 nacl_int, /* integer value. */
30 nacl_defop, /* a NaClDefOperand function pointer. */
31 } NaClStValueKind;
32
33 /* Returns a printable name for the given kind. */
34 const char* NaClStValueKindName(NaClStValueKind kind);
35
36 /* Models the set of possible values that can appear in a symbol table. */
37 typedef struct NaClStValue {
38 NaClStValueKind kind; /* descriminant of the kind of value. */
39 union NaClStValueUnion {
40 /* kind == nacl_byte */
41 uint8_t byte_value;
42 /* kind == nacl_int */
43 int int_value;
44 /* kind == nacl_text */
45 const char* text_value;
46 /* kind == nacl_defop */
47 NaClDefOperand defop_value;
48 } value;
49 } NaClStValue;
50
51 /* Copies the contents of the RHS to the LHS. Note: Does a shallow copy
52 * only (I.e. only copies the int / char* / pointer of the union.
53 */
54 void NaClStValueAssign(
55 NaClStValue* lhs,
56 NaClStValue* rhs);
57
58 /* Prints out the contents of a value to the given file. */
59 void NaClStValuePrint(struct Gio* g, NaClStValue* value);
60
61 /* Dynamically creates a symbol table, with the expected size,
62 * and the given calling context (NULL implies top-level).
63 * Must be destroyed with NaClSymbolTableDestroy.
64 */
65 struct NaClSymbolTable* NaClSymbolTableCreate(
66 size_t capacity,
67 struct NaClSymbolTable* calling_context);
68
69 /* Adds the name value pair into the given symbol table. Value
70 * must be non-NULL.
71 */
72 void NaClSymbolTablePut(
73 const char* name,
74 struct NaClStValue* value,
75 struct NaClSymbolTable* st);
76
77 void NaClSymbolTablePutByte(const char* name,
78 uint8_t byte,
79 struct NaClSymbolTable* st);
80
81 void NaClSymbolTablePutText(const char* name,
82 const char* value,
83 struct NaClSymbolTable* st);
84
85 void NaClSymbolTablePutInt(const char* name,
86 int value,
87 struct NaClSymbolTable* st);
88
89 /* Returns the value associated with the name, or NULL if
90 * no such value exists (in the given symbol table, or any
91 * of its calling contexts).
92 */
93 struct NaClStValue* NaClSymbolTableGet(
94 const char* name,
95 struct NaClSymbolTable* st);
96
97 /* Print out the set of symbol bindings in a symbol table. */
98 void NaClSymbolTablePrint(struct Gio* g, struct NaClSymbolTable* st);
99
100 /* Destroys the given symbol table. */
101 void NaClSymbolTableDestroy(struct NaClSymbolTable* st);
102
103 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_GENERATOR_NCDECODE_ST _H_ */
OLDNEW
« no previous file with comments | « src/trusted/validator/x86/decoder/generator/ncdecode_sse.c ('k') | src/trusted/validator/x86/decoder/generator/ncdecode_st.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698