1/*
2 * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <string.h>
8#include <sel4/sel4.h>
9#include <utils/util.h>
10
11#define FFI_SUCCESS 0
12#define FFI_FAILURE 1
13
14seL4_CPtr virtqueue_wait_notification(void);
15
16// Return the global endpoint for our CakeML filter component
17void ffiget_global_endpoint(char * c, unsigned long clen, char * a, unsigned long alen) {
18    assert(alen >= 1 + sizeof(seL4_CPtr));
19    seL4_CPtr src = virtqueue_wait_notification();
20    memcpy(a + 1, &src, sizeof(seL4_CPtr));
21    a[0] = FFI_SUCCESS;
22}
23