ia64/xen-unstable

view xen/include/xen/elf.h @ 19800:78962f85c562

IOMMU: Add two generic functions to vendor neutral interface

Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 19 08:41:50 2009 +0100 (2009-06-19)
parents 7df072566b8c
children
line source
1 /*
2 * Copyright (c) 1995, 1996 Erik Theisen. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * 3. The name of the author may not be used to endorse or promote products
13 * derived from this software without specific prior written permission
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
27 #ifndef __XEN_ELF_H__
28 #define __XEN_ELF_H__
30 #include <xen/elfstructs.h>
32 #define ELFNOTE_ALIGN(_n_) (((_n_)+3)&~3)
33 #define ELFNOTE_NAME(_n_) ((char*)(_n_) + sizeof(*(_n_)))
34 #define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + ELFNOTE_ALIGN((_n_)->namesz))
35 #define ELFNOTE_NEXT(_n_) ((Elf_Note *)(ELFNOTE_DESC(_n_) + ELFNOTE_ALIGN((_n_)->descsz)))
37 struct domain_setup_info;
38 extern int loadelfimage(struct domain_setup_info *);
39 extern int parseelfimage(struct domain_setup_info *);
41 extern unsigned long long xen_elfnote_numeric(struct domain_setup_info *dsi,
42 int type, int *defined);
43 extern const char *xen_elfnote_string(struct domain_setup_info *dsi, int type);
45 #ifdef CONFIG_COMPAT
46 extern int elf32_sanity_check(const Elf32_Ehdr *ehdr);
47 extern int loadelf32image(struct domain_setup_info *);
48 extern int parseelf32image(struct domain_setup_info *);
49 extern unsigned long long xen_elf32note_numeric(struct domain_setup_info *,
50 int type, int *defined);
51 extern const char *xen_elf32note_string(struct domain_setup_info *, int type);
52 #endif
54 #ifdef Elf_Ehdr
55 extern int elf_sanity_check(const Elf_Ehdr *ehdr);
56 #endif
58 #endif /* __XEN_ELF_H__ */