DeviceQueue: Direct Solarflare queue implementation
[barrelfish] / include / devif / sfn5122f_devif_direct.h
1 /*
2  * Copyright (c) 2016 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, Universitaetstr. 6, CH-8092 Zurich. Attn: Systems Group.
8  */
9 #ifndef SFN5122F_DEVIF_DIRECT_H_
10 #define SFN5122F_DEVIF_DIRECT_H_ 1
11
12 #include <devif/queue_interface.h>
13
14 errval_t sfn5122f_create_direct(struct devq* q, uint64_t flags);
15 errval_t sfn5122f_register_direct(struct devq* q, struct capref cap,
16                                   regionid_t rid);
17 errval_t sfn5122f_deregister_direct(struct devq* q, regionid_t rid);
18 errval_t sfn5122f_control_direct(struct devq* q, uint64_t cmd, uint64_t value);
19 errval_t sfn5122f_destroy_direct(struct devq* q);
20 errval_t sfn5122f_notify_direct(struct devq* q, uint8_t num_slots);
21 errval_t sfn5122f_enqueue_direct(struct devq* q, regionid_t rid, bufferid_t bid, 
22                                  lpaddr_t base, size_t len, uint64_t flags);
23 errval_t sfn5122f_dequeue_direct(struct devq* q, regionid_t* rid, bufferid_t* bid, 
24                                  lpaddr_t* base, size_t* len, uint64_t* flags);
25 #endif