Add protocol definitions for smm_variable

Adds protocol definition for the SMM Variable service. Protocol
files are based on EDK2 originals from:
https://github.com/tianocore/edk2/commits/master
b4da6c29f1d36031e04212f53277ce0dcba309f1
Structures and defines are required to be align for compatibility
between EDK2 and TS components.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I3a478cdc5d3a849810abf6c699027f65594b4a83
diff --git a/protocols/service/smm_variable/opcodes.h b/protocols/service/smm_variable/opcodes.h
new file mode 100644
index 0000000..7e37333
--- /dev/null
+++ b/protocols/service/smm_variable/opcodes.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef TS_SMM_VARIABLE_OPCODES_H
+#define TS_SMM_VARIABLE_OPCODES_H
+
+/**
+ * C/C++ definition of smm_variable service opcodes
+ *
+ * These defines are aligned to the SMM Variable definitions from EDK2. These versions
+ * of these defines are maintained in the TS project to avoid a mandatory dependency
+ * on the EDK2 project.
+ */
+
+#define SMM_VARIABLE_FUNCTION_GET_VARIABLE            1
+#define SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME  2
+#define SMM_VARIABLE_FUNCTION_SET_VARIABLE            3
+#define SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO     4
+#define SMM_VARIABLE_FUNCTION_READY_TO_BOOT           5
+#define SMM_VARIABLE_FUNCTION_EXIT_BOOT_SERVICE       6
+
+#endif /* TS_SMM_VARIABLE_OPCODES_H */