blob: d043bc491d5a4283bdd0dc3e3547ff2e8a9a7e33 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/******************************************************************************
* foreign_page.h
*
* Provide a "foreign" page type, that is owned by a foreign allocator and
* not the normal buddy allocator in page_alloc.c
*
* Copyright (c) 2004, K A Fraser
*/
#ifndef __ASM_XEN_FOREIGN_PAGE_H__
#define __ASM_XEN_FOREIGN_PAGE_H__
#define PG_foreign PG_arch_1
#define PageForeign(page) test_bit(PG_foreign, &(page)->flags)
#define SetPageForeign(page, dtor) do { \
set_bit(PG_foreign, &(page)->flags); \
(page)->mapping = (void *)dtor; \
} while (0)
#define ClearPageForeign(page) do { \
clear_bit(PG_foreign, &(page)->flags); \
(page)->mapping = NULL; \
} while (0)
#define PageForeignDestructor(page) \
( (void (*) (struct page *)) (page)->mapping )
#endif /* __ASM_XEN_FOREIGN_PAGE_H__ */
|