aboutsummaryrefslogtreecommitdiff
path: root/components/rpc/common/interface/rpc_caller.h
diff options
context:
space:
mode:
Diffstat (limited to 'components/rpc/common/interface/rpc_caller.h')
-rw-r--r--components/rpc/common/interface/rpc_caller.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/components/rpc/common/interface/rpc_caller.h b/components/rpc/common/interface/rpc_caller.h
index a75bdd9ab..879d2cb2a 100644
--- a/components/rpc/common/interface/rpc_caller.h
+++ b/components/rpc/common/interface/rpc_caller.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
+ * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -36,6 +36,7 @@ typedef void *rpc_call_handle;
struct rpc_caller
{
void *context;
+ uint32_t encoding;
/* A concrete rpc_caller implements these methods */
rpc_call_handle (*call_begin)(void *context, uint8_t **req_buf, size_t req_len);
@@ -47,6 +48,19 @@ struct rpc_caller
};
/*
+ * Called by a concrete rpc_caller to initialise the base rpc_caller.
+ */
+void rpc_caller_init(struct rpc_caller *s, void *context);
+
+/*
+ * Allows a client to specify the parameter encoding scheme that the client
+ * intends to use during an RPC session. It is the client's responsiblity
+ * to choose an encoding scheme that is supported by the remote interface.
+ */
+RPC_CALLER_EXPORTED void rpc_caller_set_encoding_scheme(struct rpc_caller *s,
+ uint32_t encoding);
+
+/*
* Starts a call transaction. The returned handle is an identifier for the
* transaction and must be passed as a parameter to call_invoke() and
* call_end(). A concrete rpc_caller may perform resource allocation during