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