Introduce execution domains in code and building
[archipelago] / xseg / peers / kernel / xsegbd.h
1 #ifndef _XSEGBD_REAR
2 #define _XSEGBD_REAR
3
4 #define XSEGBD_NAME "xsegbd"
5
6 #define XSEGBD_SEGMENT_NAMELEN 32
7 #define XSEGBD_TARGET_NAMELEN 127
8
9 #include <linux/kernel.h>
10 #include <linux/types.h>
11 #include <xseg/xseg.h>
12 #include <xq/xq.h>
13
14 struct xsegbd {
15         char name[XSEGBD_SEGMENT_NAMELEN];
16         struct xseg_config config;
17         struct xseg *xseg;
18 };
19
20 struct xsegbd_device {
21         spinlock_t lock;
22         struct request_queue *blk_queue;
23         struct gendisk *gd;
24         int id;
25         int major;
26         sector_t sectors;
27         uint64_t segsize;
28         uint32_t src_portno, dst_portno, nr_requests;
29         struct xq blk_queue_pending;
30         struct xsegbd *xsegbd;
31         char *_blk_queue_mem;
32         struct request **blk_req_pending;
33         struct device dev;
34         struct list_head node;
35         char name[XSEGBD_TARGET_NAMELEN + 1];
36         uint32_t namesize;
37 };
38
39 #endif