1/**
2 * \file
3 * \brief Driver for booting the Xeon Phi Coprocessor card on a Barrelfish Host
4 */
5
6/*
7 * Copyright (c) 2014 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, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef XEON_PHI_SERVICE_H_
16#define XEON_PHI_SERVICE_H_
17
18/**
19 * \brief initializes the service
20 *
21 * \param iref  returns the iref of the initialized service
22 *
23 * \return SYS_ERR_OK on success
24 */
25errval_t service_init(struct xeon_phi *phi);
26
27/**
28 * \brief registers the local service with the other Xeon Phi drivers
29 *        in the topology
30 *
31 * \param phi   pointer to the local card structure
32 * \param irefs the irefs of the other cards
33 * \param num   the number of irefs in the array
34 */
35errval_t service_register(struct xeon_phi *phi,
36                          iref_t *irefs,
37                          uint8_t num);
38
39/**
40 * \brief registers an intra card communication frame
41 *
42 * \param phi      the local xeon phi card
43 * \param xphi_id  target xeon phi id
44 * \param cap      capability of the messaging frame
45 */
46errval_t service_bootstrap(struct xeon_phi *phi,
47                           uint8_t xphi_id,
48                           struct capref frame);
49
50/**
51 * \brief starts the service request handling
52 */
53errval_t service_start(struct xeon_phi *phi);
54
55#endif // XEON_PHI_SERVICE_H_
56