Add tf_fuzz tool
This is fully derived from tf-m repo.
Signed-off-by: Karl Zhang <karl.zhang@arm.com>
Change-Id: I8d35e70eda9081af66d8fa3f3cb4beb1d953060e
diff --git a/tf_fuzz/utility/variables.hpp b/tf_fuzz/utility/variables.hpp
new file mode 100644
index 0000000..886acc3
--- /dev/null
+++ b/tf_fuzz/utility/variables.hpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <string>
+#include <vector>
+
+/* This file defines information to track regarding variables in the generated test
+ code. */
+
+#ifndef VARIABLES_HPP
+#define VARIABLES_HPP
+
+/* This project's header files #including other project headers quickly becomes
+ unrealistically complicated. The only solution is for each .cpp to include
+ the headers it needs. However these in particular are mostly axiomatic: Not
+ dependent upon other classes. */
+
+
+using namespace std;
+
+
+/**********************************************************************************
+ Class variable_info tracks everything we know about a given variable in the
+ generated C code.
+**********************************************************************************/
+
+class variable_info
+{
+public:
+ // Data members:
+ /* The existence of this variable tracker means that the data variable and
+ the length variable have been declared, but there are other variants on
+ this variable that may or may not have been declared already. Thus
+ the *_declared bool(s) below. */
+ bool hash_declared; // true if the hash of this variable has been declared
+ bool value_known; // true if the variable's value can be known in simulation
+ string name; // variable name
+ unsigned char value[2048]; // the current value of the variable
+ int length; // of the variable's value
+ psa_asset_type type; // type of info contained in the variable
+
+ // Methods:
+ variable_info (void); // (default constructor)
+ variable_info ( // (constructor with known name and type)
+ string var_name, psa_asset_type var_type
+ );
+ ~variable_info (void); // (destructor)
+
+protected:
+ // Data members:
+};
+
+
+#endif // VARIABLES_HPP
+