debuggers.hg

view xen/include/asm-x86/grant_table.h @ 22855:1d1eec7e1fb4

xl: Perform minimal validation of virtual disk file while parsing config file

This patch performs some very basic validation on the virtual disk
file passed through the config file. This validation ensures that we
don't go too far with the initialization like spawn qemu and more
while there could be some potentially fundamental issues.

[ Patch fixed up to work with PHYSTYPE_EMPTY 22808:6ec61438713a -iwj ]

Signed-off-by: Kamala Narasimhan <kamala.narasimhan@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
author Kamala Narasimhan <kamala.narasimhan@gmail.com>
date Tue Jan 25 18:09:49 2011 +0000 (2011-01-25)
parents 1593073ad670
children
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_raw[i]), \
25 (d), XENSHARE_writable); \
26 } while ( 0 )
28 #define gnttab_create_status_page(d, t, i) \
29 do { \
30 share_xen_page_with_guest( \
31 virt_to_page((char *)(t)->status[i]), \
32 (d), XENSHARE_writable); \
33 } while ( 0 )
36 #define gnttab_shared_mfn(d, t, i) \
37 ((virt_to_maddr((t)->shared_raw[i]) >> PAGE_SHIFT))
39 #define gnttab_shared_gmfn(d, t, i) \
40 (mfn_to_gmfn(d, gnttab_shared_mfn(d, t, i)))
43 #define gnttab_status_mfn(t, i) \
44 ((virt_to_maddr((t)->status[i]) >> PAGE_SHIFT))
46 #define gnttab_status_gmfn(d, t, i) \
47 (mfn_to_gmfn(d, gnttab_status_mfn(t, i)))
49 #define gnttab_mark_dirty(d, f) paging_mark_dirty((d), (f))
51 static inline void gnttab_clear_flag(unsigned long nr, uint16_t *addr)
52 {
53 clear_bit(nr, (unsigned long *)addr);
54 }
56 /* Foreign mappings of HHVM-guest pages do not modify the type count. */
57 #define gnttab_host_mapping_get_page_type(op, ld, rd) \
58 (!((op)->flags & GNTMAP_readonly) && \
59 (((ld) == (rd)) || !paging_mode_external(rd)))
61 /* Done implicitly when page tables are destroyed. */
62 #define gnttab_release_host_mappings(domain) ( paging_mode_external(domain) )
64 static inline int replace_grant_supported(void)
65 {
66 return 1;
67 }
69 #endif /* __ASM_GRANT_TABLE_H__ */