1 /*
2  * Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include "rpc_caller.h"
8 
rpc_caller_open_session(struct rpc_caller_interface * caller,const struct rpc_uuid * service_uuid,uint16_t endpoint_id)9 rpc_status_t rpc_caller_open_session(struct rpc_caller_interface *caller,
10 				     const struct rpc_uuid *service_uuid,
11 				     uint16_t endpoint_id)
12 {
13 	if (!caller)
14 		return RPC_ERROR_INVALID_VALUE;
15 
16 	return caller->open_session(caller->context, service_uuid, endpoint_id);
17 }
18 
rpc_caller_find_and_open_session(struct rpc_caller_interface * caller,const struct rpc_uuid * service_uuid)19 rpc_status_t rpc_caller_find_and_open_session(struct rpc_caller_interface *caller,
20 					      const struct rpc_uuid *service_uuid)
21 {
22 	if (!caller)
23 		return RPC_ERROR_INVALID_VALUE;
24 
25 	return caller->find_and_open_session(caller->context, service_uuid);
26 }
27 
rpc_caller_close_session(struct rpc_caller_interface * caller)28 rpc_status_t rpc_caller_close_session(struct rpc_caller_interface *caller)
29 {
30 	if (!caller)
31 		return RPC_ERROR_INVALID_VALUE;
32 
33 	return caller->close_session(caller->context);
34 }
35 
rpc_caller_create_shared_memory(struct rpc_caller_interface * caller,size_t length,struct rpc_caller_shared_memory * shared_memory)36 rpc_status_t rpc_caller_create_shared_memory(struct rpc_caller_interface *caller, size_t length,
37 					     struct rpc_caller_shared_memory *shared_memory)
38 {
39 	if (!caller)
40 		return RPC_ERROR_INVALID_VALUE;
41 
42 	return caller->create_shared_memory(caller->context, length, shared_memory);
43 }
44 
rpc_caller_release_shared_memory(struct rpc_caller_interface * caller,struct rpc_caller_shared_memory * shared_memory)45 rpc_status_t rpc_caller_release_shared_memory(struct rpc_caller_interface *caller,
46 					      struct rpc_caller_shared_memory *shared_memory)
47 {
48 	if (!caller)
49 		return RPC_ERROR_INVALID_VALUE;
50 
51 	return caller->release_shared_memory(caller->context, shared_memory);
52 }
53 
rpc_caller_call(struct rpc_caller_interface * caller,uint16_t opcode,struct rpc_caller_shared_memory * shared_memory,size_t request_length,size_t * response_length,service_status_t * service_status)54 rpc_status_t rpc_caller_call(struct rpc_caller_interface *caller, uint16_t opcode,
55 			     struct rpc_caller_shared_memory *shared_memory, size_t request_length,
56 			     size_t *response_length, service_status_t *service_status)
57 {
58 	if (!caller)
59 		return RPC_ERROR_INVALID_VALUE;
60 
61 	return caller->call(caller->context, opcode, shared_memory, request_length,
62 			    response_length, service_status);
63 }
64