diff options
author | kfraser@dhcp93.uk.xensource.com <kfraser@dhcp93.uk.xensource.com> | 2006-06-16 14:43:54 +0100 |
---|---|---|
committer | kfraser@dhcp93.uk.xensource.com <kfraser@dhcp93.uk.xensource.com> | 2006-06-16 14:43:54 +0100 |
commit | 516250dac6a868443b31c924c08de9ab6fea1322 (patch) | |
tree | 15d763ff6526ba5bbc3ec63a7ab2a26d6d328c90 /xen/include/xen/mm.h | |
parent | 12217db9c510578941d24d4dc6e522f65ef43b0d (diff) | |
download | xen-516250dac6a868443b31c924c08de9ab6fea1322.tar.gz xen-516250dac6a868443b31c924c08de9ab6fea1322.tar.bz2 xen-516250dac6a868443b31c924c08de9ab6fea1322.zip |
[XEN] New memory_op XENMEM_exchange. Allows atomic
exchange of one memory reservation for another of the
same size, but with different properties.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/xen/mm.h')
-rw-r--r-- | xen/include/xen/mm.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h index 9dcea3ae51..232e72d246 100644 --- a/xen/include/xen/mm.h +++ b/xen/include/xen/mm.h @@ -60,13 +60,23 @@ void free_xenheap_pages(void *v, unsigned int order); /* Domain suballocator. These functions are *not* interrupt-safe.*/ void init_domheap_pages(paddr_t ps, paddr_t pe); struct page_info *alloc_domheap_pages( - struct domain *d, unsigned int order, unsigned int flags); + struct domain *d, unsigned int order, unsigned int memflags); void free_domheap_pages(struct page_info *pg, unsigned int order); unsigned long avail_domheap_pages(void); #define alloc_domheap_page(d) (alloc_domheap_pages(d,0,0)) #define free_domheap_page(p) (free_domheap_pages(p,0)) -#define ALLOC_DOM_DMA 1 +int assign_pages( + struct domain *d, + struct page_info *pg, + unsigned int order, + unsigned int memflags); + +/* memflags: */ +#define _MEMF_dma 0 +#define MEMF_dma (1U<<_MEMF_dma) +#define _MEMF_no_refcount 1 +#define MEMF_no_refcount (1U<<_MEMF_no_refcount) #ifdef CONFIG_PAGEALLOC_MAX_ORDER #define MAX_ORDER CONFIG_PAGEALLOC_MAX_ORDER |