1/* 2 * Copyright (c) 2014, ETH Zurich. 3 * All rights reserved. 4 * 5 * This file is distributed under the terms in the attached LICENSE file. 6 * If you do not find this file, copies can be found by writing to: 7 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group. 8 */ 9 10/** 11 * \brief interface between bomp thrads 12 */ 13interface bomp "Barrelfish OpenMP Interface" { 14 15 /* 16 * ========================================================================== 17 * Messages between Node Masters and Worker Threads 18 * ========================================================================== 19 */ 20 21 /** 22 * \brief initiates the execution of a thread 23 * 24 * \param fn Address of the function to call 25 * \param addr Pointer to the argument 26 * \param tid The thread's ID 27 * \param icv The thread's task control variables 28 */ 29 message execute(uint64 fn, 30 uint64 arg, 31 uint32 tid, 32 uint64 icv); 33 34 /** 35 * \brief message signalling the termination of a bomp thread 36 * 37 * \param status The thread's return value 38 */ 39 message done(errval status); 40 41 /* 42 * ========================================================================== 43 * Messages between Domain Master and Node Masters 44 * ========================================================================== 45 */ 46 47 rpc initialize(out errval status, 48 out uint32 nthreads); 49 50 51 52 /* 53 * ------------------------------------------------------------------------- 54 * Execution 55 * ------------------------------------------------------------------------- 56 */ 57 58 message execute_range(uint64 fn, 59 uint64 addr, 60 uint32 from, 61 uint32 to, 62 uint32 nthreads); 63 64 65 /* 66 * ------------------------------------------------------------------------- 67 * Memory 68 * ------------------------------------------------------------------------- 69 */ 70 rpc map(in cap frame, 71 in uint64 addr, 72 out errval status); 73 74 75 rpc update(in uint64 addr, 76 in uint64 offset, 77 in uint64 length, 78 out errval status); 79 80}; 81