Skip to content
|
Access key help
Search
Advanced search
A–Z
Contact us
Computer Laboratory
Computer Laboratory
Research
Security Group
CTSRD
Temporally Enhanced Security Logic Assertions (TESLA)
API Documentation
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
tesla
common
Names.h
Go to the documentation of this file.
1
2
/*
3
* Copyright (c) 2012-2013 Jonathan Anderson
4
* All rights reserved.
5
*
6
* This software was developed by SRI International and the University of
7
* Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
8
* ("CTSRD"), as part of the DARPA CRASH research programme.
9
*
10
* Redistribution and use in source and binary forms, with or without
11
* modification, are permitted provided that the following conditions
12
* are met:
13
* 1. Redistributions of source code must retain the above copyright
14
* notice, this list of conditions and the following disclaimer.
15
* 2. Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in the
17
* documentation and/or other materials provided with the distribution.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
20
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
* SUCH DAMAGE.
30
*/
31
32
#ifndef _TESLA_NAMES_H_
33
#define _TESLA_NAMES_H_
34
35
#include "
Protocol.h
"
36
37
#include <llvm/ADT/ArrayRef.h>
38
#include <llvm/ADT/StringRef.h>
39
40
#include <string>
41
42
namespace
tesla {
43
44
class
Argument;
45
class
Identifier;
46
class
Location
;
47
48
typedef
llvm::ArrayRef<const Argument*>
ReferenceVector
;
49
50
const
std::string
LLVM_PTR_ANNOTATION
=
"llvm.ptr.annotation"
;
51
52
const
std::string
TESLA_BASE
=
"__tesla_"
;
53
54
const
std::string
AUTOMATON
=
TESLA_BASE
+
"automaton_"
;
55
const
std::string
AUTOMATON_DESC
=
AUTOMATON
+
"description"
;
56
const
std::string
AUTOMATON_MAPPING
=
AUTOMATON
+
"mapping"
;
57
const
std::string
AUTOMATON_USAGE
=
AUTOMATON
+
"usage"
;
58
const
std::string
AUTOMATON_USES
=
TESLA_BASE
+
"struct_uses_automaton"
;
59
60
const
std::string
GLOBAL
=
TESLA_BASE
+
"global"
;
61
const
std::string
PERTHREAD
=
TESLA_BASE
+
"perthread"
;
62
63
const
std::string
ANY
=
TESLA_BASE
+
"any"
;
64
const
std::string
EVENT
=
TESLA_BASE
+
"event"
;
65
const
std::string
IGNORE
=
TESLA_BASE
+
"ignore"
;
66
const
std::string
NOW
=
TESLA_BASE
+
"now"
;
67
const
std::string
OPTIONAL
=
TESLA_BASE
+
"optional"
;
68
const
std::string
SEQUENCE
=
TESLA_BASE
+
"sequence"
;
69
70
const
std::string
INLINE_ASSERTION
=
TESLA_BASE
+
"inline_assertion"
;
71
72
const
std::string
INSTR_BASE
=
TESLA_BASE
+
"instrumentation_"
;
73
74
const
std::string
STRUCT_INSTR
=
INSTR_BASE
+
"struct_field_"
;
75
const
std::string
LOAD
=
"load_"
;
76
const
std::string
STORE
=
"store_"
;
77
78
const
std::string
CALL
=
INSTR_BASE
+
"call"
;
79
const
std::string
RETURN
=
INSTR_BASE
+
"return"
;
80
81
const
std::string
CALLEE
=
"callee_"
;
82
const
std::string
CALLER
=
"caller_"
;
83
84
const
std::string
ENTER
=
"enter_"
;
85
const
std::string
EXIT
=
"return_"
;
86
87
const
std::string
FLAGS
=
TESLA_BASE
+
"flags"
;
88
const
std::string
MASK
=
TESLA_BASE
+
"mask"
;
89
90
const
std::string
ASSERTION_REACHED
=
INSTR_BASE
+
"assertion_reached"
;
91
93
std::string
ArgString
(
const
Argument
*);
94
96
std::string
ShortName
(
const
Argument
*);
97
99
std::string
DotName
(
const
Argument
*);
100
102
std::string
ShortName
(
const
Identifier
&);
103
105
std::string
ShortName
(
const
Location
&);
106
108
std::string
InstanceName
(
const
ReferenceVector
&,
bool
PlainAscii);
109
110
}
/* namespace tesla */
111
112
#endif
© 2013 Jonathan Anderson
Information provided by
Jonathan Anderson