ia64/xen-unstable

view xen/include/asm-x86/grant_table.h @ 16407:2e5d922b7ee3

xen: Allow granting of foreign access to iomem pages, and with
arbitrary cache attributes.
Signed-off-by: Kieran Mansley <kmansley@solarflare.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Nov 20 17:26:48 2007 +0000 (2007-11-20)
parents 3d5f39c610ad
children cb3e47897b85
line source
1 /******************************************************************************
2 * include/asm-x86/grant_table.h
3 *
4 * Copyright (c) 2004-2005 K A Fraser
5 */
7 #ifndef __ASM_GRANT_TABLE_H__
8 #define __ASM_GRANT_TABLE_H__
10 #define INITIAL_NR_GRANT_FRAMES 4
12 /*
13 * Caller must own caller's BIGLOCK, is responsible for flushing the TLB, and
14 * must hold a reference to the page.
15 */
16 int create_grant_host_mapping(uint64_t addr, unsigned long frame,
17 unsigned int flags, unsigned int cache_flags);
18 int replace_grant_host_mapping(
19 uint64_t addr, unsigned long frame, uint64_t new_addr, unsigned int flags);
21 #define gnttab_create_shared_page(d, t, i) \
22 do { \
23 share_xen_page_with_guest( \
24 virt_to_page((char *)(t)->shared[i]), \
25 (d), XENSHARE_writable); \
26 } while ( 0 )
28 #define gnttab_shared_mfn(d, t, i) \
29 ((virt_to_maddr((t)->shared[i]) >> PAGE_SHIFT))
31 #define gnttab_shared_gmfn(d, t, i) \
32 (mfn_to_gmfn(d, gnttab_shared_mfn(d, t, i)))
34 #define gnttab_mark_dirty(d, f) paging_mark_dirty((d), (f))
36 static inline void gnttab_clear_flag(unsigned long nr, uint16_t *addr)
37 {
38 clear_bit(nr, addr);
39 }
41 #define gnttab_release_put_page(page) \
42 do { \
43 /* Done implicitly when page tables are destroyed. */ \
44 } while (0)
46 #define gnttab_release_put_page_and_type(page) \
47 do { \
48 /* Done implicitly when page tables are destroyed. */ \
49 } while (0)
51 static inline int replace_grant_supported(void)
52 {
53 return 1;
54 }
56 #endif /* __ASM_GRANT_TABLE_H__ */