1/** \file
2 *  \brief 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 xeon_phi "Xeon Phi Messaging Interface" {
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                    out uint64 domid,
22                    out errval msgerr);
23
24    rpc domain_register(in char name[length, 2048],
25                    	in uint64 domid,
26                    	out errval msgerr);
27
28    rpc domain_init(in domainid domain,
29    				in coreid core,
30                    in char name[length, 2048],
31                    out errval msgerr);
32
33    /*
34     * Spawning of Domains
35     */
36
37    /**
38     * \
39     */
40    rpc spawn(in uint8 xid,
41              in uint8 core,
42              in char cmdline[length, 2048],
43              in uint8 flags,
44              out uint64 domainid,
45              out errval msgerr);
46
47    rpc spawn_with_cap(in uint8 xid,
48                       in uint8 core,
49                       in char cmdline[length, 2048],
50                       in uint8 flags,
51                       in cap capability,
52                       out uint64 domainid,
53                       out errval msgerr);
54
55    rpc kill(in uint8 xid,
56             in uint64 domainid,
57             out errval msgerr);
58
59
60    rpc chan_open_request(in uint8 xphi,
61                          in cap msgframe,
62                          in uint8 type,
63                          in uint64 domain,
64                          in uint64 usrdata,
65                          out errval msgerr);
66
67
68
69    rpc chan_open(in uint64 domain,
70    			  in uint64 usrdata,
71                  in cap msgframe,
72                  in uint8 type,
73                  out errval msgerr);
74
75
76    rpc dma_register(in cap mem, out uint64 devaddr, out errval msgerr);
77    rpc dma_memcpy(in uint64 to, in uint64 from, in uint64 bytes, out errval msgerr);
78    rpc get_nodeid(in uint64 arg, out int32 nodeid);
79    rpc alloc_mem(in uint64 bytes, out cap mem, out errval msgerr);
80};
81