aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/ia64/xc_dom_ia64_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxc/ia64/xc_dom_ia64_util.c')
-rw-r--r--tools/libxc/ia64/xc_dom_ia64_util.c196
1 files changed, 0 insertions, 196 deletions
diff --git a/tools/libxc/ia64/xc_dom_ia64_util.c b/tools/libxc/ia64/xc_dom_ia64_util.c
deleted file mode 100644
index bc83dbb841..0000000000
--- a/tools/libxc/ia64/xc_dom_ia64_util.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp>
- * VA Linux Systems Japan K.K.
- *
- */
-
-#include <assert.h>
-#include "xg_private.h"
-#include "xc_dom.h"
-#include "asm/dom_fw.h"
-#include "asm/dom_fw_common.h"
-#include "ia64/xc_dom_ia64_util.h"
-
-uint32_t
-xen_ia64_version(struct xc_dom_image *dom)
-{
- return xc_version(dom->xch, XENVER_version, NULL);
-}
-
-int
-xen_ia64_fpswa_revision(struct xc_dom_image *dom, unsigned int *revision)
-{
- int ret;
- DECLARE_HYPERCALL;
- DECLARE_HYPERCALL_BOUNCE(revision, sizeof(*revision), XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
-
- if (xc_hypercall_bounce_pre(dom->xch, revision) )
- {
- PERROR("Could not lock memory for xen fpswa hypercall");
- return -1;
- }
-
- hypercall.op = __HYPERVISOR_ia64_dom0vp_op;
- hypercall.arg[0] = IA64_DOM0VP_fpswa_revision;
- hypercall.arg[1] = HYPERCALL_BUFFER_AS_ARG(revision);
-
- ret = do_xen_hypercall(dom->xch, &hypercall);
-
- xc_hypercall_bounce_post(dom->xch, revision);
-
- return ret;
-}
-
-int xen_ia64_is_running_on_sim(struct xc_dom_image *dom)
-{
- /*
- * This is only used by dom_fw_init() as
- * "!xen_ia64_is_dom0() || xen_ia64_is_running_on_sim()".
- * So this doesn't affect the result.
- */
- return 0;
-}
-
-int
-xen_ia64_is_dom0(struct xc_dom_image *unused)
-{
- /* libxc is for non-dom0 domain builder */
- return 0;
-}
-
-void*
-xen_ia64_dom_fw_map(struct xc_dom_image *dom, unsigned long mpaddr)
-{
- unsigned long page_size = XC_DOM_PAGE_SIZE(dom);
- void* ret;
-
- ret = xc_map_foreign_range(dom->xch, dom->guest_domid,
- page_size, PROT_READ | PROT_WRITE,
- mpaddr / page_size);
- if (ret != NULL)
- ret = (void*)((unsigned long)ret | (mpaddr & (page_size - 1)));
-
- return ret;
-}
-
-void
-xen_ia64_dom_fw_unmap(struct xc_dom_image *dom, void *vaddr)
-{
- unsigned long page_size = XC_DOM_PAGE_SIZE(dom);
- munmap((void*)((unsigned long)vaddr & ~(page_size - 1)), page_size);
-}
-
-int
-xen_ia64_is_vcpu_allocated(struct xc_dom_image *dom, uint32_t vcpu)
-{
- // return d->vcpu[vcpu] != NULL;
-
- int rc;
- xc_vcpuinfo_t info;
- xc_interface *xch = dom->xch;
-
- rc = xc_vcpu_getinfo(xch, dom->guest_domid,
- vcpu, &info);
- if (rc == 0)
- return 1;
-
- if (errno != ESRCH)
- PERROR("Could not get vcpu info");
- return 0;
-}
-
-int
-xen_ia64_dom_fw_setup(struct xc_dom_image *d, uint64_t brkimm,
- unsigned long bp_mpa, unsigned long maxmem)
-{
- int rc = 0;
- void *imva_hypercall_base = NULL;
- struct fw_tables *fw_tables = NULL;
- struct fake_acpi_tables *imva = NULL;
- struct xen_ia64_boot_param *bp = NULL;
-
- BUILD_BUG_ON(sizeof(struct fw_tables) >
- (FW_TABLES_END_PADDR_MIN - FW_TABLES_BASE_PADDR));
-
- /* Create page for hypercalls. */
- imva_hypercall_base = xen_ia64_dom_fw_map(d, FW_HYPERCALL_BASE_PADDR);
- if (imva_hypercall_base == NULL) {
- rc = -errno;
- goto out;
- }
-
- /* Create page for FW tables. */
- fw_tables = (struct fw_tables*)xen_ia64_dom_fw_map(d, FW_TABLES_BASE_PADDR);
- if (fw_tables == NULL) {
- rc = -errno;
- goto out;
- }
- memset(fw_tables, 0, FW_TABLES_END_PADDR_MIN - FW_TABLES_BASE_PADDR);
- BUILD_BUG_ON(FW_END_PADDR_MIN != FW_TABLES_END_PADDR_MIN);
- fw_tables->fw_tables_size = FW_TABLES_END_PADDR_MIN - FW_TABLES_BASE_PADDR;
- fw_tables->fw_end_paddr = FW_END_PADDR_MIN;
- fw_tables->fw_tables_end_paddr = FW_TABLES_END_PADDR_MIN;
- fw_tables->num_mds = 0;
-
- /* Create page for acpi tables. */
- imva = (struct fake_acpi_tables *)
- xen_ia64_dom_fw_map(d, FW_ACPI_BASE_PADDR);
- if (imva == NULL) {
- rc = -errno;
- goto out;
- }
- dom_fw_fake_acpi(d, imva);
-
- /* Create page for boot_param. */
- bp = xen_ia64_dom_fw_map(d, bp_mpa);
- if (bp == NULL) {
- rc = -errno;
- goto out;
- }
- rc = dom_fw_init(d, brkimm, bp, fw_tables,
- (unsigned long)imva_hypercall_base, maxmem);
- BUG_ON(fw_tables->fw_tables_size < sizeof(*fw_tables) +
- sizeof(fw_tables->efi_memmap[0]) * fw_tables->num_mds);
-
- /* clear domain builder internal use member */
- fw_tables->fw_tables_size = 0;
- fw_tables->fw_end_paddr = 0;
- fw_tables->fw_tables_end_paddr = 0;
- fw_tables->num_mds = 0;
-
- out:
- if (imva_hypercall_base != NULL)
- xen_ia64_dom_fw_unmap(d, imva_hypercall_base);
- if (fw_tables != NULL)
- xen_ia64_dom_fw_unmap(d, fw_tables);
- if (imva != NULL)
- xen_ia64_dom_fw_unmap(d, imva);
- if (bp != NULL)
- xen_ia64_dom_fw_unmap(d, bp);
-
- return rc;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */