blob: e0a2b3eb7a6b1c426adf989c12ef81a731926138 [file] [log] [blame]
/*
* Copyright 2020, Data61, ABN 41 687 119 230.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
/*- from 'rpc-connector.c' import establish_from_rpc, begin_send, perform_call, release_recv with context -*/
/*- from 'global-endpoint.template.c' import allocate_rpc_endpoint_cap with context -*/
#include <camkes/dataport.h>
/*? macros.show_includes(me.instance.type.includes) ?*/
/*? macros.show_includes(me.interface.type.includes) ?*/
/*- set connector = namespace() -*/
/*- set connector.language = 'c' -*/
/*# Establish the buffer for message contents #*/
/*- set connector.userspace_ipc = False -*/
/*- set base = '((void*)&seL4_GetIPCBuffer()->msg[0])' -*/
/*- set buffer_size = '(seL4_MsgMaxLength * sizeof(seL4_Word))' -*/
/*- set connector.lock = False -*/
/*- set connector.send_buffer = base -*/
/*- set connector.recv_buffer = base -*/
/*- set connector.send_buffer_size = buffer_size -*/
/*- set connector.recv_buffer_size = buffer_size -*/
/*- set connector.recv_buffer_size_fixed = connector.userspace_ipc -*/
/*# Ensure the endpoint is allocated #*/
/*- do allocate_rpc_endpoint_cap(me.parent.to_end, is_reader=False, other_end=me) -*/
/*- set connector.badges = pop('badges') -*/
/*- set connector.ep = pop('endpoint') -*/
/*- include 'rpc-connector-common-from.c' -*/