Create SMM variable MM service
Create MM service for handling SMM variable service calls. This layer
is called by the MM RPC layer and after parsing the SMM variable header
it forwards the call to underlying the RPC interface.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I38c7d8957cc1fe91c5d6972e4ab8dbb96f51a865
diff --git a/protocols/service/smm_variable/parameters.h b/protocols/service/smm_variable/parameters.h
index bc4999e..24fab55 100644
--- a/protocols/service/smm_variable/parameters.h
+++ b/protocols/service/smm_variable/parameters.h
@@ -7,7 +7,8 @@
#ifndef TS_SMM_VARIABLE_PARAMETERS_H
#define TS_SMM_VARIABLE_PARAMETERS_H
-#include <protocols/common/efi/efi_types.h>
+#include "protocols/common/efi/efi_status.h"
+#include "protocols/common/efi/efi_types.h"
/**
* C/C++ definition of smm_variable service parameters
@@ -18,6 +19,18 @@
*/
/**
+ * SMM variable call header
+ */
+typedef struct {
+ uint64_t Function;
+ efi_status_t ReturnStatus;
+ uint8_t Data[1];
+} SMM_VARIABLE_COMMUNICATE_HEADER;
+
+#define SMM_VARIABLE_COMMUNICATE_HEADER_SIZE \
+ offsetof(SMM_VARIABLE_COMMUNICATE_HEADER, Data)
+
+/**
* Variable attributes
*/
#define EFI_VARIABLE_NON_VOLATILE (0x00000001)