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_DELETE_INT_H 11#define CAPOPS_DELETE_INT_H 12 13#include <capops.h> 14#include <barrelfish/waitset.h> 15#include <barrelfish/event_queue.h> 16 17struct waitset *delete_steps_get_waitset(void); 18void delete_steps_init(struct waitset *ws); 19void delete_steps_trigger(void); 20void delete_steps_pause(void); 21void delete_steps_resume(void); 22 23struct delete_queue_node { 24 struct event_queue_node qn; 25 struct delete_queue_node *next; 26 struct event_closure cont; 27}; 28 29void delete_queue_wait(struct delete_queue_node *qn, 30 struct event_closure cont); 31void delete_queue_init(struct waitset *ws); 32 33struct delete_st { 34 struct delete_queue_node qn; 35 struct event_queue_node lock_qn; 36 struct domcapref capref; 37 struct capability cap; 38 struct capref newcap; 39 bool wait; 40 delete_result_handler_t result_handler; 41 void *st; 42}; 43 44void capops_delete_int(struct delete_st *del_st); 45 46void send_new_ram_cap(struct capref cap); 47 48#endif 49