1/* 2 * Copyright (c) 2012 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, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. 8 */ 9 10#ifndef CAPOPS_H 11#define CAPOPS_H 12 13#include <barrelfish/caddr.h> 14#include <barrelfish/types.h> 15#include <barrelfish_kpi/capabilities.h> 16#include "domcap.h" 17 18typedef void (*copy_result_handler_t)(errval_t, capaddr_t, uint8_t, cslot_t, void*); 19void capops_copy(struct capref src, coreid_t dest, bool give_away, 20 copy_result_handler_t result_handler, void *st); 21 22typedef void (*move_result_handler_t)(errval_t, void*); 23errval_t capops_move(struct domcapref cap, coreid_t dest, 24 move_result_handler_t result_handler, void *st); 25 26void capops_retrieve(struct domcapref cap, 27 move_result_handler_t result_handler, void *st); 28 29typedef void (*delete_result_handler_t)(errval_t, void*); 30void capops_delete(struct domcapref cap, 31 delete_result_handler_t result_handler, void *st); 32 33typedef void (*revoke_result_handler_t)(errval_t, void*); 34void capops_revoke(struct domcapref cap, 35 revoke_result_handler_t result_handler, 36 void *st); 37 38typedef void (*retype_result_handler_t)(errval_t, void*); 39void capops_retype(enum objtype type, size_t objsize, size_t count, struct capref dest_root, 40 capaddr_t dest_cn, uint8_t dest_level, cslot_t dest_slot, 41 struct capref src_root, capaddr_t src, uint8_t src_level, 42 gensize_t offset, retype_result_handler_t result_handler, void *st); 43 44struct intermon_binding; 45errval_t capops_init(struct waitset *ws, struct intermon_binding *b); 46 47#endif 48