1/**
2 * \file
3 * \brief remote retype test
4 */
5
6/*
7 * Copyright (c) 2016, ETH Zurich.
8 * All rights reserved.
9 *
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Universitaetstr 6, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef TEST_DISTOPS_TEST_H
16#define TEST_DISTOPS_TEST_H
17
18#define PANIC_IF_ERR(err, msg...) \
19do { \
20    if (err_is_fail(err)) { \
21        USER_PANIC_ERR(err, msg); \
22    } \
23} while(0)
24
25#define RAM_BITS LARGE_PAGE_BITS
26#define RAM_SIZE (1UL << RAM_BITS)
27
28void init_server(struct test_binding *b);
29void server_do_test(struct test_binding *b, uint32_t test, struct capref cap);
30
31void init_client(struct test_binding *b);
32void client_do_test(struct test_binding *b, uint32_t test, struct capref cap);
33
34void test_retype(struct capref src, struct capref *dest, gensize_t offset,
35                 gensize_t size, size_t count, errval_t expected_err,
36                 const char *role);
37
38static inline void client_test_retype(struct capref src, struct capref *dest,
39                                      gensize_t offset, gensize_t size,
40                                      size_t count, errval_t expected_err)
41{
42    return test_retype(src, dest, offset, size, count, expected_err, "client");
43}
44
45static inline void server_test_retype(struct capref src, struct capref *dest,
46                                      gensize_t offset, gensize_t size,
47                                      size_t count, errval_t expected_err)
48{
49    return test_retype(src, dest, offset, size, count, expected_err, "server");
50}
51
52
53#endif // TEST_DISTOPS_TEST_H
54