1/** \file
2 *  \brief Inter Xeon Phi Driver Interface
3 */
4
5/*
6 * Copyright (c) 2012, ETH Zurich.
7 * All rights reserved.
8 *
9 * This file is distributed under the terms in the attached LICENSE file.
10 * If you do not find this file, copies can be found by writing to:
11 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
12 */
13
14interface interphi "Interface between host and card side driver" {
15
16    rpc domain_lookup(in char name[length, 2048],
17                      out uint64 domid,
18                      out errval msgerr);
19
20    rpc domain_wait(in char name[length, 2048],
21                    in uint64 state,
22                    out uint64 domid,
23                    out uint64 rstate,
24                    out errval msgerr);
25
26    rpc domain_register(in char name[length, 2048],
27                        in uint64 domid,
28                        out errval msgerr);
29
30    /**
31     * \
32     */
33    rpc spawn(in uint8 core,
34              in char cmdline[length, 2048],
35              in uint8 flags,
36              out uint64 domainid,
37              out errval msgerr);
38
39    /**
40     *
41     */
42    rpc spawn_with_cap(in uint8 core,
43                       in char cmdline[length, 2048],
44                       in uint8 flags,
45                       in uint64 cap_base,
46                       in uint8 cap_size_bits,
47                       out uint64 domainid,
48                       out errval msgerr);
49
50    /**
51     *
52     */
53    rpc kill(in uint64 domainid,
54             out errval msgerr);
55
56
57    /**
58     *
59     */
60    rpc bootstrap(in uint64 base,
61                  in uint64 offset,
62                  in uint8 bits,
63                  in uint8 xid,
64                  in uint8 is_client,
65                  out errval msgerr);
66
67    rpc chan_open(in uint64 source_did,
68                  in uint64 target_did,
69                  in uint64 usrdata,
70                  in uint64 msgbase,
71                  in uint8 msgbits,
72                  in uint8 type,
73                  out errval msgerr);
74    /*
75     * host driver only
76     */
77
78
79    rpc register_(in uint8 id,
80                 in uint64 local_apt_base,
81                 in uint64 local_apt_size,
82                 out errval msgerr,
83                 out uint64 other_apt_base,
84                 out uint64 other_apt_size);
85
86    rpc bootstrap_remote(in uint64 base,
87                         in uint8 bits,
88                         out errval msgerr);
89
90    rpc alloc_mem(in uint64 addr, in uint64 bytes,
91                  out uint64 base, out uint64 rbytes, out errval msgerr);
92};
93