/*
 * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230)
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

import <std_connector.camkes>;
#include <buffer.h>

component Server {
    control;
    dataport Buf(REVERSE_STRING_BUFSIZE) buffer;
}

component Client {
    control;
    dataport Buf(REVERSE_STRING_BUFSIZE) buffer;
}

assembly {
    composition {
        component Server server;
        component Client client;

        connection seL4SharedData conn(from client.buffer, to server.buffer);
    }
}

