Add support for 64-bit operation status values
For compatibility with 64-bit EFI status codes, opstatus values
are now treated as 64-bit rather than 32-bit. A new rpc_opstatus_t
type has been introduced in this change. Note that the FFARPC
still maps the opstatus value to a 32-bit regsiter value but
this is sign extended up to 64-bits in RPC callers. The MM
Communicate RPC caller and endpoint handle 64-bit status values.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I06a0883394f370ccb543ebab797973bb604ff489
diff --git a/components/rpc/common/endpoint/rpc_interface.h b/components/rpc/common/endpoint/rpc_interface.h
index ba949de..eb98587 100644
--- a/components/rpc/common/endpoint/rpc_interface.h
+++ b/components/rpc/common/endpoint/rpc_interface.h
@@ -62,7 +62,7 @@
uint32_t interface_id;
uint32_t opcode;
uint32_t encoding;
- int opstatus;
+ rpc_opstatus_t opstatus;
struct call_param_buf req_buf;
struct call_param_buf resp_buf;
};
@@ -87,12 +87,12 @@
return req->encoding;
}
-static inline int call_req_get_opstatus(const struct call_req *req)
+static inline rpc_opstatus_t call_req_get_opstatus(const struct call_req *req)
{
return req->opstatus;
}
-static inline void call_req_set_opstatus(struct call_req *req, int opstatus)
+static inline void call_req_set_opstatus(struct call_req *req, rpc_opstatus_t opstatus)
{
req->opstatus = opstatus;
}