- Update Xen patches to 3.3-rc5 and c/s 1157.
[linux-flexiantxendom0-3.2.10.git] / drivers / xen / blkback / blkback-pagemap.h
1 #ifndef _BLKBACK_PAGEMAP_H_
2 #define _BLKBACK_PAGEMAP_H_
3
4 #include <linux/mm.h>
5 #include <xen/interface/xen.h>
6 #include <xen/interface/grant_table.h>
7
8 typedef unsigned int busid_t;
9
10 struct blkback_pagemap {
11         domid_t          domid;
12         busid_t          busid;
13         grant_ref_t      gref;
14 };
15
16 #if defined(CONFIG_XEN_BLKBACK_PAGEMAP) || defined(CONFIG_XEN_BLKBACK_PAGEMAP_MODULE)
17
18 int blkback_pagemap_init(int);
19 void blkback_pagemap_set(int, struct page *, domid_t, busid_t, grant_ref_t);
20 void blkback_pagemap_clear(struct page *);
21 struct blkback_pagemap blkback_pagemap_read(struct page *);
22
23 #else /* CONFIG_XEN_BLKBACK_PAGEMAP */
24
25 static inline int blkback_pagemap_init(int pages) { return 0; }
26 static inline void blkback_pagemap_set(int idx, struct page *page, domid_t dom,
27                                        busid_t bus, grant_ref_t gnt) {}
28 static inline void blkback_pagemap_clear(struct page *page) {}
29 static inline struct blkback_pagemap blkback_pagemap_read(struct page *page)
30 {
31         BUG();
32         return (struct blkback_pagemap){-1, -1, -1};
33 }
34
35 #endif /* CONFIG_XEN_BLKBACK_PAGEMAP */
36
37 #endif