[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XenPPC] [xenppc-unstable] [POWERPC][XEN] Merge with xen-unstable.hg.
# HG changeset patch # User Hollis Blanchard <hollisb@xxxxxxxxxx> # Date 1172880338 21600 # Node ID 736f2d6d7b091b2cdfb36421644ac11008ae0a6b # Parent 9fe6fe88a6a1a2886c24f2af764d663c05afda55 # Parent fdb3c96eba0f8d898dd5e734598ddc671114f1a1 [POWERPC][XEN] Merge with xen-unstable.hg. Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> --- linux-2.6-xen-sparse/arch/ia64/hp/sim/Makefile | 18 linux-2.6-xen-sparse/drivers/char/tpm/tpm.c | 1222 -- linux-2.6-xen-sparse/include/asm-i386/a.out.h | 26 linux-2.6-xen-sparse/include/linux/pfn.h | 9 tools/libxc/xc_linux_build.c | 1320 -- tools/libxc/xc_load_bin.c | 306 tools/libxc/xc_load_elf.c | 684 - xen/common/elf.c | 520 - xen/include/asm-ia64/kexec.h | 25 xen/include/asm-ia64/linux/asm/percpu.h | 72 xen/include/asm-powerpc/kexec.h | 25 xen/include/asm-x86/kexec.h | 20 xen/include/asm-x86/x86_32/kexec.h | 39 xen/include/asm-x86/x86_64/kexec.h | 38 .hgignore | 2 README | 2 buildconfigs/linux-defconfig_xen0_ia64 | 219 buildconfigs/linux-defconfig_xenU_ia64 | 192 buildconfigs/linux-defconfig_xen_ia64 | 210 docs/misc/dump-core-format.txt | 225 docs/xen-api/xenapi-datamodel.tex | 4514 ++++++---- extras/mini-os/Makefile | 8 extras/mini-os/arch/ia64/Makefile | 56 extras/mini-os/arch/ia64/__divdi3.S | 141 extras/mini-os/arch/ia64/__udivdi3.S | 142 extras/mini-os/arch/ia64/__umoddi3.S | 154 extras/mini-os/arch/ia64/arch.mk | 5 extras/mini-os/arch/ia64/common.c | 236 extras/mini-os/arch/ia64/debug.c | 179 extras/mini-os/arch/ia64/efi.c | 237 extras/mini-os/arch/ia64/fw.S | 519 + extras/mini-os/arch/ia64/gen_off.c | 177 extras/mini-os/arch/ia64/ia64.S | 224 extras/mini-os/arch/ia64/ivt.S | 865 + extras/mini-os/arch/ia64/minios-ia64.lds | 54 extras/mini-os/arch/ia64/mm.c | 136 extras/mini-os/arch/ia64/sal.c | 103 extras/mini-os/arch/ia64/sched.c | 74 extras/mini-os/arch/ia64/time.c | 280 extras/mini-os/arch/ia64/xencomm.c | 256 extras/mini-os/arch/x86/Makefile | 6 extras/mini-os/arch/x86/arch.mk | 15 extras/mini-os/arch/x86/mm.c | 43 extras/mini-os/gnttab.c | 5 extras/mini-os/include/ia64/arch_mm.h | 36 extras/mini-os/include/ia64/arch_sched.h | 91 extras/mini-os/include/ia64/arch_spinlock.h | 61 extras/mini-os/include/ia64/asm.h | 18 extras/mini-os/include/ia64/atomic.h | 508 + extras/mini-os/include/ia64/efi.h | 396 extras/mini-os/include/ia64/endian.h | 75 extras/mini-os/include/ia64/hypercall-ia64.h | 226 extras/mini-os/include/ia64/ia64_cpu.h | 776 + extras/mini-os/include/ia64/ia64_fpu.h | 99 extras/mini-os/include/ia64/os.h | 319 extras/mini-os/include/ia64/page.h | 106 extras/mini-os/include/ia64/pal.h | 87 extras/mini-os/include/ia64/privop.h | 97 extras/mini-os/include/ia64/sal.h | 188 extras/mini-os/include/ia64/traps.h | 48 extras/mini-os/include/mm.h | 1 extras/mini-os/minios.mk | 17 extras/mini-os/mm.c | 2 extras/mini-os/netfront.c | 4 extras/mini-os/xenbus/xenbus.c | 2 linux-2.6-xen-sparse/arch/i386/kernel/Makefile | 1 linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S | 22 linux-2.6-xen-sparse/arch/i386/kernel/fixup.c | 1 linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S | 5 linux-2.6-xen-sparse/arch/i386/kernel/process-xen.c | 10 linux-2.6-xen-sparse/arch/i386/kernel/setup-xen.c | 38 linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c | 30 linux-2.6-xen-sparse/arch/i386/mach-xen/setup.c | 2 linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c | 2 linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c | 1 linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c | 3 linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c | 73 linux-2.6-xen-sparse/arch/ia64/kernel/setup.c | 60 linux-2.6-xen-sparse/arch/ia64/oprofile/oprofile_perfmon.h | 2 linux-2.6-xen-sparse/arch/ia64/pci/pci.c | 836 + linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S | 1 linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c | 6 linux-2.6-xen-sparse/arch/ia64/xen/mem.c | 1 linux-2.6-xen-sparse/arch/ia64/xen/util.c | 13 linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c | 3 linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c | 1 linux-2.6-xen-sparse/arch/ia64/xen/xenentry.S | 18 linux-2.6-xen-sparse/arch/ia64/xen/xenivt.S | 2 linux-2.6-xen-sparse/arch/ia64/xen/xenminstate.h | 2 linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S | 1 linux-2.6-xen-sparse/arch/x86_64/kernel/Makefile | 1 linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c | 11 linux-2.6-xen-sparse/arch/x86_64/kernel/early_printk-xen.c | 12 linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S | 4 linux-2.6-xen-sparse/arch/x86_64/kernel/genapic_xen.c | 1 linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S | 8 linux-2.6-xen-sparse/arch/x86_64/kernel/mpparse-xen.c | 2 linux-2.6-xen-sparse/arch/x86_64/kernel/process-xen.c | 10 linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c | 15 linux-2.6-xen-sparse/arch/x86_64/kernel/x8664_ksyms-xen.c | 1 linux-2.6-xen-sparse/arch/x86_64/mm/fault-xen.c | 3 linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c | 26 linux-2.6-xen-sparse/drivers/char/tpm/Kconfig | 2 linux-2.6-xen-sparse/drivers/char/tpm/tpm.h | 24 linux-2.6-xen-sparse/drivers/char/tpm/tpm_vtpm.c | 3 linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c | 2 linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c | 7 linux-2.6-xen-sparse/drivers/xen/balloon/sysfs.c | 1 linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c | 5 linux-2.6-xen-sparse/drivers/xen/blkback/common.h | 3 linux-2.6-xen-sparse/drivers/xen/blkback/interface.c | 14 linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c | 17 linux-2.6-xen-sparse/drivers/xen/blkfront/block.h | 1 linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c | 11 linux-2.6-xen-sparse/drivers/xen/blktap/common.h | 3 linux-2.6-xen-sparse/drivers/xen/blktap/interface.c | 14 linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c | 108 linux-2.6-xen-sparse/drivers/xen/char/mem.c | 1 linux-2.6-xen-sparse/drivers/xen/console/console.c | 1 linux-2.6-xen-sparse/drivers/xen/core/cpu_hotplug.c | 38 linux-2.6-xen-sparse/drivers/xen/core/evtchn.c | 128 linux-2.6-xen-sparse/drivers/xen/core/gnttab.c | 259 linux-2.6-xen-sparse/drivers/xen/core/hypervisor_sysfs.c | 1 linux-2.6-xen-sparse/drivers/xen/core/machine_reboot.c | 122 linux-2.6-xen-sparse/drivers/xen/core/reboot.c | 21 linux-2.6-xen-sparse/drivers/xen/core/smpboot.c | 15 linux-2.6-xen-sparse/drivers/xen/core/xen_proc.c | 1 linux-2.6-xen-sparse/drivers/xen/core/xen_sysfs.c | 1 linux-2.6-xen-sparse/drivers/xen/evtchn/evtchn.c | 1 linux-2.6-xen-sparse/drivers/xen/fbfront/xenkbd.c | 103 linux-2.6-xen-sparse/drivers/xen/netback/common.h | 1 linux-2.6-xen-sparse/drivers/xen/netback/interface.c | 26 linux-2.6-xen-sparse/drivers/xen/netback/loopback.c | 1 linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c | 2 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 7 linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c | 1 linux-2.6-xen-sparse/drivers/xen/tpmback/common.h | 5 linux-2.6-xen-sparse/drivers/xen/tpmback/interface.c | 14 linux-2.6-xen-sparse/drivers/xen/util.c | 32 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_backend_client.c | 16 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c | 27 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.h | 2 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c | 1 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c | 103 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h | 1 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypervisor.h | 8 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/irqflags.h | 17 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/maddr.h | 25 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h | 57 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h | 7 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h | 27 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h | 38 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/swiotlb.h | 2 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/synch_bitops.h | 2 linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/system.h | 3 linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h | 2 linux-2.6-xen-sparse/include/asm-ia64/hw_irq.h | 5 linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h | 1 linux-2.6-xen-sparse/include/asm-ia64/maddr.h | 3 linux-2.6-xen-sparse/include/asm-ia64/page.h | 45 linux-2.6-xen-sparse/include/asm-ia64/swiotlb.h | 4 linux-2.6-xen-sparse/include/asm-ia64/synch_bitops.h | 2 linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/irq.h | 1 linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/irqflags.h | 17 linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/maddr.h | 15 linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h | 28 linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h | 62 linux-2.6-xen-sparse/include/xen/cpu_hotplug.h | 14 linux-2.6-xen-sparse/include/xen/driver_util.h | 5 linux-2.6-xen-sparse/include/xen/evtchn.h | 1 linux-2.6-xen-sparse/include/xen/gnttab.h | 14 linux-2.6-xen-sparse/include/xen/pcifront.h | 1 linux-2.6-xen-sparse/include/xen/xen_proc.h | 1 linux-2.6-xen-sparse/net/core/skbuff.c | 46 patches/linux-2.6.18/series | 1 patches/linux-2.6.18/softlockup-no-idle-hz.patch | 32 patches/linux-2.6.18/x86-elfnote-as-preprocessor-macro.patch | 5 tools/blktap/drivers/Makefile | 16 tools/blktap/drivers/blktapctrl.c | 2 tools/blktap/drivers/block-aio.c | 147 tools/blktap/drivers/block-qcow.c | 608 - tools/blktap/drivers/block-ram.c | 133 tools/blktap/drivers/block-sync.c | 105 tools/blktap/drivers/block-vmdk.c | 110 tools/blktap/drivers/img2qcow.c | 28 tools/blktap/drivers/qcow2raw.c | 75 tools/blktap/drivers/tapdisk.c | 441 tools/blktap/drivers/tapdisk.h | 87 tools/blktap/lib/blktaplib.h | 14 tools/blktap/lib/xenbus.c | 7 tools/blktap/lib/xs_api.c | 8 tools/check/check_crypto_lib | 3 tools/check/check_zlib_lib | 4 tools/console/daemon/io.c | 8 tools/examples/block | 8 tools/examples/init.d/xendomains | 31 tools/examples/vif-bridge | 7 tools/examples/xen-hotplug-common.sh | 5 tools/firmware/hvmloader/acpi/build.c | 81 tools/firmware/hvmloader/acpi/dsdt.asl | 26 tools/firmware/hvmloader/acpi/dsdt.c | 859 - tools/firmware/hvmloader/config.h | 2 tools/firmware/rombios/32bit/Makefile | 2 tools/firmware/rombios/32bit/tcgbios/Makefile | 2 tools/firmware/rombios/32bit/tcgbios/tcgbios.c | 14 tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c | 52 tools/firmware/rombios/32bit/util.h | 15 tools/firmware/rombios/rombios.c | 199 tools/ioemu/hw/cirrus_vga.c | 4 tools/ioemu/hw/ide.c | 129 tools/ioemu/hw/rtl8139.c | 6 tools/ioemu/hw/tpm_tis.c | 16 tools/ioemu/vl.c | 91 tools/ioemu/xenstore.c | 51 tools/libfsimage/Makefile | 2 tools/libfsimage/common/fsimage.c | 4 tools/libfsimage/common/fsimage.h | 2 tools/libfsimage/common/fsimage_grub.c | 82 tools/libfsimage/common/fsimage_grub.h | 7 tools/libfsimage/common/fsimage_plugin.c | 4 tools/libfsimage/common/fsimage_plugin.h | 2 tools/libfsimage/common/fsimage_priv.h | 2 tools/libfsimage/common/mapfile-GNU | 1 tools/libfsimage/common/mapfile-SunOS | 1 tools/libfsimage/ext2fs-lib/ext2fs-lib.c | 2 tools/libfsimage/ext2fs/fsys_ext2fs.c | 91 tools/libfsimage/fat/Makefile | 13 tools/libfsimage/fat/fat.h | 100 tools/libfsimage/fat/fsys_fat.c | 485 + tools/libfsimage/iso9660/Makefile | 15 tools/libfsimage/iso9660/fsys_iso9660.c | 463 + tools/libfsimage/iso9660/iso9660.h | 219 tools/libfsimage/reiserfs/fsys_reiserfs.c | 79 tools/libfsimage/ufs/fsys_ufs.c | 2 tools/libxc/Makefile | 9 tools/libxc/ia64/xc_ia64_hvm_build.c | 14 tools/libxc/xc_core.c | 774 + tools/libxc/xc_core.h | 165 tools/libxc/xc_core_ia64.c | 315 tools/libxc/xc_core_ia64.h | 60 tools/libxc/xc_core_x86.c | 136 tools/libxc/xc_core_x86.h | 64 tools/libxc/xc_dom.h | 46 tools/libxc/xc_dom_binloader.c | 73 tools/libxc/xc_dom_boot.c | 458 - tools/libxc/xc_dom_compat_linux.c | 150 tools/libxc/xc_dom_core.c | 647 - tools/libxc/xc_dom_elfloader.c | 349 tools/libxc/xc_dom_ia64.c | 50 tools/libxc/xc_dom_x86.c | 429 tools/libxc/xc_domain.c | 27 tools/libxc/xc_efi.h | 68 tools/libxc/xc_hvm_build.c | 40 tools/libxc/xc_hvm_restore.c | 80 tools/libxc/xc_hvm_save.c | 137 tools/libxc/xc_linux.c | 35 tools/libxc/xc_linux_restore.c | 203 tools/libxc/xc_linux_save.c | 152 tools/libxc/xc_pagetab.c | 4 tools/libxc/xc_private.c | 22 tools/libxc/xc_private.h | 10 tools/libxc/xc_ptrace_core.c | 599 + tools/libxc/xc_resume.c | 8 tools/libxc/xc_solaris.c | 6 tools/libxc/xenctrl.h | 23 tools/libxc/xenguest.h | 19 tools/libxc/xg_private.c | 117 tools/libxc/xg_private.h | 97 tools/libxc/xg_save_restore.h | 21 tools/libxen/include/xen_console.h | 56 tools/libxen/include/xen_host.h | 65 tools/libxen/include/xen_host_cpu.h | 43 tools/libxen/include/xen_host_metrics.h | 18 tools/libxen/include/xen_internal.h | 5 tools/libxen/include/xen_network.h | 36 tools/libxen/include/xen_pbd.h | 9 tools/libxen/include/xen_pif.h | 9 tools/libxen/include/xen_pif_metrics.h | 18 tools/libxen/include/xen_string_set.h | 47 tools/libxen/include/xen_vbd.h | 129 tools/libxen/include/xen_vbd_metrics.h | 190 tools/libxen/include/xen_vbd_metrics_decl.h | 30 tools/libxen/include/xen_vbd_type.h | 77 tools/libxen/include/xen_vbd_type_internal.h | 37 tools/libxen/include/xen_vdi.h | 7 tools/libxen/include/xen_vif.h | 109 tools/libxen/include/xen_vif_metrics.h | 190 tools/libxen/include/xen_vif_metrics_decl.h | 30 tools/libxen/include/xen_vm.h | 44 tools/libxen/include/xen_vm_guest_metrics.h | 226 tools/libxen/include/xen_vm_guest_metrics_decl.h | 30 tools/libxen/include/xen_vm_metrics.h | 18 tools/libxen/src/xen_common.c | 4 tools/libxen/src/xen_console.c | 118 tools/libxen/src/xen_host.c | 155 tools/libxen/src/xen_host_cpu.c | 87 tools/libxen/src/xen_host_metrics.c | 36 tools/libxen/src/xen_network.c | 78 tools/libxen/src/xen_pbd.c | 14 tools/libxen/src/xen_pif.c | 14 tools/libxen/src/xen_pif_metrics.c | 36 tools/libxen/src/xen_string_set.c | 47 tools/libxen/src/xen_string_set.h | 47 tools/libxen/src/xen_vbd.c | 300 tools/libxen/src/xen_vbd_metrics.c | 162 tools/libxen/src/xen_vbd_type.c | 81 tools/libxen/src/xen_vdi.c | 12 tools/libxen/src/xen_vif.c | 253 tools/libxen/src/xen_vif_metrics.c | 162 tools/libxen/src/xen_vm.c | 109 tools/libxen/src/xen_vm_guest_metrics.c | 251 tools/libxen/src/xen_vm_metrics.c | 36 tools/libxen/test/test_bindings.c | 103 tools/misc/Makefile | 6 tools/misc/sxp-pretty | 45 tools/misc/xen-detect.c | 108 tools/pygrub/src/fsimage/fsimage.c | 14 tools/python/scripts/test_vm_create.py | 2 tools/python/scripts/xapi.py | 4 tools/python/scripts/xapi.vdicfg.py | 2 tools/python/xen/lowlevel/xc/xc.c | 103 tools/python/xen/util/xmlrpclib2.py | 7 tools/python/xen/xend/XendAPI.py | 373 tools/python/xen/xend/XendAPIVersion.py | 22 tools/python/xen/xend/XendCheckpoint.py | 46 tools/python/xen/xend/XendConfig.py | 75 tools/python/xen/xend/XendConstants.py | 10 tools/python/xen/xend/XendDomain.py | 72 tools/python/xen/xend/XendDomainInfo.py | 123 tools/python/xen/xend/XendNetwork.py | 46 tools/python/xen/xend/XendNode.py | 75 tools/python/xen/xend/XendQCoWStorageRepo.py | 2 tools/python/xen/xend/image.py | 5 tools/python/xen/xend/server/BlktapController.py | 62 tools/python/xen/xend/server/DevController.py | 52 tools/python/xen/xend/server/SrvDomainDir.py | 2 tools/python/xen/xend/server/XMLRPCServer.py | 2 tools/python/xen/xm/main.py | 76 tools/python/xen/xm/messages/en/xen-xm.po | 42 tools/security/xensec_ezpolicy | 6 tools/tests/test_x86_emulator.c | 48 tools/xcutils/readnotes.c | 168 tools/xcutils/xc_restore.c | 15 tools/xenfb/vncfb.c | 10 tools/xenstat/libxenstat/Makefile | 31 tools/xenstat/libxenstat/src/xenstat.c | 289 tools/xenstat/libxenstat/src/xenstat.h | 5 tools/xenstat/libxenstat/src/xenstat_linux.c | 265 tools/xenstat/libxenstat/src/xenstat_priv.h | 101 tools/xenstat/libxenstat/src/xenstat_solaris.c | 431 tools/xenstat/xentop/xentop.c | 22 tools/xenstore/xenstored_domain.c | 51 tools/xenstore/xenstored_transaction.c | 16 tools/xenstore/xenstored_transaction.h | 3 tools/xenstore/xenstored_watch.c | 11 tools/xenstore/xenstored_watch.h | 2 tools/xentrace/formats | 76 tools/xentrace/xentrace.8 | 54 tools/xentrace/xentrace.c | 29 tools/xentrace/xentrace_format | 10 tools/xm-test/tests/security-acm/06_security-acm_dom_block_attach.py | 18 unmodified_drivers/linux-2.6/overrides.mk | 5 unmodified_drivers/linux-2.6/platform-pci/evtchn.c | 1 unmodified_drivers/linux-2.6/platform-pci/platform-compat.c | 7 unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 35 unmodified_drivers/linux-2.6/platform-pci/xen_support.c | 17 xen/acm/acm_chinesewall_hooks.c | 15 xen/acm/acm_core.c | 8 xen/acm/acm_simple_type_enforcement_hooks.c | 172 xen/arch/ia64/Rules.mk | 6 xen/arch/ia64/asm-offsets.c | 2 xen/arch/ia64/asm-xsi-offsets.c | 2 xen/arch/ia64/linux-xen/head.S | 16 xen/arch/ia64/linux-xen/mca.c | 82 xen/arch/ia64/linux-xen/perfmon.c | 12 xen/arch/ia64/linux-xen/setup.c | 64 xen/arch/ia64/vmx/mmio.c | 53 xen/arch/ia64/vmx/optvfault.S | 75 xen/arch/ia64/vmx/vlsapic.c | 33 xen/arch/ia64/vmx/vmmu.c | 56 xen/arch/ia64/vmx/vmx_entry.S | 332 xen/arch/ia64/vmx/vmx_hypercall.c | 3 xen/arch/ia64/vmx/vmx_init.c | 14 xen/arch/ia64/vmx/vmx_interrupt.c | 15 xen/arch/ia64/vmx/vmx_ivt.S | 295 xen/arch/ia64/vmx/vmx_minstate.h | 1 xen/arch/ia64/vmx/vmx_phy_mode.c | 2 xen/arch/ia64/vmx/vmx_process.c | 110 xen/arch/ia64/vmx/vmx_support.c | 9 xen/arch/ia64/vmx/vmx_vcpu.c | 44 xen/arch/ia64/vmx/vmx_virt.c | 93 xen/arch/ia64/vmx/vtlb.c | 12 xen/arch/ia64/xen/dom0_ops.c | 40 xen/arch/ia64/xen/dom_fw.c | 23 xen/arch/ia64/xen/domain.c | 220 xen/arch/ia64/xen/faults.c | 28 xen/arch/ia64/xen/flushtlb.c | 42 xen/arch/ia64/xen/fw_emul.c | 77 xen/arch/ia64/xen/hypercall.c | 4 xen/arch/ia64/xen/hyperprivop.S | 39 xen/arch/ia64/xen/mm.c | 48 xen/arch/ia64/xen/pcdp.c | 2 xen/arch/ia64/xen/regionreg.c | 6 xen/arch/ia64/xen/tlb_track.c | 6 xen/arch/ia64/xen/vcpu.c | 73 xen/arch/ia64/xen/vhpt.c | 8 xen/arch/ia64/xen/xensetup.c | 24 xen/arch/powerpc/audit.c | 2 xen/arch/powerpc/machine_kexec.c | 5 xen/arch/powerpc/mm.c | 30 xen/arch/x86/crash.c | 3 xen/arch/x86/domain.c | 104 xen/arch/x86/domain_build.c | 33 xen/arch/x86/domctl.c | 120 xen/arch/x86/extable.c | 13 xen/arch/x86/hvm/Makefile | 1 xen/arch/x86/hvm/hpet.c | 2 xen/arch/x86/hvm/hvm.c | 96 xen/arch/x86/hvm/i8254.c | 2 xen/arch/x86/hvm/intercept.c | 176 xen/arch/x86/hvm/io.c | 59 xen/arch/x86/hvm/irq.c | 9 xen/arch/x86/hvm/platform.c | 166 xen/arch/x86/hvm/pmtimer.c | 75 xen/arch/x86/hvm/rtc.c | 2 xen/arch/x86/hvm/save.c | 229 xen/arch/x86/hvm/svm/intr.c | 9 xen/arch/x86/hvm/svm/svm.c | 262 xen/arch/x86/hvm/svm/vmcb.c | 12 xen/arch/x86/hvm/vioapic.c | 2 xen/arch/x86/hvm/vlapic.c | 26 xen/arch/x86/hvm/vmx/intr.c | 3 xen/arch/x86/hvm/vmx/vmcs.c | 23 xen/arch/x86/hvm/vmx/vmx.c | 253 xen/arch/x86/hvm/vpic.c | 2 xen/arch/x86/machine_kexec.c | 53 xen/arch/x86/mm.c | 344 xen/arch/x86/mm/Makefile | 3 xen/arch/x86/mm/p2m.c | 703 + xen/arch/x86/mm/paging.c | 143 xen/arch/x86/mm/shadow/common.c | 1510 +-- xen/arch/x86/mm/shadow/multi.c | 533 - xen/arch/x86/mm/shadow/multi.h | 2 xen/arch/x86/mm/shadow/page-guest32.h | 5 xen/arch/x86/mm/shadow/private.h | 127 xen/arch/x86/mm/shadow/types.h | 16 xen/arch/x86/setup.c | 15 xen/arch/x86/smp.c | 2 xen/arch/x86/sysctl.c | 1 xen/arch/x86/time.c | 4 xen/arch/x86/traps.c | 106 xen/arch/x86/x86_32/domain_page.c | 1 xen/arch/x86/x86_32/entry.S | 111 xen/arch/x86/x86_32/mm.c | 25 xen/arch/x86/x86_32/seg_fixup.c | 5 xen/arch/x86/x86_64/Makefile | 4 xen/arch/x86/x86_64/compat/Makefile | 2 xen/arch/x86/x86_64/compat/entry.S | 91 xen/arch/x86/x86_64/compat_kexec.S | 126 xen/arch/x86/x86_64/entry.S | 60 xen/arch/x86/x86_64/mm.c | 39 xen/arch/x86/x86_64/traps.c | 1 xen/arch/x86/x86_emulate.c | 93 xen/common/acm_ops.c | 46 xen/common/compat/grant_table.c | 3 xen/common/domain.c | 95 xen/common/domctl.c | 90 xen/common/event_channel.c | 18 xen/common/grant_table.c | 533 - xen/common/kexec.c | 1 xen/common/keyhandler.c | 4 xen/common/libelf/libelf-dominfo.c | 644 - xen/common/libelf/libelf-loader.c | 127 xen/common/libelf/libelf-private.h | 26 xen/common/libelf/libelf-relocate.c | 375 xen/common/libelf/libelf-tools.c | 164 xen/common/memory.c | 38 xen/common/page_alloc.c | 580 - xen/common/sched_sedf.c | 8 xen/common/schedule.c | 4 xen/common/sysctl.c | 11 xen/common/trace.c | 2 xen/drivers/char/console.c | 14 xen/include/acm/acm_hooks.h | 6 xen/include/asm-ia64/bug.h | 6 xen/include/asm-ia64/config.h | 6 xen/include/asm-ia64/dom_fw.h | 3 xen/include/asm-ia64/domain.h | 6 xen/include/asm-ia64/flushtlb.h | 1 xen/include/asm-ia64/grant_table.h | 43 xen/include/asm-ia64/linux-xen/asm/README.origin | 1 xen/include/asm-ia64/linux-xen/asm/io.h | 2 xen/include/asm-ia64/linux-xen/asm/pal.h | 3 xen/include/asm-ia64/linux-xen/asm/percpu.h | 77 xen/include/asm-ia64/linux-xen/linux/efi.h | 4 xen/include/asm-ia64/linux/asm/README.origin | 1 xen/include/asm-ia64/mm.h | 6 xen/include/asm-ia64/vcpu.h | 1 xen/include/asm-ia64/vmmu.h | 3 xen/include/asm-ia64/vmx.h | 28 xen/include/asm-ia64/vmx_mm_def.h | 4 xen/include/asm-ia64/vmx_platform.h | 5 xen/include/asm-ia64/vmx_vcpu.h | 21 xen/include/asm-ia64/vmx_vpd.h | 10 xen/include/asm-ia64/xenkregs.h | 4 xen/include/asm-powerpc/bug.h | 6 xen/include/asm-powerpc/config.h | 9 xen/include/asm-powerpc/grant_table.h | 6 xen/include/asm-powerpc/mm.h | 3 xen/include/asm-powerpc/platform.h | 28 xen/include/asm-x86/bug.h | 21 xen/include/asm-x86/config.h | 6 xen/include/asm-x86/cpufeature.h | 1 xen/include/asm-x86/domain.h | 99 xen/include/asm-x86/event.h | 7 xen/include/asm-x86/grant_table.h | 6 xen/include/asm-x86/hvm/hvm.h | 22 xen/include/asm-x86/hvm/io.h | 3 xen/include/asm-x86/hvm/support.h | 40 xen/include/asm-x86/hvm/trace.h | 44 xen/include/asm-x86/hvm/vcpu.h | 2 xen/include/asm-x86/hvm/vlapic.h | 2 xen/include/asm-x86/hvm/vmx/vmx.h | 6 xen/include/asm-x86/hvm/vpt.h | 14 xen/include/asm-x86/mm.h | 68 xen/include/asm-x86/p2m.h | 142 xen/include/asm-x86/page.h | 9 xen/include/asm-x86/paging.h | 367 xen/include/asm-x86/perfc_defn.h | 1 xen/include/asm-x86/processor.h | 5 xen/include/asm-x86/shadow.h | 385 xen/include/asm-x86/x86_32/bug.h | 28 xen/include/asm-x86/x86_64/bug.h | 28 xen/include/asm-x86/x86_64/page.h | 16 xen/include/asm-x86/x86_emulate.h | 24 xen/include/public/arch-ia64.h | 21 xen/include/public/arch-powerpc.h | 2 xen/include/public/arch-x86/xen.h | 2 xen/include/public/domctl.h | 33 xen/include/public/elfnote.h | 53 xen/include/public/grant_table.h | 19 xen/include/public/hvm/ioreq.h | 20 xen/include/public/hvm/save.h | 25 xen/include/public/libelf.h | 22 xen/include/public/trace.h | 35 xen/include/xen/grant_table.h | 64 xen/include/xen/kexec.h | 1 xen/include/xen/lib.h | 27 xen/include/xen/mm.h | 29 xen/include/xen/perfc.h | 1 xen/include/xen/rcupdate.h | 53 xen/include/xen/sched.h | 60 552 files changed, 33119 insertions(+), 16414 deletions(-) diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 .hgignore --- a/.hgignore Fri Mar 02 17:08:04 2007 -0600 +++ b/.hgignore Fri Mar 02 18:05:38 2007 -0600 @@ -107,6 +107,7 @@ ^tools/firmware/rombios/BIOS-bochs-[^/]*$ ^tools/firmware/rombios/_rombios[^/]*_\.c$ ^tools/firmware/rombios/rombios[^/]*\.s$ +^tools/firmware/rombios/32bit/32bitbios_flat\.h$ ^tools/firmware/vmxassist/gen$ ^tools/firmware/vmxassist/offsets\.h$ ^tools/firmware/vmxassist/vmxassist$ @@ -137,6 +138,7 @@ ^tools/misc/miniterm/miniterm$ ^tools/misc/xc_shadow$ ^tools/misc/xen_cpuperf$ +^tools/misc/xen-detect$ ^tools/misc/xenperf$ ^tools/pygrub/build/.*$ ^tools/python/build/.*$ diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 README --- a/README Fri Mar 02 17:08:04 2007 -0600 +++ b/README Fri Mar 02 18:05:38 2007 -0600 @@ -92,6 +92,8 @@ provided by your Linux distributor: * Development install of zlib (e.g., zlib-dev) * Development install of Python v2.3 or later (e.g., python-dev) * Development install of curses (e.g., libncurses-dev) + * Development install of openssl (e.g., openssl-dev) + * Development install of x11 (e.g. xorg-x11-dev) * bridge-utils package (/sbin/brctl) * iproute package (/sbin/ip) * hotplug or udev diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 buildconfigs/linux-defconfig_xen0_ia64 --- a/buildconfigs/linux-defconfig_xen0_ia64 Fri Mar 02 17:08:04 2007 -0600 +++ b/buildconfigs/linux-defconfig_xen0_ia64 Fri Mar 02 18:05:38 2007 -0600 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.29-xen0 -# Tue Nov 14 10:39:09 2006 +# Linux kernel version: 2.6.18-xen0 +# Mon Jan 29 10:16:18 2007 # # @@ -21,14 +21,16 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_CPUSETS is not set +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set +CONFIG_SYSCTL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_EXTRA_PASS=y @@ -40,11 +42,9 @@ CONFIG_FUTEX=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -55,7 +55,6 @@ CONFIG_MODULES=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y @@ -64,6 +63,7 @@ CONFIG_STOP_MACHINE=y # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers @@ -86,8 +86,10 @@ CONFIG_MMU=y CONFIG_MMU=y CONFIG_SWIOTLB=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_TIME_INTERPOLATION=y +CONFIG_DMI=y CONFIG_EFI=y CONFIG_GENERIC_IOMAP=y CONFIG_XEN=y @@ -96,6 +98,7 @@ CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_DMA_IS_DMA32=y +CONFIG_AUDIT_ARCH=y # CONFIG_IA64_GENERIC is not set CONFIG_IA64_DIG=y # CONFIG_IA64_HP_ZX1 is not set @@ -123,6 +126,7 @@ CONFIG_HOTPLUG_CPU=y CONFIG_HOTPLUG_CPU=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_SCHED_SMT is not set +# CONFIG_PERMIT_BSP_REMOVE is not set # CONFIG_PREEMPT is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -132,6 +136,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y @@ -163,6 +168,7 @@ CONFIG_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=y @@ -185,7 +191,7 @@ CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y CONFIG_XEN_PCIDEV_FRONTEND=y # CONFIG_XEN_PCIDEV_FE_DEBUG is not set -CONFIG_PCI_LEGACY_PROC=y +# CONFIG_PCIEPORTBUS is not set # CONFIG_PCI_DEBUG is not set # @@ -215,6 +221,8 @@ CONFIG_PACKET=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y @@ -229,7 +237,10 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set @@ -240,6 +251,9 @@ CONFIG_TCP_CONG_BIC=y # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y @@ -280,12 +294,12 @@ CONFIG_BRIDGE=y CONFIG_BRIDGE=y # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -314,6 +328,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -352,6 +367,7 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -463,6 +479,7 @@ CONFIG_SCSI_SAS_ATTRS=y # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_IPS is not set @@ -472,10 +489,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MOD CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +CONFIG_SCSI_SYM53C8XX_MMIO=y # CONFIG_SCSI_IPR is not set -CONFIG_SCSI_QLOGIC_FC=y -# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set CONFIG_SCSI_QLOGIC_1280=y # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_LPFC is not set @@ -488,7 +503,13 @@ CONFIG_SCSI_QLOGIC_1280=y # CONFIG_MD=y # CONFIG_BLK_DEV_MD is not set -# CONFIG_BLK_DEV_DM is not set +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m # # Fusion MPT device support @@ -607,6 +628,7 @@ CONFIG_TIGON3=y # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set +# CONFIG_MYRI10GE is not set # # Token Ring devices @@ -709,6 +731,7 @@ CONFIG_VT=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_COMPUTONE is not set # CONFIG_ROCKETPORT is not set @@ -722,6 +745,7 @@ CONFIG_SERIAL_NONSTANDARD=y # CONFIG_N_HDLC is not set # CONFIG_SPECIALIX is not set # CONFIG_SX is not set +# CONFIG_RIO is not set # CONFIG_STALDRV is not set # @@ -755,6 +779,8 @@ CONFIG_EFI_RTC=y # Ftape, the floppy tape device driver # CONFIG_AGP=y +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_VIA is not set CONFIG_AGP_I460=y CONFIG_DRM=y # CONFIG_DRM_TDFX is not set @@ -799,10 +825,10 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -821,9 +847,7 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -838,13 +862,13 @@ CONFIG_I2C_ALGOPCF=y # # Dallas's 1-wire bus # -# CONFIG_W1 is not set # # Hardware Monitoring support # CONFIG_HWMON=y # CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set @@ -873,10 +897,12 @@ CONFIG_HWMON=y # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set @@ -888,24 +914,25 @@ CONFIG_HWMON=y # # -# Multimedia Capabilities Port drivers -# - -# # Multimedia devices # CONFIG_VIDEO_DEV=y - -# -# Video For Linux -# - -# -# Video Adapters +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters # # CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set @@ -917,10 +944,40 @@ CONFIG_VIDEO_DEV=y # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CX88 is not set + +# +# Encoders and Decoders +# +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_CX2341X is not set +# CONFIG_VIDEO_CX25840 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set # CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_VIDEO_AUDIO_DECODER is not set -# CONFIG_VIDEO_DECODER is not set +# CONFIG_USB_W9968CF is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set # # Radio Adapters @@ -928,20 +985,24 @@ CONFIG_VIDEO_DEV=y # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set +# CONFIG_USB_DSBR is not set # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set @@ -953,7 +1014,6 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON_OLD is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_DEBUG=y @@ -972,6 +1032,7 @@ CONFIG_FB_RADEON_DEBUG=y # Console display driver support # CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE is not set @@ -1002,9 +1063,11 @@ CONFIG_SND_OSSEMUL=y CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set @@ -1025,6 +1088,7 @@ CONFIG_SND_MPU401=y # PCI devices # # CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set # CONFIG_SND_ALI5451 is not set CONFIG_SND_ATIIXP=y # CONFIG_SND_ATIIXP_MODEM is not set @@ -1037,6 +1101,18 @@ CONFIG_SND_ATIIXP=y # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set @@ -1057,6 +1133,7 @@ CONFIG_SND_FM801=y # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set @@ -1076,12 +1153,14 @@ CONFIG_SND_FM801=y # Open Sound System # CONFIG_SOUND_PRIME=y -# CONFIG_OBSOLETE_OSS_DRIVER is not set -# CONFIG_SOUND_FUSION is not set +# CONFIG_OSS_OBSOLETE_DRIVER is not set +# CONFIG_SOUND_BT878 is not set +# CONFIG_SOUND_ES1371 is not set # CONFIG_SOUND_ICH is not set # CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set +# CONFIG_SOUND_VIA82CXXX is not set # CONFIG_SOUND_TVMIXER is not set # @@ -1089,6 +1168,7 @@ CONFIG_SOUND_PRIME=y # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set @@ -1107,6 +1187,7 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set @@ -1117,7 +1198,6 @@ CONFIG_USB_UHCI_HCD=y # # USB Device Class drivers # -# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set @@ -1154,9 +1234,7 @@ CONFIG_USB_HIDDEV=y # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set @@ -1169,21 +1247,6 @@ CONFIG_USB_HIDDEV=y # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_PWC is not set # # USB Network Adapters @@ -1214,10 +1277,12 @@ CONFIG_USB_MON=y # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set @@ -1237,12 +1302,43 @@ CONFIG_USB_MON=y # CONFIG_MMC is not set # +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# # InfiniBand support # # CONFIG_INFINIBAND is not set # # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices # # @@ -1269,7 +1365,6 @@ CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y -CONFIG_XFS_EXPORT=y # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_SECURITY is not set # CONFIG_XFS_POSIX_ACL is not set @@ -1278,6 +1373,7 @@ CONFIG_XFS_EXPORT=y # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y CONFIG_AUTOFS_FS=y @@ -1312,7 +1408,6 @@ CONFIG_TMPFS=y CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1358,7 +1453,9 @@ CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=y # CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1437,9 +1534,11 @@ CONFIG_NLS_UTF8=y # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set +CONFIG_PLIST=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_IRQ_PER_CPU=y # # Instrumentation Support @@ -1452,14 +1551,19 @@ CONFIG_GENERIC_PENDING_IRQ=y # # CONFIG_PRINTK_TIME is not set CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set @@ -1513,7 +1617,6 @@ CONFIG_CRYPTO_DES=y # # CONFIG_XEN_UTIL is not set CONFIG_XEN_BALLOON=y -# CONFIG_XEN_DEVMEM is not set CONFIG_XEN_REBOOT=y # CONFIG_XEN_SMPBOOT is not set CONFIG_XEN_INTERFACE_VERSION=0x00030203 @@ -1539,6 +1642,7 @@ CONFIG_XEN_TPMDEV_BACKEND=m CONFIG_XEN_TPMDEV_BACKEND=m CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y +# CONFIG_XEN_FRAMEBUFFER is not set # CONFIG_XEN_SCRUB_PAGES is not set CONFIG_XEN_DISABLE_SERIAL=y CONFIG_XEN_SYSFS=y @@ -1547,3 +1651,4 @@ CONFIG_XEN_COMPAT_030002=y CONFIG_XEN_COMPAT_030002=y CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y CONFIG_NO_IDLE_HZ=y +CONFIG_XEN_DEVMEM=y diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 buildconfigs/linux-defconfig_xenU_ia64 --- a/buildconfigs/linux-defconfig_xenU_ia64 Fri Mar 02 17:08:04 2007 -0600 +++ b/buildconfigs/linux-defconfig_xenU_ia64 Fri Mar 02 18:05:38 2007 -0600 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.29-xenU -# Wed Oct 4 12:54:26 2006 +# Linux kernel version: 2.6.18-xenU +# Mon Jan 29 10:26:51 2007 # # @@ -21,13 +21,15 @@ CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set # CONFIG_CPUSETS is not set +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set +CONFIG_SYSCTL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -39,11 +41,9 @@ CONFIG_FUTEX=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -53,7 +53,6 @@ CONFIG_BASE_SMALL=0 # CONFIG_MODULES=y # CONFIG_MODULE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set @@ -61,6 +60,7 @@ CONFIG_OBSOLETE_MODPARM=y # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers @@ -83,8 +83,10 @@ CONFIG_MMU=y CONFIG_MMU=y CONFIG_SWIOTLB=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_TIME_INTERPOLATION=y +CONFIG_DMI=y CONFIG_EFI=y CONFIG_GENERIC_IOMAP=y CONFIG_XEN=y @@ -93,6 +95,7 @@ CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_DMA_IS_DMA32=y +CONFIG_AUDIT_ARCH=y # CONFIG_IA64_GENERIC is not set CONFIG_IA64_DIG=y # CONFIG_IA64_HP_ZX1 is not set @@ -117,9 +120,10 @@ CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_SMP=y CONFIG_NR_CPUS=16 -# CONFIG_HOTPLUG_CPU is not set +CONFIG_HOTPLUG_CPU=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_SCHED_SMT is not set +# CONFIG_PERMIT_BSP_REMOVE is not set # CONFIG_PREEMPT is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -129,6 +133,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y @@ -161,7 +166,9 @@ CONFIG_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set @@ -182,7 +189,7 @@ CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y CONFIG_XEN_PCIDEV_FRONTEND=y # CONFIG_XEN_PCIDEV_FE_DEBUG is not set -CONFIG_PCI_LEGACY_PROC=y +# CONFIG_PCIEPORTBUS is not set # CONFIG_PCI_DEBUG is not set # @@ -212,6 +219,8 @@ CONFIG_PACKET=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y @@ -226,7 +235,10 @@ CONFIG_IP_FIB_HASH=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set @@ -237,6 +249,9 @@ CONFIG_TCP_CONG_BIC=y # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -276,7 +291,6 @@ CONFIG_NETFILTER=y # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -305,6 +319,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -342,6 +357,7 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -399,6 +415,7 @@ CONFIG_SCSI_SAS_ATTRS=y # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_IPS is not set @@ -408,9 +425,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MOD CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +CONFIG_SCSI_SYM53C8XX_MMIO=y # CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_FC is not set CONFIG_SCSI_QLOGIC_1280=y # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_LPFC is not set @@ -532,6 +548,7 @@ CONFIG_TIGON3=y # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set +# CONFIG_MYRI10GE is not set # # Token Ring devices @@ -609,6 +626,7 @@ CONFIG_VT=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # @@ -616,7 +634,7 @@ CONFIG_HW_CONSOLE=y # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_ACPI=y +CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_NR_UARTS=8 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y @@ -653,6 +671,8 @@ CONFIG_EFI_RTC=y # Ftape, the floppy tape device driver # CONFIG_AGP=y +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_VIA is not set # CONFIG_AGP_I460 is not set CONFIG_DRM=y # CONFIG_DRM_TDFX is not set @@ -697,10 +717,10 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -719,9 +739,7 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -736,13 +754,13 @@ CONFIG_I2C_ALGOPCF=y # # Dallas's 1-wire bus # -# CONFIG_W1 is not set # # Hardware Monitoring support # CONFIG_HWMON=y # CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set @@ -771,10 +789,12 @@ CONFIG_HWMON=y # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set @@ -786,24 +806,25 @@ CONFIG_HWMON=y # # -# Multimedia Capabilities Port drivers -# - -# # Multimedia devices # CONFIG_VIDEO_DEV=y - -# -# Video For Linux -# - -# -# Video Adapters +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters # # CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set @@ -815,10 +836,40 @@ CONFIG_VIDEO_DEV=y # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CX88 is not set + +# +# Encoders and Decoders +# +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_CX2341X is not set +# CONFIG_VIDEO_CX25840 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set # CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_VIDEO_AUDIO_DECODER is not set -# CONFIG_VIDEO_DECODER is not set +# CONFIG_USB_W9968CF is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set # # Radio Adapters @@ -826,20 +877,24 @@ CONFIG_VIDEO_DEV=y # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set +# CONFIG_USB_DSBR is not set # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set @@ -851,7 +906,6 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON_OLD is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_DEBUG=y @@ -870,6 +924,7 @@ CONFIG_FB_RADEON_DEBUG=y # Console display driver support # CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE is not set @@ -900,9 +955,11 @@ CONFIG_SND_OSSEMUL=y CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set @@ -923,6 +980,7 @@ CONFIG_SND_AC97_BUS=y # PCI devices # # CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set @@ -980,6 +1038,7 @@ CONFIG_SND_FM801=y # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set @@ -998,6 +1057,7 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set @@ -1008,7 +1068,6 @@ CONFIG_USB_UHCI_HCD=y # # USB Device Class drivers # -# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set @@ -1044,9 +1103,7 @@ CONFIG_USB_HIDDEV=y # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set @@ -1059,21 +1116,6 @@ CONFIG_USB_HIDDEV=y # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_PWC is not set # # USB Network Adapters @@ -1104,10 +1146,12 @@ CONFIG_USB_MON=y # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set @@ -1126,12 +1170,43 @@ CONFIG_USB_MON=y # CONFIG_MMC is not set # +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# # InfiniBand support # # CONFIG_INFINIBAND is not set # # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices # # @@ -1157,6 +1232,7 @@ CONFIG_FS_MBCACHE=y # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y CONFIG_AUTOFS_FS=y @@ -1191,7 +1267,6 @@ CONFIG_TMPFS=y CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1311,9 +1386,11 @@ CONFIG_NLS_UTF8=y # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set +CONFIG_PLIST=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_IRQ_PER_CPU=y # # Instrumentation Support @@ -1326,14 +1403,19 @@ CONFIG_GENERIC_PENDING_IRQ=y # # CONFIG_PRINTK_TIME is not set CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set @@ -1387,7 +1469,6 @@ CONFIG_CRYPTO_DES=y # # CONFIG_XEN_UTIL is not set CONFIG_XEN_BALLOON=y -# CONFIG_XEN_DEVMEM is not set CONFIG_XEN_REBOOT=y # CONFIG_XEN_SMPBOOT is not set CONFIG_XEN_INTERFACE_VERSION=0x00030203 @@ -1402,6 +1483,8 @@ CONFIG_XEN_XENBUS_DEV=y # CONFIG_XEN_BACKEND is not set CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y +CONFIG_XEN_FRAMEBUFFER=y +CONFIG_XEN_KEYBOARD=y # CONFIG_XEN_SCRUB_PAGES is not set # CONFIG_XEN_DISABLE_SERIAL is not set CONFIG_XEN_SYSFS=y @@ -1410,3 +1493,4 @@ CONFIG_XEN_COMPAT_030002=y CONFIG_XEN_COMPAT_030002=y CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y CONFIG_NO_IDLE_HZ=y +CONFIG_XEN_DEVMEM=y diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 buildconfigs/linux-defconfig_xen_ia64 --- a/buildconfigs/linux-defconfig_xen_ia64 Fri Mar 02 17:08:04 2007 -0600 +++ b/buildconfigs/linux-defconfig_xen_ia64 Fri Mar 02 18:05:38 2007 -0600 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.29-xen -# Tue Nov 14 10:38:50 2006 +# Linux kernel version: 2.6.18-xen +# Mon Jan 29 10:01:13 2007 # # @@ -21,14 +21,16 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_CPUSETS is not set +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set +CONFIG_SYSCTL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_EXTRA_PASS=y @@ -40,11 +42,9 @@ CONFIG_FUTEX=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -55,7 +55,6 @@ CONFIG_MODULES=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y @@ -64,6 +63,7 @@ CONFIG_STOP_MACHINE=y # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers @@ -86,8 +86,10 @@ CONFIG_MMU=y CONFIG_MMU=y CONFIG_SWIOTLB=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_TIME_INTERPOLATION=y +CONFIG_DMI=y CONFIG_EFI=y CONFIG_GENERIC_IOMAP=y CONFIG_XEN=y @@ -96,6 +98,7 @@ CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_DMA_IS_DMA32=y +CONFIG_AUDIT_ARCH=y # CONFIG_IA64_GENERIC is not set CONFIG_IA64_DIG=y # CONFIG_IA64_HP_ZX1 is not set @@ -123,6 +126,7 @@ CONFIG_HOTPLUG_CPU=y CONFIG_HOTPLUG_CPU=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_SCHED_SMT is not set +# CONFIG_PERMIT_BSP_REMOVE is not set # CONFIG_PREEMPT is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -132,6 +136,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y @@ -163,6 +168,7 @@ CONFIG_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=y @@ -185,7 +191,7 @@ CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y CONFIG_XEN_PCIDEV_FRONTEND=y # CONFIG_XEN_PCIDEV_FE_DEBUG is not set -CONFIG_PCI_LEGACY_PROC=y +# CONFIG_PCIEPORTBUS is not set # CONFIG_PCI_DEBUG is not set # @@ -215,6 +221,8 @@ CONFIG_PACKET=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y @@ -229,7 +237,10 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set @@ -240,6 +251,9 @@ CONFIG_TCP_CONG_BIC=y # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y @@ -280,12 +294,12 @@ CONFIG_BRIDGE=y CONFIG_BRIDGE=y # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set +CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -314,6 +328,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -352,6 +367,7 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -463,6 +479,7 @@ CONFIG_SCSI_SAS_ATTRS=y # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_IPS is not set @@ -472,10 +489,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MOD CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +CONFIG_SCSI_SYM53C8XX_MMIO=y # CONFIG_SCSI_IPR is not set -CONFIG_SCSI_QLOGIC_FC=y -# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set CONFIG_SCSI_QLOGIC_1280=y # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_LPFC is not set @@ -613,6 +628,7 @@ CONFIG_TIGON3=y # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set +# CONFIG_MYRI10GE is not set # # Token Ring devices @@ -715,6 +731,7 @@ CONFIG_VT=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_COMPUTONE is not set # CONFIG_ROCKETPORT is not set @@ -728,6 +745,7 @@ CONFIG_SERIAL_NONSTANDARD=y # CONFIG_N_HDLC is not set # CONFIG_SPECIALIX is not set # CONFIG_SX is not set +# CONFIG_RIO is not set # CONFIG_STALDRV is not set # @@ -761,6 +779,8 @@ CONFIG_EFI_RTC=y # Ftape, the floppy tape device driver # CONFIG_AGP=y +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_VIA is not set CONFIG_AGP_I460=y CONFIG_DRM=y # CONFIG_DRM_TDFX is not set @@ -805,10 +825,10 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -827,9 +847,7 @@ CONFIG_I2C_ALGOPCF=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -844,13 +862,13 @@ CONFIG_I2C_ALGOPCF=y # # Dallas's 1-wire bus # -# CONFIG_W1 is not set # # Hardware Monitoring support # CONFIG_HWMON=y # CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set @@ -879,10 +897,12 @@ CONFIG_HWMON=y # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set @@ -894,24 +914,25 @@ CONFIG_HWMON=y # # -# Multimedia Capabilities Port drivers -# - -# # Multimedia devices # CONFIG_VIDEO_DEV=y - -# -# Video For Linux -# - -# -# Video Adapters +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters # # CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set @@ -923,10 +944,40 @@ CONFIG_VIDEO_DEV=y # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CX88 is not set + +# +# Encoders and Decoders +# +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_CX2341X is not set +# CONFIG_VIDEO_CX25840 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set # CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_VIDEO_AUDIO_DECODER is not set -# CONFIG_VIDEO_DECODER is not set +# CONFIG_USB_W9968CF is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set # # Radio Adapters @@ -934,20 +985,24 @@ CONFIG_VIDEO_DEV=y # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set +# CONFIG_USB_DSBR is not set # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set @@ -959,7 +1014,6 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON_OLD is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_DEBUG=y @@ -978,6 +1032,7 @@ CONFIG_FB_RADEON_DEBUG=y # Console display driver support # CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE is not set @@ -1008,9 +1063,11 @@ CONFIG_SND_OSSEMUL=y CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set @@ -1031,6 +1088,7 @@ CONFIG_SND_MPU401=y # PCI devices # # CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set # CONFIG_SND_ALI5451 is not set CONFIG_SND_ATIIXP=y # CONFIG_SND_ATIIXP_MODEM is not set @@ -1043,6 +1101,18 @@ CONFIG_SND_ATIIXP=y # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set @@ -1063,6 +1133,7 @@ CONFIG_SND_FM801=y # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set @@ -1082,12 +1153,14 @@ CONFIG_SND_FM801=y # Open Sound System # CONFIG_SOUND_PRIME=y -# CONFIG_OBSOLETE_OSS_DRIVER is not set -# CONFIG_SOUND_FUSION is not set +# CONFIG_OSS_OBSOLETE_DRIVER is not set +# CONFIG_SOUND_BT878 is not set +# CONFIG_SOUND_ES1371 is not set # CONFIG_SOUND_ICH is not set # CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set +# CONFIG_SOUND_VIA82CXXX is not set # CONFIG_SOUND_TVMIXER is not set # @@ -1095,6 +1168,7 @@ CONFIG_SOUND_PRIME=y # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set @@ -1113,6 +1187,7 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set @@ -1123,7 +1198,6 @@ CONFIG_USB_UHCI_HCD=y # # USB Device Class drivers # -# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set @@ -1160,9 +1234,7 @@ CONFIG_USB_HIDDEV=y # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set @@ -1175,21 +1247,6 @@ CONFIG_USB_HIDDEV=y # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_PWC is not set # # USB Network Adapters @@ -1220,10 +1277,12 @@ CONFIG_USB_MON=y # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set @@ -1243,12 +1302,43 @@ CONFIG_USB_MON=y # CONFIG_MMC is not set # +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# # InfiniBand support # # CONFIG_INFINIBAND is not set # # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices # # @@ -1275,7 +1365,6 @@ CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y -CONFIG_XFS_EXPORT=y # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_SECURITY is not set # CONFIG_XFS_POSIX_ACL is not set @@ -1284,6 +1373,7 @@ CONFIG_XFS_EXPORT=y # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y CONFIG_AUTOFS_FS=y @@ -1318,7 +1408,6 @@ CONFIG_TMPFS=y CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1364,7 +1453,9 @@ CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=y # CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1443,9 +1534,11 @@ CONFIG_NLS_UTF8=y # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set +CONFIG_PLIST=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_IRQ_PER_CPU=y # # Instrumentation Support @@ -1458,14 +1551,19 @@ CONFIG_GENERIC_PENDING_IRQ=y # # CONFIG_PRINTK_TIME is not set CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set CONFIG_DEBUG_MUTEXES=y -# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set @@ -1519,7 +1617,6 @@ CONFIG_CRYPTO_DES=y # # CONFIG_XEN_UTIL is not set CONFIG_XEN_BALLOON=y -# CONFIG_XEN_DEVMEM is not set CONFIG_XEN_REBOOT=y # CONFIG_XEN_SMPBOOT is not set CONFIG_XEN_INTERFACE_VERSION=0x00030203 @@ -1555,3 +1652,4 @@ CONFIG_XEN_COMPAT_030002=y CONFIG_XEN_COMPAT_030002=y CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y CONFIG_NO_IDLE_HZ=y +CONFIG_XEN_DEVMEM=y diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 docs/misc/dump-core-format.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/misc/dump-core-format.txt Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,225 @@ +xen dump-core format + Written by Isaku Yamahata <yamahata at valinux co jp> Feb. 2007 + + +Introduction +------------ +With xm dump-core command, the guest domain's core can be created as a file. +Its format was changed to be based on ELF format because elf format is easily +extensible and handy. This document describes the new format. +In this document the new format is called new xen dump-core format, +xen dump-core format or simply dump-core format. The file of xen dump-core +format is called xen dump-core file or dump-core file. + +The usual process core file includes program headers and no section header. +On the other hand the xen dump-core file includes no program headers and +some sections because of its peculiar requirements. + + +Reference +--------- +For ELF format itself, see Tool Interface Standard(TIS) Executable and +Linking Format(ELF) Specification version 1.2. +For xen related structure, please see the xen header files. + + +Elf header +---------- +The elf header members are set as follows + e_ident[EI_OSABI] = ELFOSABI_SYSV = 0 + e_type = ET_CORE = 4 +e_ident[EI_CLASS], e_ident[EI_DATA] and e_flags are set according +to an architecture which a file is created. Other members are set as usual. + + +Sections +-------- +Currently the following sections are defined. Some sections are optional. + +".note.Xen" section + name ".note.Xen" + type SHT_NOTE + description + This section is used as note section to store xen dump-core + file specific informations. The each detailed informations are + described in note section. This section must exist. + +".xen_prstatus" section + name ".xen_prstatus" + type SHT_PROGBITS + structure array of vcpu_guest_context_t + description + This section stores the array of vcpu_guest_context_t + which is obtained by XEN_DOMCTL_getvcpucontext hypercall + when the xen dump-core file is created. + The size of array is stored in xch_nr_vcpus member of header + note descriptor in .note.Xen note section. + This section must exist. + +".xen_shared_info" section + name ".xen_shared_info" + type SHT_PROGBITS + structure shared_info_t + description + This section stores the contents of shared info page + of a domain. This section is optional. + +".xen_p2m" section + name ".xen_p2m" + type SHT_PROGBITS + structure array of struct xen_dumpcore_p2m + struct xen_dumpcore_p2m { + uint64_t pfn; + uint64_t gmfn; + }; + description + This elements represents the frame number of the page + in .xen_pages section. + pfn: guest-specific pseudo-physical frame number + gmfn: machine physical frame number + The size of arrays is stored in xch_nr_pages member of header + note descriptor in .note.Xen note section. + There is no rule about the order. Analysis tools must no rely + on its order. + This section must exist when the domain is non auto + translated physmap mode. Currently x86 paravirtualized domain. + +".xen_pfn" section + name ".xen_pfn" + type SHT_PROGBITS + structure array of uint64_t + description + This elements represents the frame number of the page + in .xen_pages section. + The size of arrays is stored in xch_nr_pages member of header + note descriptor in .note.Xen note section. + There is no rule about the order. Analysis tools must no rely + on its order. + This section must exist when the domain is auto translated + physmap mode. Currently x86 full virtualized domain and + ia64 domain. + +".xen_pages" section + name ".xen_pages" + type SHT_PROGBITS + structure array of page where page is page size byte array + description + This section includes the contents of pages. + The corresponding address is described in .xen_p2m section + or .xen_pfn section. + The page size is stored in xch_page_size member of header note + descriptor in .note.Xen section. + The array size is stored in xch_nr_pages member of header note + descriptor in .note.Xen section. + This section must exist. + + +".xen_ia64_mapped_regs" section + name ".xen_ia64_mapped_regs" + type SHT_PROGBITS + structure array of mapped_regs_t + description + This section stores the array of mapped_regs_t. + The size of array is stored in xch_nr_vcpus member of header + note descriptor in .note.Xen note section. + This section is ia64 specific and must exist for ia64 domain. + This section must not exist for non-ia64 domain. + + +note section +------------ +The note types are defined in xen/include/public/elfnote.h. +The note descriptors are defined in tools/libxc/xc_core.h +Currently the following note informations are defined. + + +elf note section + +"Xen" is used as elf note name in elf note info + namesz 4 + name "Xen" (null-terminated) + + +Descriptors + +none note descriptor + type XEN_ELFNOTE_DUMPCORE_NONE = 0x2000000 + structure struct xen_dumpcore_elfnote_none_desc { + /* nothing is defined */ + }; + description + This note descriptor is defined to just indicate that this + file is xen dump-core format without any specific information. + This note information must exist. + +header note descriptor + type XEN_ELFNOTE_DUMPCORE_HEADER = 0x2000001 + structure struct xen_dumpcore_elfnote_header_desc { + uint64_t xch_magic; + uint64_t xch_nr_vcpus; + uint64_t xch_nr_pages; + uint64_t xch_page_size; + }; + description + This note descriptor stores basic information of the domain. + xch_magic magic number + XC_CORE_MAGIC = 0xF00FEBED for paravirtualized domain + XC_CORE_MAGIC_HVM = 0xF00FEBEE for full virtualized domain + xch_nr_vcpus the number of vcpus + xch_nr_pages the number of pages + xch_page_size guest OS's page size + This note information must exist. + +xen_version descriptor + type XEN_ELFNOTE_DUMPCORE_XEN_VERSION = 0x2000002 + structure struct xen_dumpcore_elfnote_xen_version_desc { + uint64_t major_version; + uint64_t minor_version; + xen_extraversion_t extra_version; + xen_compile_info_t compile_info; + xen_capabilities_info_t capabilities; + xen_changeset_info_t changeset; + xen_platform_parameters_t platform_parameters; + uint64_t pagesize; + }; + description + This note descriptor stores basic information about xen + hypervisor. The each members store the result of + __HYPERVISOR_xen_version hypercall. + major_version 16msb bit of the result of XENVER_version + minor_version 16lsb bit of the result of XENVER_version + uint64_t is used to make struct + xen_dumpcore_elfnote_xen_version_desc independent + on 32bit/64bit instead of uint32_t. + extra_version the result of XENVER_extraversion + compile_info the result of XENVER_compile_info + capabilities the result of XENVER_capabilities + changeset the result of XENVER_changeset + platform_parameters + the result of XENVER_platform_parameters + pagesize the result of XENVER_pagesize + This note information must exist. + +format_version descriptor + type XEN_ELFNOTE_DUMPCORE_FORMAT_VERSION = 0x2000003 + structure struct xen_dumpcore_elfnote_format_version_desc { + uint64_t version; + }; + description + This note descriptor stores xen dump-core format version. + The 32msb bit is major version and the 32lsb bit is minor + version. + The minor version will be incremented when the format + is changed in compatible way. e.g. new sections, new note + descriptors are added. + the major version will be incremented when the format is + changed in incompatible way. + This note information must exit. Analysis tools should check + this format version. + This note information must exist. + + +Format version history +---------------------- +The currently only (major, minor) = (0, 1) is used. +[When the format is changed, it would be described here.] diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 docs/xen-api/xenapi-datamodel.tex --- a/docs/xen-api/xenapi-datamodel.tex Fri Mar 02 17:08:04 2007 -0600 +++ b/docs/xen-api/xenapi-datamodel.tex Fri Mar 02 18:05:38 2007 -0600 @@ -26,16 +26,19 @@ Name & Description \\ {\tt task} & A long-running asynchronous task \\ {\tt VM} & A virtual machine (or 'guest') \\ {\tt VM\_metrics} & The metrics associated with a VM \\ +{\tt VM\_guest\_metrics} & The metrics reported by the guest (as opposed to inferred from outside) \\ {\tt host} & A physical host \\ {\tt host\_metrics} & The metrics associated with a host \\ {\tt host\_cpu} & A physical CPU \\ {\tt network} & A virtual network \\ {\tt VIF} & A virtual network interface \\ +{\tt VIF\_metrics} & The metrics associated with a virtual network device \\ {\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\ {\tt PIF\_metrics} & The metrics associated with a physical network interface \\ {\tt SR} & A storage repository \\ {\tt VDI} & A virtual disk image \\ {\tt VBD} & A virtual block device \\ +{\tt VBD\_metrics} & The metrics associated with a virtual block device \\ {\tt PBD} & The physical block devices through which hosts access SRs \\ {\tt crashdump} & A VM crashdump \\ {\tt VTPM} & A virtual TPM device \\ @@ -59,9 +62,6 @@ crashdump.VM & VM.crash\_dumps & one-to- crashdump.VM & VM.crash\_dumps & one-to-many\\ VIF.VM & VM.VIFs & one-to-many\\ VIF.network & network.VIFs & one-to-many\\ -host.metrics & host\_metrics.host & one-to-one\\ -PIF.metrics & PIF\_metrics.PIF & one-to-one\\ -VM.metrics & VM\_metrics.VM & one-to-one\\ PIF.host & host.PIFs & one-to-many\\ PIF.network & network.PIFs & one-to-many\\ SR.VDIs & VDI.SR & many-to-one\\ @@ -1076,8 +1076,6 @@ Quals & Field & Type & Description \\ $\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\ $\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\ $\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\ -$\mathit{RO}_\mathit{ins}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\ -$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\ $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\ $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\ $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\ @@ -1099,10 +1097,11 @@ Quals & Field & Type & Description \\ $\mathit{RW}$ & {\tt platform/clock\_offset} & bool & timeshift applied to guest's clock \\ $\mathit{RW}$ & {\tt platform/enable\_audio} & bool & emulate audio \\ $\mathit{RO}_\mathit{ins}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\ -$\mathit{RO}_\mathit{run}$ & {\tt tools\_version} & (string $\rightarrow$ string) Map & versions of installed paravirtualised drivers \\ $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\ +$\mathit{RO}_\mathit{run}$ & {\tt domid} & int & domain ID (if available, -1 otherwise) \\ $\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\ -$\mathit{RO}_\mathit{ins}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM. \\ +$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM. \\ +$\mathit{RO}_\mathit{run}$ & {\tt guest\_metrics} & VM\_guest\_metrics ref & metrics associated with the running guest \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: VM} @@ -2548,70 +2547,6 @@ void \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_VCPUs\_number} - -{\bf Overview:} -Get the VCPUs/number field of the given VM. - - \noindent {\bf Signature:} -\begin{verbatim} int get_VCPUs_number (session_id s, VM ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VM ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -int -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_VCPUs\_utilisation} - -{\bf Overview:} -Get the VCPUs/utilisation field of the given VM. - - \noindent {\bf Signature:} -\begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VM ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -(int $\rightarrow$ float) Map -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_actions\_after\_shutdown} {\bf Overview:} @@ -3865,38 +3800,6 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_tools\_version} - -{\bf Overview:} -Get the tools\_version field of the given VM. - - \noindent {\bf Signature:} -\begin{verbatim} ((string -> string) Map) get_tools_version (session_id s, VM ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VM ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -(string $\rightarrow$ string) Map -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_other\_config} {\bf Overview:} @@ -4034,6 +3937,38 @@ void \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} +\subsubsection{RPC name:~get\_domid} + +{\bf Overview:} +Get the domid field of the given VM. + + \noindent {\bf Signature:} +\begin{verbatim} int get_domid (session_id s, VM ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_is\_control\_domain} {\bf Overview:} @@ -4091,6 +4026,38 @@ Get the metrics field of the given VM. \noindent {\bf Return Type:} {\tt VM\_metrics ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_guest\_metrics} + +{\bf Overview:} +Get the guest\_metrics field of the given VM. + + \noindent {\bf Signature:} +\begin{verbatim} (VM_guest_metrics ref) get_guest_metrics (session_id s, VM ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VM\_guest\_metrics ref } @@ -4273,13 +4240,33 @@ Quals & Field & Type & Description \\ Quals & Field & Type & Description \\ \hline $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ -$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & VM to which these metrics apply \\ $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\ $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\ $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: VM\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VM\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VM_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VM\_metrics ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -4312,13 +4299,13 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_VM} - -{\bf Overview:} -Get the VM field of the given VM\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} (VM ref) get_VM (session_id s, VM_metrics ref self)\end{verbatim} +\subsubsection{RPC name:~get\_memory\_actual} + +{\bf Overview:} +Get the memory/actual field of the given VM\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim} \noindent{\bf Arguments:} @@ -4336,21 +4323,21 @@ Get the VM field of the given VM\_metric \noindent {\bf Return Type:} {\tt -VM ref -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_memory\_actual} - -{\bf Overview:} -Get the memory/actual field of the given VM\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim} +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_VCPUs\_number} + +{\bf Overview:} +Get the VCPUs/number field of the given VM\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim} \noindent{\bf Arguments:} @@ -4376,13 +4363,13 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_VCPUs\_number} - -{\bf Overview:} -Get the VCPUs/number field of the given VM\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim} +\subsubsection{RPC name:~get\_VCPUs\_utilisation} + +{\bf Overview:} +Get the VCPUs/utilisation field of the given VM\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim} \noindent{\bf Arguments:} @@ -4400,21 +4387,53 @@ Get the VCPUs/number field of the given \noindent {\bf Return Type:} {\tt -int -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_VCPUs\_utilisation} - -{\bf Overview:} -Get the VCPUs/utilisation field of the given VM\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim} +(int $\rightarrow$ float) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_by\_uuid} + +{\bf Overview:} +Get a reference to the VM\_metrics instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt string } & uuid & UUID of object to return \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VM\_metrics ref +} + + +reference to the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_record} + +{\bf Overview:} +Get a record containing the current state of the given VM\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim} \noindent{\bf Arguments:} @@ -4432,7 +4451,275 @@ Get the VCPUs/utilisation field of the g \noindent {\bf Return Type:} {\tt -(int $\rightarrow$ float) Map +VM\_metrics record +} + + +all fields from the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} + +\vspace{1cm} +\newpage +\section{Class: VM\_guest\_metrics} +\subsection{Fields for class: VM\_guest\_metrics} +\begin{longtable}{|lllp{0.38\textwidth}|} +\hline +\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_guest\_metrics} \\ +\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em +The metrics reported by the guest (as opposed to inferred from outside).}} \\ +\hline +Quals & Field & Type & Description \\ +\hline +$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ +$\mathit{RO}_\mathit{run}$ & {\tt os\_version} & (string $\rightarrow$ string) Map & version of the OS \\ +$\mathit{RO}_\mathit{run}$ & {\tt PV\_drivers\_version} & (string $\rightarrow$ string) Map & version of the PV drivers \\ +$\mathit{RO}_\mathit{run}$ & {\tt memory} & (string $\rightarrow$ string) Map & free/used/total memory \\ +$\mathit{RO}_\mathit{run}$ & {\tt disks} & (string $\rightarrow$ string) Map & disk configuration/free space \\ +$\mathit{RO}_\mathit{run}$ & {\tt networks} & (string $\rightarrow$ string) Map & network configuration \\ +$\mathit{RO}_\mathit{run}$ & {\tt other} & (string $\rightarrow$ string) Map & anything else \\ +\hline +\end{longtable} +\subsection{Additional RPCs associated with class: VM\_guest\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VM\_guest\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VM_guest_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VM\_guest\_metrics ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_uuid} + +{\bf Overview:} +Get the uuid field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} string get_uuid (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_os\_version} + +{\bf Overview:} +Get the os\_version field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_os_version (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_PV\_drivers\_version} + +{\bf Overview:} +Get the PV\_drivers\_version field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_PV_drivers_version (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_memory} + +{\bf Overview:} +Get the memory field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_memory (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_disks} + +{\bf Overview:} +Get the disks field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_disks (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_networks} + +{\bf Overview:} +Get the networks field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_networks (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_other} + +{\bf Overview:} +Get the other field of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_other (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map } @@ -4443,10 +4730,10 @@ value of the field \subsubsection{RPC name:~get\_by\_uuid} {\bf Overview:} -Get a reference to the VM\_metrics instance with the specified UUID. - - \noindent {\bf Signature:} -\begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim} +Get a reference to the VM\_guest\_metrics instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VM_guest_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim} \noindent{\bf Arguments:} @@ -4464,7 +4751,7 @@ Get a reference to the VM\_metrics insta \noindent {\bf Return Type:} {\tt -VM\_metrics ref +VM\_guest\_metrics ref } @@ -4475,28 +4762,28 @@ reference to the object \subsubsection{RPC name:~get\_record} {\bf Overview:} -Get a record containing the current state of the given VM\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VM\_metrics ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VM\_metrics record +Get a record containing the current state of the given VM\_guest\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} (VM_guest_metrics record) get_record (session_id s, VM_guest_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VM\_guest\_metrics record } @@ -4520,8 +4807,14 @@ Quals & Field & Type & Description \\ $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\ $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\ +$\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version number \\ +$\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\ +$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\ +$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\ $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\ $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\ +$\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\ +$\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\ $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\ $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\ $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\ @@ -4881,6 +5174,134 @@ void \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} +\subsubsection{RPC name:~get\_API\_version\_major} + +{\bf Overview:} +Get the API\_version/major field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} int get_API_version_major (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_API\_version\_minor} + +{\bf Overview:} +Get the API\_version/minor field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} int get_API_version_minor (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_API\_version\_vendor} + +{\bf Overview:} +Get the API\_version/vendor field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} string get_API_version_vendor (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_API\_version\_vendor\_implementation} + +{\bf Overview:} +Get the API\_version/vendor\_implementation field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_API_version_vendor_implementation (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_software\_version} {\bf Overview:} @@ -5050,6 +5471,70 @@ void \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} +\subsubsection{RPC name:~get\_capabilities} + +{\bf Overview:} +Get the capabilities field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} (string Set) get_capabilities (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string Set +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_supported\_bootloaders} + +{\bf Overview:} +Get the supported\_bootloaders field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string Set +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_resident\_VMs} {\bf Overview:} @@ -5476,70 +5961,6 @@ host\_metrics ref value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~create} - -{\bf Overview:} -Create a new host instance, and return its handle. - - \noindent {\bf Signature:} -\begin{verbatim} (host ref) create (session_id s, host record args)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt host record } & args & All constructor arguments \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -host ref -} - - -reference to the newly created object -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~destroy} - -{\bf Overview:} -Destroy the specified host instance. - - \noindent {\bf Signature:} -\begin{verbatim} void destroy (session_id s, host ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt host ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} @@ -5653,12 +6074,32 @@ Quals & Field & Type & Description \\ Quals & Field & Type & Description \\ \hline $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ -$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & Host to which these metrics apply \\ $\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\ $\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: host\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the host\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((host_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(host\_metrics ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -5684,38 +6125,6 @@ Get the uuid field of the given host\_me \noindent {\bf Return Type:} {\tt string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_host} - -{\bf Overview:} -Get the host field of the given host\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} (host ref) get_host (session_id s, host_metrics ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt host\_metrics ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -host ref } @@ -5864,15 +6273,38 @@ Quals & Field & Type & Description \\ Quals & Field & Type & Description \\ \hline $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ -$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & the host the CPU is in \\ -$\mathit{RO}_\mathit{ins}$ & {\tt number} & int & the number of the physical CPU within the host \\ -$\mathit{RO}_\mathit{ins}$ & {\tt vendor} & string & the vendor of the physical CPU \\ -$\mathit{RO}_\mathit{ins}$ & {\tt speed} & int & the speed of the physical CPU \\ -$\mathit{RO}_\mathit{ins}$ & {\tt modelname} & string & the model name of the physical CPU \\ +$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the host the CPU is in \\ +$\mathit{RO}_\mathit{run}$ & {\tt number} & int & the number of the physical CPU within the host \\ +$\mathit{RO}_\mathit{run}$ & {\tt vendor} & string & the vendor of the physical CPU \\ +$\mathit{RO}_\mathit{run}$ & {\tt speed} & int & the speed of the physical CPU \\ +$\mathit{RO}_\mathit{run}$ & {\tt modelname} & string & the model name of the physical CPU \\ +$\mathit{RO}_\mathit{run}$ & {\tt stepping} & string & the stepping of the physical CPU \\ +$\mathit{RO}_\mathit{run}$ & {\tt flags} & string & the flags of the physical CPU \\ $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: host\_cpu} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the host\_cpus known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((host_cpu ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(host\_cpu ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -6065,6 +6497,70 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} +\subsubsection{RPC name:~get\_stepping} + +{\bf Overview:} +Get the stepping field of the given host\_cpu. + + \noindent {\bf Signature:} +\begin{verbatim} string get_stepping (session_id s, host_cpu ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host\_cpu ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_flags} + +{\bf Overview:} +Get the flags field of the given host\_cpu. + + \noindent {\bf Signature:} +\begin{verbatim} string get_flags (session_id s, host_cpu ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host\_cpu ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_utilisation} {\bf Overview:} @@ -6094,70 +6590,6 @@ float value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~create} - -{\bf Overview:} -Create a new host\_cpu instance, and return its handle. - - \noindent {\bf Signature:} -\begin{verbatim} (host_cpu ref) create (session_id s, host_cpu record args)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt host\_cpu record } & args & All constructor arguments \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -host\_cpu ref -} - - -reference to the newly created object -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~destroy} - -{\bf Overview:} -Destroy the specified host\_cpu instance. - - \noindent {\bf Signature:} -\begin{verbatim} void destroy (session_id s, host_cpu ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt host\_cpu ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} @@ -6243,8 +6675,6 @@ Quals & Field & Type & Description \\ $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\ $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\ $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\ -$\mathit{RW}$ & {\tt default\_gateway} & string & default gateway IP address. Used for auto-configuring guests with fixed IP setting \\ -$\mathit{RW}$ & {\tt default\_netmask} & string & default netmask. Used for auto-configuring guests with fixed IP setting \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: network} @@ -6494,138 +6924,6 @@ Get the PIFs field of the given network. value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_default\_gateway} - -{\bf Overview:} -Get the default\_gateway field of the given network. - - \noindent {\bf Signature:} -\begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt network ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_default\_gateway} - -{\bf Overview:} -Set the default\_gateway field of the given network. - - \noindent {\bf Signature:} -\begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt network ref } & self & reference to the object \\ \hline - -{\tt string } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_default\_netmask} - -{\bf Overview:} -Get the default\_netmask field of the given network. - - \noindent {\bf Signature:} -\begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt network ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_default\_netmask} - -{\bf Overview:} -Set the default\_netmask field of the given network. - - \noindent {\bf Signature:} -\begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt network ref } & self & reference to the object \\ \hline - -{\tt string } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} @@ -6808,28 +7106,881 @@ Quals & Field & Type & Description \\ $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\ $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\ $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\ +$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\ +$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\ +$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\ +$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\ +$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\ +$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\ +$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF. \\ +\hline +\end{longtable} +\subsection{Additional RPCs associated with class: VIF} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VIFs known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VIF ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VIF ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_uuid} + +{\bf Overview:} +Get the uuid field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_device} + +{\bf Overview:} +Get the device field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_device} + +{\bf Overview:} +Set the device field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt string } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_network} + +{\bf Overview:} +Get the network field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +network ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_VM} + +{\bf Overview:} +Get the VM field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VM ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_MAC} + +{\bf Overview:} +Get the MAC field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_MAC} + +{\bf Overview:} +Set the MAC field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt string } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_MTU} + +{\bf Overview:} +Get the MTU field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_MTU} + +{\bf Overview:} +Set the MTU field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt int } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_currently\_attached} + +{\bf Overview:} +Get the currently\_attached field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} bool get_currently_attached (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +bool +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_status\_code} + +{\bf Overview:} +Get the status\_code field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} int get_status_code (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_status\_detail} + +{\bf Overview:} +Get the status\_detail field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} string get_status_detail (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_algorithm\_type} + +{\bf Overview:} +Get the qos/algorithm\_type field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_qos\_algorithm\_type} + +{\bf Overview:} +Set the qos/algorithm\_type field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt string } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_algorithm\_params} + +{\bf Overview:} +Get the qos/algorithm\_params field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_qos\_algorithm\_params} + +{\bf Overview:} +Set the qos/algorithm\_params field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params} + +{\bf Overview:} +Add the given key-value pair to the qos/algorithm\_params field of the +given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to add \\ \hline + +{\tt string } & value & Value to add \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params} + +{\bf Overview:} +Remove the given key and its corresponding value from the +qos/algorithm\_params field of the given VIF. If the key is not in that +Map, then do nothing. + + \noindent {\bf Signature:} +\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to remove \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_supported\_algorithms} + +{\bf Overview:} +Get the qos/supported\_algorithms field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string Set +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_metrics} + +{\bf Overview:} +Get the metrics field of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VIF\_metrics ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~create} + +{\bf Overview:} +Create a new VIF instance, and return its handle. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF record } & args & All constructor arguments \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VIF ref +} + + +reference to the newly created object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~destroy} + +{\bf Overview:} +Destroy the specified VIF instance. + + \noindent {\bf Signature:} +\begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_by\_uuid} + +{\bf Overview:} +Get a reference to the VIF instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt string } & uuid & UUID of object to return \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VIF ref +} + + +reference to the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_record} + +{\bf Overview:} +Get a record containing the current state of the given VIF. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VIF record +} + + +all fields from the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} + +\vspace{1cm} +\newpage +\section{Class: VIF\_metrics} +\subsection{Fields for class: VIF\_metrics} +\begin{longtable}{|lllp{0.38\textwidth}|} +\hline +\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\ +\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em +The metrics associated with a virtual network device.}} \\ +\hline +Quals & Field & Type & Description \\ +\hline +$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\ $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\ \hline \end{longtable} -\subsection{Additional RPCs associated with class: VIF} +\subsection{Additional RPCs associated with class: VIF\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VIF\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VIF_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VIF\_metrics ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} -Get the uuid field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline +Get the uuid field of the given VIF\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -6845,285 +7996,23 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_device} - -{\bf Overview:} -Get the device field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_device} - -{\bf Overview:} -Set the device field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -{\tt string } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_network} - -{\bf Overview:} -Get the network field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -network ref -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_VM} - -{\bf Overview:} -Get the VM field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VM ref -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_MAC} - -{\bf Overview:} -Get the MAC field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_MAC} - -{\bf Overview:} -Set the MAC field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -{\tt string } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_MTU} - -{\bf Overview:} -Get the MTU field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -int -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_MTU} - -{\bf Overview:} -Set the MTU field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -{\tt int } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_io\_read\_kbs} {\bf Overview:} -Get the io/read\_kbs field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} float get_io_read_kbs (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline +Get the io/read\_kbs field of the given VIF\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -7142,20 +8031,20 @@ value of the field \subsubsection{RPC name:~get\_io\_write\_kbs} {\bf Overview:} -Get the io/write\_kbs field of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} float get_io_write_kbs (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline +Get the io/write\_kbs field of the given VIF\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -7171,77 +8060,13 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~create} - -{\bf Overview:} -Create a new VIF instance, and return its handle. - - \noindent {\bf Signature:} -\begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF record } & args & All constructor arguments \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VIF ref -} - - -reference to the newly created object -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~destroy} - -{\bf Overview:} -Destroy the specified VIF instance. - - \noindent {\bf Signature:} -\begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_by\_uuid} {\bf Overview:} -Get a reference to the VIF instance with the specified UUID. - - \noindent {\bf Signature:} -\begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim} +Get a reference to the VIF\_metrics instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim} \noindent{\bf Arguments:} @@ -7259,7 +8084,7 @@ Get a reference to the VIF instance with \noindent {\bf Return Type:} {\tt -VIF ref +VIF\_metrics ref } @@ -7270,28 +8095,28 @@ reference to the object \subsubsection{RPC name:~get\_record} {\bf Overview:} -Get a record containing the current state of the given VIF. - - \noindent {\bf Signature:} -\begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VIF ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VIF record +Get a record containing the current state of the given VIF\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VIF\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VIF\_metrics record } @@ -7399,6 +8224,27 @@ void \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL} \vspace{0.6cm} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the PIFs known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((PIF ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(PIF ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -7869,12 +8715,32 @@ Quals & Field & Type & Description \\ Quals & Field & Type & Description \\ \hline $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ -$\mathit{RO}_\mathit{ins}$ & {\tt PIF} & PIF ref & PIF to which these metrics apply \\ $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\ $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: PIF\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the PIF\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((PIF_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(PIF\_metrics ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -7900,38 +8766,6 @@ Get the uuid field of the given PIF\_met \noindent {\bf Return Type:} {\tt string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_PIF} - -{\bf Overview:} -Get the PIF field of the given PIF\_metrics. - - \noindent {\bf Signature:} -\begin{verbatim} (PIF ref) get_PIF (session_id s, PIF_metrics ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt PIF\_metrics ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -PIF ref } @@ -8718,7 +9552,7 @@ Quals & Field & Type & Description \\ $\mathit{RW}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\ $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\ $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\ -$\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in multiples of sector\_size field) \\ +$\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly \\ $\mathit{RO}_\mathit{run}$ & {\tt physical\_utilisation} & int & amount of physical space that the disk image is currently taking up on the storage repository (in bytes) \\ $\mathit{RO}_\mathit{ins}$ & {\tt sector\_size} & int & sector size of VDI (in bytes) \\ $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\ @@ -8791,6 +9625,27 @@ void +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VDIs known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VDI ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VDI ref) Set +} + + +references to all objects \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} @@ -9562,63 +10417,982 @@ Quals & Field & Type & Description \\ $\mathit{RW}$ & {\tt bootable} & bool & true if this VBD is bootable \\ $\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the VBD should be mounted with \\ $\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\ +$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\ +$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\ +$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\ +$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\ +$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\ +$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VBD \\ +$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VBD\_metrics ref & metrics associated with this VBD \\ +\hline +\end{longtable} +\subsection{Additional RPCs associated with class: VBD} +\subsubsection{RPC name:~media\_change} + +{\bf Overview:} +Change the media in the device for CDROM-like devices only. For other +devices, detach the VBD and attach a new one. + + \noindent {\bf Signature:} +\begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline + +{\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VBDs known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VBD ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VBD ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_uuid} + +{\bf Overview:} +Get the uuid field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_VM} + +{\bf Overview:} +Get the VM field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VM ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_VDI} + +{\bf Overview:} +Get the VDI field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VDI ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_device} + +{\bf Overview:} +Get the device field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_device} + +{\bf Overview:} +Set the device field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt string } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_bootable} + +{\bf Overview:} +Get the bootable field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +bool +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_bootable} + +{\bf Overview:} +Set the bootable field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt bool } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_mode} + +{\bf Overview:} +Get the mode field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +vbd\_mode +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_mode} + +{\bf Overview:} +Set the mode field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt vbd\_mode } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_type} + +{\bf Overview:} +Get the type field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +vbd\_type +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_type} + +{\bf Overview:} +Set the type field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt vbd\_type } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_currently\_attached} + +{\bf Overview:} +Get the currently\_attached field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} bool get_currently_attached (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +bool +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_status\_code} + +{\bf Overview:} +Get the status\_code field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} int get_status_code (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +int +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_status\_detail} + +{\bf Overview:} +Get the status\_detail field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} string get_status_detail (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_algorithm\_type} + +{\bf Overview:} +Get the qos/algorithm\_type field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} string get_qos_algorithm_type (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_qos\_algorithm\_type} + +{\bf Overview:} +Set the qos/algorithm\_type field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_qos_algorithm_type (session_id s, VBD ref self, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt string } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_algorithm\_params} + +{\bf Overview:} +Get the qos/algorithm\_params field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_qos\_algorithm\_params} + +{\bf Overview:} +Set the qos/algorithm\_params field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void set_qos_algorithm_params (session_id s, VBD ref self, (string -> string) Map value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params} + +{\bf Overview:} +Add the given key-value pair to the qos/algorithm\_params field of the +given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VBD ref self, string key, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to add \\ \hline + +{\tt string } & value & Value to add \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params} + +{\bf Overview:} +Remove the given key and its corresponding value from the +qos/algorithm\_params field of the given VBD. If the key is not in that +Map, then do nothing. + + \noindent {\bf Signature:} +\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VBD ref self, string key)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to remove \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_qos\_supported\_algorithms} + +{\bf Overview:} +Get the qos/supported\_algorithms field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string Set +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_metrics} + +{\bf Overview:} +Get the metrics field of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD_metrics ref) get_metrics (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VBD\_metrics ref +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~create} + +{\bf Overview:} +Create a new VBD instance, and return its handle. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD record } & args & All constructor arguments \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VBD ref +} + + +reference to the newly created object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~destroy} + +{\bf Overview:} +Destroy the specified VBD instance. + + \noindent {\bf Signature:} +\begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_by\_uuid} + +{\bf Overview:} +Get a reference to the VBD instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt string } & uuid & UUID of object to return \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VBD ref +} + + +reference to the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_record} + +{\bf Overview:} +Get a record containing the current state of the given VBD. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VBD record +} + + +all fields from the object +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} + +\vspace{1cm} +\newpage +\section{Class: VBD\_metrics} +\subsection{Fields for class: VBD\_metrics} +\begin{longtable}{|lllp{0.38\textwidth}|} +\hline +\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD\_metrics} \\ +\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em +The metrics associated with a virtual block device.}} \\ +\hline +Quals & Field & Type & Description \\ +\hline +$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\ $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\ \hline \end{longtable} -\subsection{Additional RPCs associated with class: VBD} -\subsubsection{RPC name:~media\_change} - -{\bf Overview:} -Change the media in the device for CDROM-like devices only. For other -devices, detach the VBD and attach a new one. - - \noindent {\bf Signature:} -\begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline - -{\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - +\subsection{Additional RPCs associated with class: VBD\_metrics} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the VBD\_metrics instances known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((VBD_metrics ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(VBD\_metrics ref) Set +} + + +references to all objects \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} -Get the uuid field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline +Get the uuid field of the given VBD\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} string get_uuid (session_id s, VBD_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -9634,351 +11408,23 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_VM} - -{\bf Overview:} -Get the VM field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VM ref -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_VDI} - -{\bf Overview:} -Get the VDI field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VDI ref -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_device} - -{\bf Overview:} -Get the device field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -string -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_device} - -{\bf Overview:} -Set the device field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -{\tt string } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_bootable} - -{\bf Overview:} -Get the bootable field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -bool -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_bootable} - -{\bf Overview:} -Set the bootable field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -{\tt bool } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_mode} - -{\bf Overview:} -Get the mode field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -vbd\_mode -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_mode} - -{\bf Overview:} -Set the mode field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -{\tt vbd\_mode } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~get\_type} - -{\bf Overview:} -Get the type field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -vbd\_type -} - - -value of the field -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~set\_type} - -{\bf Overview:} -Set the type field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -{\tt vbd\_type } & value & New value to set \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_io\_read\_kbs} {\bf Overview:} -Get the io/read\_kbs field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} float get_io_read_kbs (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline +Get the io/read\_kbs field of the given VBD\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} float get_io_read_kbs (session_id s, VBD_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -9997,20 +11443,20 @@ value of the field \subsubsection{RPC name:~get\_io\_write\_kbs} {\bf Overview:} -Get the io/write\_kbs field of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} float get_io_write_kbs (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline +Get the io/write\_kbs field of the given VBD\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} float get_io_write_kbs (session_id s, VBD_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD\_metrics ref } & self & reference to the object \\ \hline \end{tabular} @@ -10026,77 +11472,13 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~create} - -{\bf Overview:} -Create a new VBD instance, and return its handle. - - \noindent {\bf Signature:} -\begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD record } & args & All constructor arguments \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VBD ref -} - - -reference to the newly created object -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} -\subsubsection{RPC name:~destroy} - -{\bf Overview:} -Destroy the specified VBD instance. - - \noindent {\bf Signature:} -\begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -void -} - - - -\vspace{0.3cm} -\vspace{0.3cm} -\vspace{0.3cm} \subsubsection{RPC name:~get\_by\_uuid} {\bf Overview:} -Get a reference to the VBD instance with the specified UUID. - - \noindent {\bf Signature:} -\begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim} +Get a reference to the VBD\_metrics instance with the specified UUID. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim} \noindent{\bf Arguments:} @@ -10114,7 +11496,7 @@ Get a reference to the VBD instance with \noindent {\bf Return Type:} {\tt -VBD ref +VBD\_metrics ref } @@ -10125,28 +11507,28 @@ reference to the object \subsubsection{RPC name:~get\_record} {\bf Overview:} -Get a record containing the current state of the given VBD. - - \noindent {\bf Signature:} -\begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim} - - -\noindent{\bf Arguments:} - - -\vspace{0.3cm} -\begin{tabular}{|c|c|p{7cm}|} - \hline -{\bf type} & {\bf name} & {\bf description} \\ \hline -{\tt VBD ref } & self & reference to the object \\ \hline - -\end{tabular} - -\vspace{0.3cm} - - \noindent {\bf Return Type:} -{\tt -VBD record +Get a record containing the current state of the given VBD\_metrics. + + \noindent {\bf Signature:} +\begin{verbatim} (VBD_metrics record) get_record (session_id s, VBD_metrics ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt VBD\_metrics ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +VBD\_metrics record } @@ -10175,6 +11557,27 @@ Quals & Field & Type & Description \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: PBD} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the PBDs known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((PBD ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(PBD ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -10985,11 +12388,33 @@ Quals & Field & Type & Description \\ \hline $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\ $\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\ -$\mathit{RO}_\mathit{run}$ & {\tt uri} & string & URI for the console service \\ +$\mathit{RO}_\mathit{run}$ & {\tt location} & string & URI for the console service \\ $\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\ +$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\ \hline \end{longtable} \subsection{Additional RPCs associated with class: console} +\subsubsection{RPC name:~get\_all} + +{\bf Overview:} +Return a list of all the consoles known to the system. + + \noindent {\bf Signature:} +\begin{verbatim} ((console ref) Set) get_all (session_id s)\end{verbatim} + + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(console ref) Set +} + + +references to all objects +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_uuid} {\bf Overview:} @@ -11054,13 +12479,13 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} -\subsubsection{RPC name:~get\_uri} - -{\bf Overview:} -Get the uri field of the given console. - - \noindent {\bf Signature:} -\begin{verbatim} string get_uri (session_id s, console ref self)\end{verbatim} +\subsubsection{RPC name:~get\_location} + +{\bf Overview:} +Get the location field of the given console. + + \noindent {\bf Signature:} +\begin{verbatim} string get_location (session_id s, console ref self)\end{verbatim} \noindent{\bf Arguments:} @@ -11115,6 +12540,145 @@ VM ref value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_other\_config} + +{\bf Overview:} +Get the other\_config field of the given console. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, console ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt console ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~set\_other\_config} + +{\bf Overview:} +Set the other\_config field of the given console. + + \noindent {\bf Signature:} +\begin{verbatim} void set_other_config (session_id s, console ref self, (string -> string) Map value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt console ref } & self & reference to the object \\ \hline + +{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~add\_to\_other\_config} + +{\bf Overview:} +Add the given key-value pair to the other\_config field of the given +console. + + \noindent {\bf Signature:} +\begin{verbatim} void add_to_other_config (session_id s, console ref self, string key, string value)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt console ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to add \\ \hline + +{\tt string } & value & Value to add \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~remove\_from\_other\_config} + +{\bf Overview:} +Remove the given key and its corresponding value from the other\_config +field of the given console. If the key is not in that Map, then do +nothing. + + \noindent {\bf Signature:} +\begin{verbatim} void remove_from_other_config (session_id s, console ref self, string key)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt console ref } & self & reference to the object \\ \hline + +{\tt string } & key & Key to remove \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +void +} + + + \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} @@ -11767,34 +13331,15 @@ Each possible error code is documented i \subsection{Error Codes} -\subsubsection{HOST\_CPU\_HANDLE\_INVALID} - -You gave an invalid host\_cpu handle. The host\_cpu may have recently been -deleted. The handle parameter echoes the bad value given. +\subsubsection{HANDLE\_INVALID} + +You gave an invalid handle. The object may have recently been deleted. +The class parameter gives the type of reference given, and the handle +parameter echoes the bad value given. \vspace{0.3cm} {\bf Signature:} -\begin{verbatim}HOST_CPU_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{HOST\_HANDLE\_INVALID} - -You gave an invalid host handle. The host may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}HOST_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{HOST\_METRICS\_HANDLE\_INVALID} - -You gave an invalid host\_metrics handle. The host\_metrics may have -recently been deleted. The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}HOST_METRICS_HANDLE_INVALID(handle)\end{verbatim} +\begin{verbatim}HANDLE_INVALID(class, handle)\end{verbatim} \begin{center}\rule{10em}{0.1pt}\end{center} \subsubsection{INTERNAL\_ERROR} @@ -11854,18 +13399,7 @@ You attempted an operation that was not You attempted an operation that was not allowed. \vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}OPERATION_NOT_ALLOWED()\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{PIF\_HANDLE\_INVALID} - -You gave an invalid PIF handle. The PIF may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}PIF_HANDLE_INVALID(handle)\end{verbatim} +No parameters. \begin{center}\rule{10em}{0.1pt}\end{center} \subsubsection{PIF\_IS\_PHYSICAL} @@ -11877,16 +13411,6 @@ PIF handle you gave. \vspace{0.3cm} {\bf Signature:} \begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{PIF\_METRICS\_HANDLE\_INVALID} - -You gave an invalid PIF\_metrics handle. The PIF\_metrics may have -recently been deleted. The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}PIF_METRICS_HANDLE_INVALID(handle)\end{verbatim} \begin{center}\rule{10em}{0.1pt}\end{center} \subsubsection{SESSION\_AUTHENTICATION\_FAILED} @@ -11910,26 +13434,6 @@ current connection. The handle paramete \begin{verbatim}SESSION_INVALID(handle)\end{verbatim} \begin{center}\rule{10em}{0.1pt}\end{center} -\subsubsection{SR\_HANDLE\_INVALID} - -You gave an invalid SR handle. The SR may have recently been deleted. The -handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}SR_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{TASK\_HANDLE\_INVALID} - -You gave an invalid task handle. The task may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}TASK_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - \subsubsection{VALUE\_NOT\_SUPPORTED} You attempted to set a value that is not supported by this implementation. @@ -11939,36 +13443,6 @@ returned. Also returned is a developer- \vspace{0.3cm} {\bf Signature:} \begin{verbatim}VALUE_NOT_SUPPORTED(field, value, reason)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VBD\_HANDLE\_INVALID} - -You gave an invalid VBD handle. The VBD may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VBD_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VDI\_HANDLE\_INVALID} - -You gave an invalid VDI handle. The VDI may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VDI_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VIF\_HANDLE\_INVALID} - -You gave an invalid VIF handle. The VIF may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VIF_HANDLE_INVALID(handle)\end{verbatim} \begin{center}\rule{10em}{0.1pt}\end{center} \subsubsection{VLAN\_TAG\_INVALID} @@ -11991,36 +13465,6 @@ expected and actual VM state at the time \vspace{0.3cm} {\bf Signature:} \begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VM\_HANDLE\_INVALID} - -You gave an invalid VM handle. The VM may have recently been deleted. The -handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VM_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VM\_METRICS\_HANDLE\_INVALID} - -You gave an invalid VM\_metrics handle. The VM\_metrics may have recently -been deleted. The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VM_METRICS_HANDLE_INVALID(handle)\end{verbatim} -\begin{center}\rule{10em}{0.1pt}\end{center} - -\subsubsection{VTPM\_HANDLE\_INVALID} - -You gave an invalid VTPM handle. The VTPM may have recently been deleted. -The handle parameter echoes the bad value given. - -\vspace{0.3cm} -{\bf Signature:} -\begin{verbatim}VTPM_HANDLE_INVALID(handle)\end{verbatim} \begin{center}\rule{10em}{0.1pt}\end{center} diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/Makefile --- a/extras/mini-os/Makefile Fri Mar 02 17:08:04 2007 -0600 +++ b/extras/mini-os/Makefile Fri Mar 02 18:05:38 2007 -0600 @@ -3,8 +3,6 @@ # Every architecture directory below mini-os/arch has to have a # Makefile and a arch.mk. # - -pae ?= n XEN_ROOT = ../.. include $(XEN_ROOT)/Config.mk @@ -35,6 +33,7 @@ export TARGET_ARCH export TARGET_ARCH export TARGET_ARCH_DIR export TARGET_ARCH_FAM +export XEN_TARGET_X86_PAE # This is used for architecture specific links. # This can be overwritten from arch specific rules. @@ -43,10 +42,6 @@ ARCH_LINKS = # For possible special header directories. # This can be overwritten from arch specific rules. EXTRA_INC = - -# Special build dependencies. -# Build all after touching this/these file(s) (see minios.mk) -SPEC_DEPENDS = minios.mk # Include the architecture family's special makerules. # This must be before include minios.mk! @@ -57,7 +52,6 @@ include minios.mk # Define some default flags for linking. LDLIBS := -LDFLAGS := LDARCHLIB := -L$(TARGET_ARCH_DIR) -l$(ARCH_LIB_NAME) LDFLAGS_FINAL := -N -T $(TARGET_ARCH_DIR)/minios-$(TARGET_ARCH).lds diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/Makefile Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,56 @@ +# +# Special makefile for ia64. +# + +include arch.mk +include ../../minios.mk + +ARCH_SRCS := sal.c +ARCH_SRCS += efi.c +ARCH_SRCS += time.c +ARCH_SRCS += ivt.S +ARCH_SRCS += fw.S +ARCH_SRCS += common.c +ARCH_SRCS += time.c +ARCH_SRCS += mm.c +ARCH_SRCS += debug.c +ARCH_SRCS += sched.c +ARCH_SRCS += xencomm.c +ARCH_SRCS += __umoddi3.S +ARCH_SRCS += __udivdi3.S +ARCH_SRCS += __divdi3.S + +ARCH_OBJS := sal.o +ARCH_OBJS += efi.o +ARCH_OBJS += time.o +ARCH_OBJS += ivt.o +ARCH_OBJS += fw.o +ARCH_OBJS += common.o +ARCH_OBJS += time.o +ARCH_OBJS += mm.o +ARCH_OBJS += debug.o +ARCH_OBJS += sched.o +ARCH_OBJS += xencomm.o +ARCH_OBJS += __umoddi3.o +ARCH_OBJS += __udivdi3.o +ARCH_OBJS += __divdi3.o + +GEN_OFF_SRC := gen_off.c +GEN_OFF_BIN := gen_off +GEN_OFF_H := $(ARCH_SPEC_INC)/offsets.h + +all: $(ARCH_LIB) + +$(GEN_OFF_BIN): $(GEN_OFF_SRC) + $(CC) -o $@ $(CPPFLAGS) $< + +$(GEN_OFF_H): $(GEN_OFF_BIN) + ./$(GEN_OFF_BIN) > $(GEN_OFF_H) + +$(ARCH_LIB): $(GEN_OFF_H) $(ARCH_OBJS) $(HEAD_ARCH_OBJ) + $(AR) rv $(ARCH_LIB) $(ARCH_OBJS) + +clean: + rm -f $(ARCH_LIB) $(ARCH_OBJS) $(HEAD_ARCH_OBJ) + rm -f $(GEN_OFF_BIN) + rm -f $(GEN_OFF_H) diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/__divdi3.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/__divdi3.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,141 @@ +.file "__divdi3.s" + +// $FreeBSD: src/sys/libkern/ia64/__divdi3.S,v 1.1 2000/10/04 17:53:03 dfr Exp $ +// +// Copyright (c) 2000, Intel Corporation +// All rights reserved. +// +// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, +// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, +// Intel Corporation. +// +// WARRANTY DISCLAIMER +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Intel Corporation is the author of this code, and requests that all +// problem reports or change requests be submitted to it directly at +// http://developer.intel.com/opensource. +// + +.section .text +.proc __divdi3# +.align 32 +.global __divdi3# +.align 32 + +// 64-bit signed integer divide + +__divdi3: + +{ .mii + alloc r31=ar.pfs,2,0,0,0 + nop.i 0 + nop.i 0;; +} { .mmi + + // 64-BIT SIGNED INTEGER DIVIDE BEGINS HERE + + setf.sig f8=r32 + setf.sig f9=r33 + nop.i 0;; +} { .mfb + nop.m 0 + fcvt.xf f6=f8 + nop.b 0 +} { .mfb + nop.m 0 + fcvt.xf f7=f9 + nop.b 0;; +} { .mfi + nop.m 0 + // Step (1) + // y0 = 1 / b in f8 + frcpa.s1 f8,p6=f6,f7 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (2) + // e0 = 1 - b * y0 in f9 + (p6) fnma.s1 f9=f7,f8,f1 + nop.i 0 +} { .mfi + nop.m 0 + // Step (3) + // q0 = a * y0 in f10 + (p6) fma.s1 f10=f6,f8,f0 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (4) + // e1 = e0 * e0 in f11 + (p6) fma.s1 f11=f9,f9,f0 + nop.i 0 +} { .mfi + nop.m 0 + // Step (5) + // q1 = q0 + e0 * q0 in f10 + (p6) fma.s1 f10=f9,f10,f10 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (6) + // y1 = y0 + e0 * y0 in f8 + (p6) fma.s1 f8=f9,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (7) + // q2 = q1 + e1 * q1 in f9 + (p6) fma.s1 f9=f11,f10,f10 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (8) + // y2 = y1 + e1 * y1 in f8 + (p6) fma.s1 f8=f11,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (9) + // r2 = a - b * q2 in f10 + (p6) fnma.s1 f10=f7,f9,f6 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (10) + // q3 = q2 + r2 * y2 in f8 + (p6) fma.s1 f8=f10,f8,f9 + nop.i 0;; +} { .mfb + nop.m 0 + // Step (11) + // q = trunc (q3) + fcvt.fx.trunc.s1 f8=f8 + nop.b 0;; +} { .mmi + // quotient will be in r8 (if b != 0) + getf.sig r8=f8 + nop.m 0 + nop.i 0;; +} + + // 64-BIT SIGNED INTEGER DIVIDE ENDS HERE + +{ .mmb + nop.m 0 + nop.m 0 + br.ret.sptk b0;; +} + +.endp __divdi3 diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/__udivdi3.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/__udivdi3.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,142 @@ +.file "__udivdi3.s" + +// $FreeBSD: src/sys/libkern/ia64/__udivdi3.S,v 1.1 2000/10/04 17:53:03 dfr Exp $ +// +// Copyright (c) 2000, Intel Corporation +// All rights reserved. +// +// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, +// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, +// Intel Corporation. +// +// WARRANTY DISCLAIMER +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Intel Corporation is the author of this code, and requests that all +// problem reports or change requests be submitted to it directly at +// http://developer.intel.com/opensource. +// + +.section .text +.proc __udivdi3# +.align 32 +.global __udivdi3# +.align 32 + +// 64-bit unsigned integer divide + +__udivdi3: + +{ .mii + alloc r31=ar.pfs,2,0,0,0 + nop.i 0 + nop.i 0;; +} + +{ .mmi + + // 64-BIT UNSIGNED INTEGER DIVIDE BEGINS HERE + + setf.sig f8=r32 + setf.sig f9=r33 + nop.i 0;; +} { .mfb + nop.m 0 + fma.s1 f6=f8,f1,f0 + nop.b 0 +} { .mfb + nop.m 0 + fma.s1 f7=f9,f1,f0 + nop.b 0;; +} { .mfi + nop.m 0 + // Step (1) + // y0 = 1 / b in f8 + frcpa.s1 f8,p6=f6,f7 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (2) + // e0 = 1 - b * y0 in f9 + (p6) fnma.s1 f9=f7,f8,f1 + nop.i 0 +} { .mfi + nop.m 0 + // Step (3) + // q0 = a * y0 in f10 + (p6) fma.s1 f10=f6,f8,f0 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (4) + // e1 = e0 * e0 in f11 + (p6) fma.s1 f11=f9,f9,f0 + nop.i 0 +} { .mfi + nop.m 0 + // Step (5) + // q1 = q0 + e0 * q0 in f10 + (p6) fma.s1 f10=f9,f10,f10 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (6) + // y1 = y0 + e0 * y0 in f8 + (p6) fma.s1 f8=f9,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (7) + // q2 = q1 + e1 * q1 in f9 + (p6) fma.s1 f9=f11,f10,f10 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (8) + // y2 = y1 + e1 * y1 in f8 + (p6) fma.s1 f8=f11,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (9) + // r2 = a - b * q2 in f10 + (p6) fnma.s1 f10=f7,f9,f6 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (10) + // q3 = q2 + r2 * y2 in f8 + (p6) fma.s1 f8=f10,f8,f9 + nop.i 0;; +} { .mfb + nop.m 0 + // (11) q = trunc(q3) + fcvt.fxu.trunc.s1 f8=f8 + nop.b 0;; +} { .mmi + // quotient will be in r8 (if b != 0) + getf.sig r8=f8 + nop.m 0 + nop.i 0;; +} + + // 64-BIT UNSIGNED INTEGER DIVIDE ENDS HERE + +{ .mmb + nop.m 0 + nop.m 0 + br.ret.sptk b0;; +} + +.endp __udivdi3 diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/__umoddi3.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/__umoddi3.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,154 @@ +.file "__umoddi3.s" + +// $FreeBSD: src/sys/libkern/ia64/__umoddi3.S,v 1.3 2003/02/11 20:15:11 schweikh Exp $ +// +// Copyright (c) 2000, Intel Corporation +// All rights reserved. +// +// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, +// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, +// Intel Corporation. +// +// WARRANTY DISCLAIMER +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Intel Corporation is the author of this code, and requests that all +// problem reports or change requests be submitted to it directly at +// http://developer.intel.com/opensource. +// + +.section .text + + // 64-bit unsigned integer remainder + +.proc __umoddi3# +.align 32 +.global __umoddi3# +.align 32 + +__umoddi3: + +{ .mii + alloc r31=ar.pfs,3,0,0,0 + nop.i 0 + nop.i 0 +} { .mmb + + // 64-BIT UNSIGNED INTEGER REMAINDER BEGINS HERE + + // general register used: + // r32 - 64-bit unsigned integer dividend, called a below + // r33 - 64-bit unsigned integer divisor, called b below + // r8 - 64-bit unsigned integer result + // floating-point registers used: f6, f7, f8, f9, f10, f11, f12 + // predicate registers used: p6 + + setf.sig f12=r32 // holds a in integer form + setf.sig f7=r33 + nop.b 0;; +} { .mfi + // get 2s complement of b + sub r33=r0,r33 + fcvt.xuf.s1 f6=f12 + nop.i 0 +} { .mfi + nop.m 0 + fcvt.xuf.s1 f7=f7 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (1) + // y0 = 1 / b in f8 + frcpa.s1 f8,p6=f6,f7 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (2) + // q0 = a * y0 in f10 + (p6) fma.s1 f10=f6,f8,f0 + nop.i 0 +} { .mfi + nop.m 0 + // Step (3) + // e0 = 1 - b * y0 in f9 + (p6) fnma.s1 f9=f7,f8,f1 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (4) + // q1 = q0 + e0 * q0 in f10 + (p6) fma.s1 f10=f9,f10,f10 + nop.i 0 +} { .mfi + nop.m 0 + // Step (5) + // e1 = e0 * e0 in f11 + (p6) fma.s1 f11=f9,f9,f0 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (6) + // y1 = y0 + e0 * y0 in f8 + (p6) fma.s1 f8=f9,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (7) + // q2 = q1 + e1 * q1 in f9 + (p6) fma.s1 f9=f11,f10,f10 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (8) + // y2 = y1 + e1 * y1 in f8 + (p6) fma.s1 f8=f11,f8,f8 + nop.i 0;; +} { .mfi + nop.m 0 + // Step (9) + // r2 = a - b * q2 in f10 + (p6) fnma.s1 f10=f7,f9,f6 + nop.i 0;; +} { .mfi + // f7=-b + setf.sig f7=r33 + // Step (10) + // q3 = q2 + r2 * y2 in f8 + (p6) fma.s1 f8=f10,f8,f9 + nop.i 0;; +} { .mfi + nop.m 0 + // (11) q = trunc(q3) + fcvt.fxu.trunc.s1 f8=f8 + nop.i 0;; +} { .mfi + nop.m 0 + // (12) r = a + (-b) * q + xma.l f8=f8,f7,f12 + nop.i 0;; +} { .mib + getf.sig r8=f8 + nop.i 0 + nop.b 0 +} + + // 64-BIT UNSIGNED INTEGER REMAINDER ENDS HERE + +{ .mib + nop.m 0 + nop.i 0 + br.ret.sptk b0;; +} + +.endp __umoddi3 diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/arch.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/arch.mk Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,5 @@ +ARCH_CFLAGS := -mfixed-range=f2-f5,f12-f15,f32-f127 -mconstant-gp +ARCH_CFLAGS += -O2 +ARCH_ASFLAGS := -x assembler-with-cpp +ARCH_ASFLAGS += -mfixed-range=f2-f5,f12-f15,f32-f127 -fomit-frame-pointer +ARCH_ASFLAGS += -fno-builtin -fno-common -fno-strict-aliasing -mconstant-gp diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/common.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/common.c Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,236 @@ +/* + * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * + **************************************************************************** + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + **************************************************************************** + * + * Parts are taken from FreeBSD. + * + */ + + +#include "os.h" +#include "types.h" +#include "lib.h" +#include "page.h" +#include "xen/xen.h" +#include "privop.h" +#include "xen/callback.h" +#include "ia64_cpu.h" +#include "hypervisor.h" +#include "events.h" +#include "console.h" +#include "time.h" +#include "xmalloc.h" + + +/* For more console boot messages. */ +int bootverbose; + +/* + * This structure contains start-of-day info, such as pagetable base pointer, + * address of the shared_info structure, and things like that. + */ +union start_info_union start_info_union; + +shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)XSI_BASE; + +struct machine_fw machineFwG; + + +struct xen_ia64_boot_param ia64BootParamG; +char boot_cmd_line[COMMAND_LINE_SIZE+1]; + + +void +ia64_write_itr_i(ia64_pte_t* pteP, u32 reg, uint64_t vAddr, + uint64_t ps, uint64_t pk) +{ + /* The virtual address. */ + __asm __volatile("mov cr.ifa=%0" :: "r"(vAddr)); + /* The page size */ + __asm __volatile("mov cr.itir=%0;;" :: "r"((ps << IA64_ITIR_PS)|(pk << IA64_ITIR_KEY))); + /* Put pte into instruction translation register. */ + __asm __volatile("itr.i itr[%0]=%1" :: "r"(reg), "r"(*(uint64_t*)pteP)); + /* Serialization */ + __asm __volatile("srlz.i"); +} + +void +map_pal_code(void) +{ + ia64_pte_t pte; + + xen_set_virtual_psr_ic(0); + memset(&pte, 0, sizeof(pte)); /* Prepare the pte */ + pte.pte_p = 1; /* present bit */ + pte.pte_ma = PTE_MA_WB; /* memory attribute */ + pte.pte_a = 1; /* accessed bit */ + pte.pte_d = 1; /* dirty bit */ + pte.pte_pl = PTE_PL_KERN; /* privilege level */ + pte.pte_ar = PTE_AR_RWX; /* access rights */ + pte.pte_ppn = ((uint64_t) __pa(machineFwG.ia64_pal_base)) >> 14; + pte.pte_ed = 0; /* exception deferral */ + + /* + * Must purge here because a itc/dtc with the same address + * may be in the tlb! + */ + ia64_ptc_l(machineFwG.ia64_pal_base, PTE_PS_16K); + ia64_write_itr_i(&pte, IA64_TR_PAL, + (uint64_t) machineFwG.ia64_pal_base, PTE_PS_16K, 0); + xen_set_virtual_psr_ic(1); +} + +extern char hypervisor_callback; + +static void +registerCallback(void) +{ + struct callback_register event = + { + .type = SWAP(CALLBACKTYPE_event), + .address = SWAP((unsigned long)&hypervisor_callback), + }; + HYPERVISOR_callback_op(CALLBACKOP_register, &event); +} + +static void +init_start_info(start_info_t* xen_start_info) +{ + /* Make a copy of the start_info structure */ + start_info.nr_pages = SWAP(xen_start_info->nr_pages); + start_info.shared_info = SWAP(xen_start_info->shared_info); + start_info.flags = SWAP(xen_start_info->flags); + start_info.store_mfn = SWAP(xen_start_info->store_mfn); + start_info.store_evtchn = SWAP(xen_start_info->store_evtchn); + start_info.console.domU.mfn = SWAP(xen_start_info->console.domU.mfn); + start_info.console.domU.evtchn = + SWAP(xen_start_info->console.domU.evtchn); + start_info.pt_base = SWAP(xen_start_info->pt_base); + start_info.nr_pt_frames = SWAP(xen_start_info->nr_pt_frames); + start_info.mfn_list = SWAP(xen_start_info->mfn_list); + start_info.mod_start = SWAP(xen_start_info->mod_start); + start_info.mod_len = SWAP(xen_start_info->mod_len); +} + +static void +init_boot_params(void) +{ + /* ia64_boot_paramP is initialised in ia64.S! */ + ia64BootParamG.command_line = SWAP(ia64_boot_paramP->command_line); + ia64BootParamG.efi_systab = SWAP(ia64_boot_paramP->efi_systab); + ia64BootParamG.efi_memmap = SWAP(ia64_boot_paramP->efi_memmap); + ia64BootParamG.efi_memmap_size = + SWAP(ia64_boot_paramP->efi_memmap_size); + ia64BootParamG.efi_memdesc_size = + SWAP(ia64_boot_paramP->efi_memdesc_size); + ia64BootParamG.efi_memdesc_version = + SWAP(ia64_boot_paramP->efi_memdesc_version); + ia64BootParamG.console_info.num_cols = + SWAP(ia64_boot_paramP->console_info.num_cols); + ia64BootParamG.console_info.num_rows = + SWAP(ia64_boot_paramP->console_info.num_rows); + ia64BootParamG.console_info.orig_x = + SWAP(ia64_boot_paramP->console_info.orig_x); + ia64BootParamG.console_info.orig_y = + SWAP(ia64_boot_paramP->console_info.orig_y); + ia64BootParamG.fpswa = SWAP(ia64_boot_paramP->fpswa); + ia64BootParamG.initrd_start = SWAP(ia64_boot_paramP->initrd_start); + ia64BootParamG.initrd_size = SWAP(ia64_boot_paramP->initrd_size); + ia64BootParamG.domain_start = SWAP(ia64_boot_paramP->domain_start); + ia64BootParamG.domain_size = SWAP(ia64_boot_paramP->domain_size); + + /* + * Copy and parse the boot command line. + * Currently only a check of bootverbose is done. + */ + memset(boot_cmd_line, 0, sizeof(boot_cmd_line)); + strncpy(boot_cmd_line, + (char*)__va(ia64BootParamG.command_line), COMMAND_LINE_SIZE); + boot_cmd_line[COMMAND_LINE_SIZE - 1] = '\0'; + + /* Look for bootverbose. */ + if (strstr(boot_cmd_line, "bootverbose")) + bootverbose = 1; +} + +void +arch_init(start_info_t *si) +{ + efi_time_t tm; + static int initialized; + + if (initialized) + return; + + init_start_info(si); + + init_boot_params(); + + init_efi(); + + map_pal_code(); + + ia64_sal_init(machineFwG.ia64_sal_tableP); + + if (efi_get_time(&tm)) { + printk("EFI-SystemTime: %d.%d.%d %d:%d:%d", + tm.Day, tm.Month, tm.Year, + tm.Hour, tm.Minute, tm.Second); + + if (tm.TimeZone == EFI_UNSPECIFIED_TIMEZONE) + printk(" Timezone not specified!\n"); + else + printk(" TimeZone: %d Daylight: 0x%x\n", + tm.TimeZone, tm.Daylight); + } else + printk("efi_get_time() failed\n"); + + registerCallback(); + initialized = 1; +} + +void +arch_print_info(void) +{ + int major, minor; + + minor = HYPERVISOR_xen_version(XENVER_version, 0); + major = minor >> 16; + minor &= ~0xffffffff; + printk("Running on Xen version: %d.%d\n", major, minor); + printk("machine addr of shared_info_t : 0x%lx\n", + start_info.shared_info); + printk("machine page number of shared page: 0x%lx\n", + start_info.store_mfn); + printk("evtchn for store communication : %d\n", + start_info.store_evtchn); + printk("MACHINE address of console page: 0x%lx\n", + start_info.console.domU.mfn); + printk("evtchn for console messages : %d\n", + start_info.console.domU.evtchn); + printk("xen_guest_cmdline : %s\n", boot_cmd_line); +} diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/debug.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/debug.c Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,179 @@ +/* + **************************************************************************** + * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx + * + * Description: ia64 specific part of the mini-os + * Prints debug information on a crash of mini-os + * + * Parts are taken from FreeBSD. + * + **************************************************************************** + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "os.h" + +static const char *ia64_vector_names[] = { + "VHPT Translation", /* 0 */ + "Instruction TLB", /* 1 */ + "Data TLB", /* 2 */ + "Alternate Instruction TLB", /* 3 */ + "Alternate Data TLB", /* 4 */ + "Data Nested TLB", /* 5 */ + "Instruction Key Miss", /* 6 */ + "Data Key Miss", /* 7 */ + "Dirty-Bit", /* 8 */ + "Instruction Access-Bit", /* 9 */ + "Data Access-Bit", /* 10 */ + "Break Instruction", /* 11 */ + "External Interrupt", /* 12 */ + "Reserved 13", /* 13 */ + "Reserved 14", /* 14 */ + "Reserved 15", /* 15 */ + "Reserved 16", /* 16 */ + "Reserved 17", /* 17 */ + "Reserved 18", /* 18 */ + "Reserved 19", /* 19 */ + "Page Not Present", /* 20 */ + "Key Permission", /* 21 */ + "Instruction Access Rights", /* 22 */ + "Data Access Rights", /* 23 */ + "General Exception", /* 24 */ + "Disabled FP-Register", /* 25 */ + "NaT Consumption", /* 26 */ + "Speculation", /* 27 */ + "Reserved 28", /* 28 */ + "Debug", /* 29 */ + "Unaligned Reference", /* 30 */ + "Unsupported Data Reference", /* 31 */ + "Floating-point Fault", /* 32 */ + "Floating-point Trap", /* 33 */ + "Lower-Privilege Transfer Trap", /* 34 */ + "Taken Branch Trap", /* 35 */ + "Single Step Trap", /* 36 */ + "Reserved 37", /* 37 */ + "Reserved 38", /* 38 */ + "Reserved 39", /* 39 */ + "Reserved 40", /* 40 */ + "Reserved 41", /* 41 */ + "Reserved 42", /* 42 */ + "Reserved 43", /* 43 */ + "Reserved 44", /* 44 */ + "IA-32 Exception", /* 45 */ + "IA-32 Intercept", /* 46 */ + "IA-32 Interrupt", /* 47 */ + "Reserved 48", /* 48 */ + "Reserved 49", /* 49 */ + "Reserved 50", /* 50 */ + "Reserved 51", /* 51 */ + "Reserved 52", /* 52 */ + "Reserved 53", /* 53 */ + "Reserved 54", /* 54 */ + "Reserved 55", /* 55 */ + "Reserved 56", /* 56 */ + "Reserved 57", /* 57 */ + "Reserved 58", /* 58 */ + "Reserved 59", /* 59 */ + "Reserved 60", /* 60 */ + "Reserved 61", /* 61 */ + "Reserved 62", /* 62 */ + "Reserved 63", /* 63 */ + "Reserved 64", /* 64 */ + "Reserved 65", /* 65 */ + "Reserved 66", /* 66 */ + "Reserved 67", /* 67 */ +}; + +typedef struct +{ +#if !defined(BIG_ENDIAN) + uint64_t sof :7; /* 0-6 size of frame */ + uint64_t sol :7; /* 7-13 size of locals (in + loc) */ + uint64_t sor :4; + uint64_t rrb_gr :7; + uint64_t rrb_fr :7; + uint64_t rrb_pr :6; + uint64_t res :25; /* reserved */ + uint64_t v :1; /* The v bit */ +#else /* !BIG_ENDIAN */ + uint64_t v :1; /* The v bit */ + uint64_t res :25; /* reserved */ + uint64_t rrb_pr :6; + uint64_t rrb_fr :7; + uint64_t rrb_gr :7; + uint64_t sor :4; + uint64_t sol :7; /* 7-13 size of locals (in + loc) */ + uint64_t sof :7; /* 0-6 size of frame */ +#endif /* BIG_ENDIAN */ +} ifs_t; + +void +do_trap_error(trap_frame_t* tf) +{ + ifs_t curIfs; + + printk("TRAP in mini-os:\n"); + printk(" trap: %d (%s)\n", tf->trap_num, + ia64_vector_names[tf->trap_num]); + printk(" iip : 0x%.16lx ifa: 0x%.16lx\n", tf->iip, tf->ifa); + printk(" ipsr: 0x%.16lx ifs: 0x%.16lx\n", tf->ipsr, tf->ifs); + printk(" isr : 0x%.16lx\n", tf->isr); + printk(" gp : 0x%.16lx sp : 0x%.16lx\n", tf->gp, tf->sp); + printk(" rp : 0x%.16lx tp : 0x%.16lx\n", tf->b0, tf->tp); + printk(" b6 : 0x%.16lx b7 : 0x%.16lx\n", tf->b6, tf->b7); + printk(" r8 : 0x%.16lx\n", tf->r8); + printk(" bsp : 0x%.16lx rsc: 0x%.16lx\n", tf->bsp, tf->rsc); + printk(" r14 : 0x%.16lx r15: 0x%.16lx\n", tf->r14, tf->r15); + printk(" r16 : 0x%.16lx r17: 0x%.16lx\n", tf->r16, tf->r17); + printk(" r18 : 0x%.16lx r19: 0x%.16lx\n", tf->r18, tf->r19); + printk(" r20 : 0x%.16lx r21: 0x%.16lx\n", tf->r20, tf->r21); + printk(" r22 : 0x%.16lx r23: 0x%.16lx\n", tf->r22, tf->r23); + printk(" r24 : 0x%.16lx r25: 0x%.16lx\n", tf->r24, tf->r25); + printk(" r26 : 0x%.16lx r27: 0x%.16lx\n", tf->r26, tf->r27); + printk(" r28 : 0x%.16lx r29: 0x%.16lx\n", tf->r28, tf->r29); + printk(" r30 : 0x%.16lx r31: 0x%.16lx\n", tf->r30, tf->r31); + + __asm __volatile("flushrs;;"); + curIfs = *((ifs_t*)((void*)(&tf->ifs))); + if (!curIfs.v) + printk(" ifs.v = 0"); + else { + uint64_t* regP; + uint32_t i; + + printk(" cfm.sof: %d cfm.sol: %d\n", curIfs.sof, curIfs.sol); + regP = (uint64_t *)(tf->bsp + tf->ndirty); + for (i = curIfs.sof; i != 0; ) { + if (i <= (((uint64_t)regP & 0x000001f8) >> 3)) { + regP -= i; + i = 0; + break; + } + i -= ((uint64_t)regP & 0x000001f8) >> 3; + regP = (uint64_t *)((uint64_t)regP & ~0x000001ff) - 1; + } + for (i = 0; i < curIfs.sof; i++) { + if (((uint64_t)regP & 0x000001f8) == 0x000001f8) + regP++; + printk(" r%d: 0x%lx\n", i+32, *regP); + regP++; + } + } + HYPERVISOR_shutdown(SHUTDOWN_poweroff); +} diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/efi.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/efi.c Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,237 @@ +/* + * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * The code is partly taken from FreeBSD. + * + *************************************************************************** + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + + +#include "os.h" +#include "efi.h" +#include "page.h" +#include "lib.h" +#include "console.h" + + +/* The implementation is in fw.S. */ +extern uint64_t +ia64_call_efi_func(uint64_t funcP,uint64_t a,uint64_t b,uint64_t c,uint64_t d); + +int +efi_get_time(efi_time_t* tmP) +{ + memset(tmP, 0, sizeof(efi_time_t)); + if (ia64_call_efi_func((uint64_t)machineFwG.efi.getTimeF, + (uint64_t)tmP, + (uint64_t)NULL, 0, 0) != EFI_SUCCESS) { + printk("efi.getTime() failed\n"); + return 0; + } + +#if defined(BIG_ENDIAN) + tmP->Year = SWAP(tmP->Year); + tmP->TimeZone = SWAP(tmP->TimeZone); + tmP->Nanosecond = SWAP(tmP->Nanosecond); +#endif + + return 1; +} + +/* + * The function compares two efi_guid_t and returns 0 on equality, otherwise 1. + */ +static int +efi_guid_cmp(efi_guid_t* a_le, efi_guid_t* b) +{ +#if defined(BIG_ENDIAN) + if(SWAP(a_le->Data1) != b->Data1) + return 1; + if(SWAP(a_le->Data2) != b->Data2) + return 1; + if(SWAP(a_le->Data3) != b->Data3) + return 1; + return memcmp(a_le->Data4, b->Data4, sizeof(uint8_t)*8); +#else + return memcmp(a_le, b, sizeof(efi_guid_t)); +#endif +} + +void +init_efi(void) +{ + efi_system_table_t* efiSysTableP; + int mdcnt, i, numConvMem; + efi_memory_descriptor_t *memdP, *mdP; + efi_status_t status; + char fwVendor[100] = "unknown"; + efi_char16_t* fwP; + efi_runtime_services_t* rsP; + + efi_configuration_table_t* confP = (efi_configuration_table_t*)0; + efi_guid_t sal = SAL_SYSTEM_TABLE_GUID; + efi_guid_t acpi = ACPI_TABLE_GUID; + efi_guid_t acpi20 = ACPI_20_TABLE_GUID; + + memset(&machineFwG, 0, sizeof(machineFwG)); + /* Read the efi_system_table. */ + efiSysTableP = (efi_system_table_t*)__va(ia64BootParamG.efi_systab); + machineFwG.efi.efiSysTableP = efiSysTableP; + PRINT_BV("EfiSystemTable at: %p\n", efiSysTableP); + fwP = (uint16_t*) __va(SWAP(efiSysTableP->FirmwareVendor)); + if (fwP) { + for (i = 0; i < (int)sizeof(fwVendor) - 1 && *fwP; ++i) + fwVendor[i] = SWAP(*fwP++); + fwVendor[i] = '\0'; + } + PRINT_BV(" EFI-FirmwareVendor : %s\n", fwVendor); + PRINT_BV(" EFI-FirmwareRevision : %d\n", + SWAP(efiSysTableP->FirmwareRevision)); + PRINT_BV(" EFI-SystemTable-Revision : %d.%d\n", + SWAP(efiSysTableP->Hdr.Revision)>>16, + SWAP(efiSysTableP->Hdr.Revision)&0xffff); + rsP = (efi_runtime_services_t*) + __va(SWAP(efiSysTableP->RuntimeServices)); + mdcnt = ia64BootParamG.efi_memmap_size / + ia64BootParamG.efi_memdesc_size; + memdP = (efi_memory_descriptor_t*) __va(ia64BootParamG.efi_memmap); + + PRINT_BV("EFI-Memorydescriptors: %d\n", mdcnt); + + for (i = numConvMem = 0, mdP = memdP; i < mdcnt; i++, + mdP = NextMemoryDescriptor(mdP, ia64BootParamG.efi_memdesc_size)) { + /* Relocate runtime memory segments for firmware. */ + PRINT_BV(" %d. Type: %x Attributes: 0x%lx\n", + i, SWAP(mdP->Type), SWAP(mdP->Attribute)); + PRINT_BV(" PhysStart: 0x%lx NumPages: 0x%lx\n", + SWAP(mdP->PhysicalStart), SWAP(mdP->NumberOfPages)); + switch (SWAP(mdP->Type)) { + case EfiRuntimeServicesData: + PRINT_BV(" -> EfiRuntimeServicesData\n"); + break; + case EfiACPIReclaimMemory: + PRINT_BV(" -> EfiACPIReclaimMemory\n"); + break; + case EfiACPIMemoryNVS: + PRINT_BV(" -> EfiACPIMemoryNVS\n"); + break; + case EfiConventionalMemory: + PRINT_BV(" -> EfiConventionalMemory\n"); + PRINT_BV(" start: 0x%lx end: 0x%lx\n", + SWAP(mdP->PhysicalStart), + SWAP(mdP->PhysicalStart)+ + SWAP(mdP->NumberOfPages)*EFI_PAGE_SIZE); + if (numConvMem) { + printk(" Currently only one efi " + "memory chunk supported !!!\n"); + break; + } + machineFwG.mach_mem_start = + SWAP(mdP->PhysicalStart); + machineFwG.mach_mem_size = + SWAP(mdP->NumberOfPages)*EFI_PAGE_SIZE; + numConvMem++; + break; + case EfiMemoryMappedIOPortSpace: + PRINT_BV(" -> EfiMemMappedIOPortSpace\n"); + break; + case EfiPalCode: + machineFwG.ia64_pal_base = + __va(SWAP(mdP->PhysicalStart)); + PRINT_BV(" -> EfiPalCode\n" + " start : %p\n", + machineFwG.ia64_pal_base); + break; + } + /* I have to setup the VirtualStart address of every + * RUNTIME-area in preparing the later call of + * SetVirtualAddressMap() therewidth the efi stuff uses + * virtual addressing and the efi runtime functions + * may be called directly. + */ + if (SWAP(mdP->Attribute) & EFI_MEMORY_RUNTIME) { + if (SWAP(mdP->Attribute) & EFI_MEMORY_WB) + mdP->VirtualStart = + SWAP(__va(mdP->PhysicalStart)); + else { + if (SWAP(mdP->Attribute) & EFI_MEMORY_UC) + printk("efi_init: RuntimeMemory with " + "UC attribute !!!!!!\n"); + /* + mdP->VirtualStart = + IA64_PHYS_TO_RR6(mdP->PhysicalStart); + */ + } + } + } + /* Now switch efi runtime stuff to virtual addressing. */ + status = ia64_call_efi_physical( + (void*)__va(SWAP((uint64_t)rsP->SetVirtualAddressMap)), + ia64BootParamG.efi_memmap_size, + ia64BootParamG.efi_memdesc_size, + ia64BootParamG.efi_memdesc_version, + ia64BootParamG.efi_memmap); + status = EFI_SUCCESS; + if (status != EFI_SUCCESS) { + printk("warning: unable to switch EFI into virtual " + "(status=%lu)\n", status); + return; + } + /* Getting efi function pointer for getEfiTime. */ + machineFwG.efi.getTimeF = + (efi_get_time_t)__va(SWAP((uint64_t)rsP->GetTime)); + /* Getting efi function pointer for resetSystem. */ + machineFwG.efi.resetSystemF = + (efi_reset_system_t)__va(SWAP((uint64_t)rsP->ResetSystem)); + + /* Scanning the Configuration table of the EfiSystemTable. */ + PRINT_BV("NumberOfConfigTableEntries: %ld\n", + SWAP(efiSysTableP->NumberOfTableEntries)); + + confP = (efi_configuration_table_t*) + __va(SWAP(efiSysTableP->ConfigurationTable)); + for (i = 0; i < SWAP(efiSysTableP->NumberOfTableEntries); i++) { + if (!efi_guid_cmp(&confP[i].VendorGuid, &sal)) { + machineFwG.ia64_sal_tableP = (sal_system_table_t*) + __va(SWAP((uint64_t) confP[i].VendorTable)); + PRINT_BV(" Found SalSystemTable at: 0x%lx\n", + (uint64_t) machineFwG.ia64_sal_tableP); + continue; + } + if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi)) { + machineFwG.ia64_efi_acpi_table = + __va(SWAP((uint64_t) confP[i].VendorTable)); + PRINT_BV(" Found AcpiTable at: 0x%lx\n", + (uint64_t) machineFwG.ia64_efi_acpi_table); + continue; + } + if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi20)) { + machineFwG.ia64_efi_acpi20_table = + __va(SWAP((uint64_t) confP[i].VendorTable)); + PRINT_BV(" Found Acpi20Table at: 0x%lx\n", + (uint64_t) machineFwG.ia64_efi_acpi20_table); + continue; + } + } +} diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/fw.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/fw.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,519 @@ +/* + * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * Parts taken from FreeBSD. + * + *************************************************************************** + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + + +#include "asm.h" +#include "page.h" +#include "ia64_cpu.h" +#include "ia64_fpu.h" +#include "offsets.h" + + +/* + * ia64_change_mode: change mode to/from physical mode + * + * Arguments: + * r14 psr for desired mode + * + * Modifies: + * r15-r20 scratch + * ar.bsp translated to new mode + * sp translated to new mode + * iip translated to new mode + */ +ENTRY(ia64_change_mode) + rsm psr.i | psr.ic + mov r19=ar.rsc // save rsc while we change mode + tbit.nz p8,p9=r14,17 // Uses psr.dt-physical or virtual ? + // p8 == true: switch to virtual + // p9 == true: switch to physical + ;; + mov ar.rsc=IA64_RSE_LAZY // turn off RSE + mov r16=rp + ;; + flushrs // clean the rse + srlz.i + ;; +1: mov r15=ip + mov r17=ar.bsp + mov r18=ar.rnat + ;; + add r15=2f-1b,r15 // address to rfi to + /* !!! must be the same like in minios-ia64.lds */ +(p8) movl r20=(KERNEL_START - (1<<KERNEL_PHYS_START_SHIFT)) + ;; + // (p8): switch to virtual + // (p9): switch to physical + + // from virtual to physical +(p9) tpa r15=r15 // ip +(p9) tpa r16=r16 // rp +(p9) tpa r17=r17 // ar.bsp +(p9) tpa sp=sp // sp + ;; /* Needed only for assembler violate ... warnings. */ + // from physical to virtual +(p8) add r15=r20,r15 // ip +(p8) add r16=r20,r16 // rp +(p8) add r17=r20,r17 // ar.bsp +(p8) add sp=r20,sp // sp + ;; + mov ar.bspstore=r17 + mov rp=r16 + ;; + mov ar.rnat=r18 + mov cr.iip=r15 + mov cr.ipsr=r14 // psr for new mode + mov cr.ifs=r0 + ;; + rfi + ;; +2: mov ar.rsc=r19 // restore ar.rsc + ;; + br.ret.sptk.few rp // now in new mode +END(ia64_change_mode) + +/* + * ia64_physical_mode: change mode to physical mode + * + * Return: + * ret0 psr to restore + * + * Modifies: + * r15-r18 scratch + * ar.bsp tranlated to physical mode + * psr.i cleared + */ +ENTRY(ia64_physical_mode) + mov r14=psr + movl r15=(IA64_PSR_I|IA64_PSR_IT|IA64_PSR_DT| \ + IA64_PSR_RT|IA64_PSR_DFL|IA64_PSR_DFH) + ;; + mov ret0=r14 + movl r16=IA64_PSR_BN + ;; + andcm r14=r14,r15 // clear various xT bits + ;; + or r14=r14,r16 // make sure BN=1 + or ret0=ret0,r16 // make sure BN=1 + ;; + br.cond.sptk.many ia64_change_mode +END(ia64_physical_mode) + +/* + * ia64_call_efi_physical: call an EFI procedure in physical mode + * + * Arguments: + * in0 Address of EFI procedure descriptor + * in1-in5 Arguments to EFI procedure + * + * Return: + * ret0-ret3 return values from EFI + * + */ +ENTRY(ia64_call_efi_physical) + .prologue + .regstk 6,4,5,0 + .save ar.pfs,loc0 + alloc loc0=ar.pfs,6,4,5,0 + ;; + .save rp,loc1 + mov loc1=rp + ;; + .body + br.call.sptk.many rp=ia64_physical_mode + ;; + + mov loc2=r8 // psr to restore mode + mov loc3=gp // save kernel gp + ld8 r14=[in0],8 // function address + ;; + ld8 gp=[in0] // function gp value +#if defined(BIG_ENDIAN) + mux1 r14=r14,@rev // swap because mini-os is in BE + mov ar.rsc=3 + ;; +#endif + mov out0=in1 + mov out1=in2 + mov out2=in3 + mov out3=in4 + mov out4=in5 + mov b6=r14 + ;; +#if defined(BIG_ENDIAN) + mux1 gp=gp,@rev // swap because mini-os is in BE + rum IA64_PSR_BE + ;; +#endif + + br.call.sptk.many rp=b6 // call EFI procedure + +#if defined(BIG_ENDIAN) + ;; + sum IA64_PSR_BE + mov ar.rsc=IA64_RSE_EAGER +#endif + mov gp=loc3 // restore kernel gp + mov r14=loc2 // psr to restore mode + ;; + br.call.sptk.many rp=ia64_change_mode + ;; + mov rp=loc1 + mov ar.pfs=loc0 + ;; + br.ret.sptk.many rp +END(ia64_call_efi_physical) + + +/* + * struct ia64_pal_result ia64_call_pal_static(uint64_t proc, + * uint64_t arg1, uint64_t arg2, uint64_t arg3) + */ +ENTRY(ia64_call_pal_static) + + .regstk 4,5,0,0 +palret = loc0 +entry = loc1 +rpsave = loc2 +pfssave = loc3 +psrsave = loc4 + + alloc pfssave=ar.pfs,4,5,0,0 + ;; + mov rpsave=rp + + movl entry=@gprel(ia64_pal_entry) +1: mov palret=ip // for return address + ;; + add entry=entry,gp + mov psrsave=psr + mov r28=in0 // procedure number + ;; + ld8 entry=[entry] // read entry point + mov r29=in1 // copy arguments + mov r30=in2 + mov r31=in3 + ;; + mov b6=entry + add palret=2f-1b,palret // calculate return address + ;; + mov b0=palret + rsm psr.i // disable interrupts + ;; +#if defined(BIG_ENDIAN) + rum IA64_PSR_BE // set psr.be==0 + ;; +#endif + br.cond.sptk b6 // call into firmware + ;; +#if defined(BIG_ENDIAN) + sum IA64_PSR_BE // set psr.be==1 + ;; +#endif + ssm psr.i // enable interrupts + ;; +2: mov psr.l=psrsave + mov rp=rpsave + mov ar.pfs=pfssave + ;; + srlz.d + br.ret.sptk rp + +END(ia64_call_pal_static) + +/* + * Call a efi function. + * in0: func descriptor + * in1: param1 + * ... + * in5: param5 + */ +ENTRY(ia64_call_efi_func) + alloc loc0=ar.pfs,6,3,5,0 + + mov loc1=gp + mov loc2=rp + + mov out0=in1 + mov out1=in2 + mov out2=in3 + mov out3=in4 + mov out4=in5 + + ld8 r14=[in0],8 // get function address + ;; + ld8 gp=[in0] // function gp value + ;; +#if defined(BIG_ENDIAN) + mux1 r14=r14,@rev // swap if mini-os is in BE + mux1 gp=gp,@rev // swap if mini-os is in BE +#endif + ;; + mov b6=r14 + +#if defined(BIG_ENDIAN) + rum IA64_PSR_BE + ;; +#endif + + br.call.sptk.many rp=b6 // call EFI procedure + +#if defined(BIG_ENDIAN) + sum IA64_PSR_BE + ;; +#endif + + mov ar.pfs=loc0 + mov gp=loc1 + mov rp=loc2 + br.ret.sptk rp + +END(ia64_call_efi_func) + + +/* Restore the context from the thread context. + */ +ENTRY(restore_context) +{ .mmi + invala + mov ar.rsc=IA64_RSE_LAZY + add r29=SW_SP,in0 +} + add r30=SW_RP,in0 + add r31=SW_PR,in0 + ;; + ld8 r12=[r29],SW_LC-SW_SP // load sp + ld8 r16=[r30],SW_BSP-SW_RP // load rp + ;; + ld8 r17=[r31],SW_RNAT-SW_PR // load pr + ld8 r18=[r30],SW_PFS-SW_BSP // load bsp + mov rp=r16 + ;; + ld8 r16=[r31],SW_R4-SW_RNAT // load rnat + mov pr=r17,-1 // set pr + mov ar.bspstore=r18 + ;; + ld8 r18=[r30],SW_UNATA-SW_PFS // load pfs + ld8 r17=[r29],SW_UNATB-SW_LC // load lc + mov ar.rnat=r16 + ;; + ld8 r16=[r30],SW_R5-SW_UNATA // load unat_a + mov ar.pfs=r18 + mov ar.lc=r17 + ;; + ld8.fill r4=[r31],SW_R6-SW_R4 // load r4 + mov ar.unat=r16 + ;; + ld8.fill r5=[r30],SW_R7-SW_R5 // load r5 + ld8 r16=[r29],SW_B3-SW_UNATB // load unat_b + mov ar.rsc=IA64_RSE_EAGER + ;; + ld8.fill r6=[r31],SW_B1-SW_R6 // load r6 + ld8.fill r7=[r30],SW_B2-SW_R7 // load r7 + ;; + ld8 r17=[r31],SW_B4-SW_B1 // load b1 + ld8 r18=[r30],SW_B5-SW_B2 // load b2 + mov ar.unat=r16 // unat_b + ;; + ld8 r16=[r29],SW_F2-SW_B3 // load b3 + mov b1=r17 + mov b2=r18 + ;; + ld8 r17=[r31],SW_F3-SW_B4 // load b4 + ld8 r18=[r30],SW_F4-SW_B5 // load b5 + mov b3=r16 + ;; + ldf.fill f2=[r29] // load f2 + mov b4=r17 + mov b5=r18 + ;; + ldf.fill f3=[r31],SW_F5-SW_F3 // load f3 + ldf.fill f4=[r30],SW_F4-SW_F2 // load f4 + ;; + ldf.fill f5=[r31],SW_F5-SW_F3 // load f5 + ldf.fill f16=[r30],SW_F4-SW_F2 // load f16 + ;; + ldf.fill f17=[r31],SW_F5-SW_F3 // load f17 + ldf.fill f18=[r30],SW_F4-SW_F2 // load f18 + ;; + ldf.fill f19=[r31],SW_F5-SW_F3 // load f19 + ldf.fill f20=[r30],SW_F4-SW_F2 // load f20 + ;; + ldf.fill f21=[r31],SW_F5-SW_F3 // load f21 + ldf.fill f22=[r30],SW_F4-SW_F2 // load f22 + ;; + ldf.fill f23=[r31],SW_F5-SW_F3 // load f23 + ldf.fill f24=[r30],SW_F4-SW_F2 // load f24 + ;; + ldf.fill f25=[r31],SW_F5-SW_F3 // load f25 + ldf.fill f26=[r30],SW_F4-SW_F2 // load f26 + ;; + ldf.fill f27=[r31],SW_F5-SW_F3 // load f27 + ldf.fill f28=[r30],SW_F4-SW_F2 // load f28 + ;; + ldf.fill f29=[r31],SW_F5-SW_F3 // load f29 + ldf.fill f30=[r30],SW_F4-SW_F2 // load f30 + ;; + ldf.fill f31=[r30],SW_F4-SW_F2 // load f31 + add r8=1,r0 + br.ret.sptk rp + ;; +END(restore_context) + +/* + * void switch_context(struct thread* old, struct thread* new) + */ +ENTRY(switch_context) + + mov ar.rsc=IA64_RSE_LAZY + mov r16=ar.unat + add r31=SW_UNATB,in0 + add r30=SW_SP,in0 + ;; +{ .mmi + flushrs + st8 [r30]=sp,SW_RP-SW_SP // sp + mov r17=rp + ;; +} + st8 [r31]=r16,SW_PR-SW_UNATB // unat (before) + st8 [r30]=r17,SW_BSP-SW_RP // rp + mov r16=pr + ;; + st8 [r31]=r16,SW_PFS-SW_PR // pr + mov r17=ar.bsp + mov r16=ar.pfs + ;; + st8 [r31]=r16,SW_RNAT-SW_PFS // save pfs + st8 [r30]=r17,SW_R4-SW_BSP // save bsp + mov r16=ar.rnat + ;; + st8 [r31]=r16,SW_R5-SW_RNAT // save rnat + mov ar.rsc=IA64_RSE_EAGER + ;; +{ .mmi + .mem.offset 8,0 + st8.spill [r30]=r4,SW_R6-SW_R4 // r4 + .mem.offset 16,0 + st8.spill [r31]=r5,SW_R7-SW_R5 // r5 + mov r16=b1 + ;; +} +{ .mmi + .mem.offset 8,0 + st8.spill [r30]=r4,SW_B1-SW_R6 // r6 + .mem.offset 16,0 + st8.spill [r31]=r5,SW_B2-SW_R7 // r7 + mov r17=b2 + ;; +} + st8 [r30]=r16,SW_UNATA-SW_B1 // b1 + st8 [r31]=r17,SW_B3-SW_B2 // b2 + mov r18=ar.unat + mov r19=b3 + mov r20=b4 + mov r21=b5 + ;; + st8 [r30]=r18,SW_B4-SW_UNATA // unat (after) + st8 [r31]=r19,SW_B5-SW_B3 // b3 + ;; + st8 [r30]=r20,SW_LC-SW_B4 // b4 + st8 [r31]=r21,SW_F2-SW_B5 // b5 + mov r17=ar.lc + ;; + st8 [r30]=r17,SW_F3-SW_LC // ar.lc + stf.spill [r31]=f2,SW_F4-SW_F2 + ;; + stf.spill [r30]=f3,SW_F5-SW_F3 + stf.spill [r31]=f4,SW_F4-SW_F2 + ;; + stf.spill [r30]=f5,SW_F5-SW_F3 + stf.spill [r31]=f16,SW_F4-SW_F2 + ;; + stf.spill [r30]=f17,SW_F5-SW_F3 + stf.spill [r31]=f18,SW_F4-SW_F2 + ;; + stf.spill [r30]=f19,SW_F5-SW_F3 + stf.spill [r31]=f20,SW_F4-SW_F2 + ;; + stf.spill [r30]=f21,SW_F5-SW_F3 + stf.spill [r31]=f22,SW_F4-SW_F2 + ;; + stf.spill [r30]=f23,SW_F5-SW_F3 + stf.spill [r31]=f24,SW_F4-SW_F2 + ;; + stf.spill [r30]=f25,SW_F5-SW_F3 + stf.spill [r31]=f26,SW_F4-SW_F2 + ;; + stf.spill [r30]=f27,SW_F5-SW_F3 + stf.spill [r31]=f28,SW_F4-SW_F2 + ;; + stf.spill [r30]=f29,SW_F4-SW_F2 + stf.spill [r31]=f30 + ;; + stf.spill [r30]=f31 + add r8=0,r0 + mf +// br.ret.sptk rp + +{ .mfb + mov r32=r33 + nop 0 + br.sptk restore_context + ;; +} + +END(switch_context) + +/* + * The function is used to start a new thread. + */ +ENTRY(thread_starter) + + .prologue + .save ar.pfs,loc0 + alloc loc0=ar.pfs,0,1,1,0 + ;; + .body + ;; + mov b7=r4 // the function pointer + mov out0=r6 // the argument + ;; + br.call.sptk.many rp=b7 // Call the thread function + ;; + br.call.sptk.many rp=exit_thread // call exit_thread + ;; +END(thread_starter) + +ENTRY(__hypercall) + mov r2=r37 + break 0x1000 + br.ret.sptk.many b0 + ;; +END(__hypercall) diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/gen_off.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/gen_off.c Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,177 @@ +/* + * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * + ****************************************************************************** + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include <stdio.h> +#include <stddef.h> +#include <string.h> +#include "types.h" +#include "sched.h" +#include "xen/xen.h" +#include "xen/arch-ia64.h" + +#define SZ(st,e) sizeof(((st *)0)->e) +#define OFF(st,e,d,o) print_define(fp, #d, offsetof(st, e) + o, SZ(st, e)) +#define TFOFF(e,d) OFF(trap_frame_t, e, d, 0) +#define SIZE(st,d) fprintf(fp, "#define %-30s\t0x%016lx\n", #d, sizeof(st)) + +#define SWOFF(e,d) OFF(struct thread, e, d, 0) + +/* shared_info_t from xen/xen.h */ +#define SI_OFF(e, d) OFF(shared_info_t, e, d,0) +/* mapped_regs_t from xen/arch-ia64.h */ +#define MR_OFF(e, d) OFF(mapped_regs_t, e, d, XMAPPEDREGS_OFS) + +void +print_define(FILE *fp, char *name, uint64_t val, int size) +{ + char ld_name[64]; + char st_name[64]; + char sz_name[64]; + + strcpy(ld_name, name); + strcat(ld_name, "_ld"); + strcpy(st_name, name); + strcat(st_name, "_st"); + strcpy(sz_name, name); + strcat(sz_name, "_sz"); + fprintf(fp, "#define %-30s\t0x%016lx\n", name, val); + fprintf(fp, "#define %-30s\t%u\n", sz_name, size); + switch (size) { + case 1: + fprintf(fp, "#define %-30s\tld1\n", ld_name); + fprintf(fp, "#define %-30s\tst1\n", st_name); + break; + case 2: + fprintf(fp, "#define %-30s\tld2\n", ld_name); + fprintf(fp, "#define %-30s\tst2\n", st_name); + break; + case 4: + fprintf(fp, "#define %-30s\tld4\n", ld_name); + fprintf(fp, "#define %-30s\tst4\n", st_name); + break; + case 8: + fprintf(fp, "#define %-30s\tld8\n", ld_name); + fprintf(fp, "#define %-30s\tst8\n", st_name); + break; + default: ; + } + return; +} + + +int +main(int argc, char ** argv) +{ + FILE *fp; + + fp = stdout; + + TFOFF(cfm, TF_CFM); + TFOFF(pfs, TF_PFS); + TFOFF(bsp, TF_BSP); + TFOFF(rnat, TF_RNAT); + TFOFF(csd, TF_CSD); + TFOFF(ccv, TF_CCV); + TFOFF(unat, TF_UNAT); + TFOFF(fpsr, TF_FPSR); + TFOFF(pr, TF_PR); + + TFOFF(sp, TF_SP); + TFOFF(gp, TF_GP); + TFOFF(tp, TF_TP); + + TFOFF(r2, TF_GREG2); + TFOFF(r3, TF_GREG3); + TFOFF(r16, TF_GREG16); + TFOFF(r17, TF_GREG17); + + TFOFF(b0, TF_BREG0); + TFOFF(b6, TF_BREG6); + TFOFF(b7, TF_BREG7); + + TFOFF(f6, TF_FREG6); + TFOFF(f7, TF_FREG7); + + TFOFF(rsc, TF_RSC); + TFOFF(ndirty, TF_NDIRTY); + TFOFF(ssd, TF_SSD); + TFOFF(iip, TF_IIP); + TFOFF(ipsr, TF_IPSR); + TFOFF(ifs, TF_IFS); + TFOFF(trap_num, TF_TRAP_NUM); + + TFOFF(ifa, TF_IFA); + TFOFF(isr, TF_ISR); + TFOFF(iim, TF_IIM); + + SIZE(trap_frame_t, TF_SIZE); + + SIZE(struct thread, SW_SIZE); + SWOFF(regs.unat_b, SW_UNATB); + SWOFF(regs.sp, SW_SP); + SWOFF(regs.rp, SW_RP); + SWOFF(regs.pr, SW_PR); + SWOFF(regs.pfs, SW_PFS); + SWOFF(regs.bsp, SW_BSP); + SWOFF(regs.rnat, SW_RNAT); + SWOFF(regs.lc, SW_LC); + //SWOFF(regs.fpsr, SW_FPSR); + //SWOFF(regs.psr, SW_PSR); + //SWOFF(regs.gp, SW_GP); + SWOFF(regs.unat_a, SW_UNATA); + SWOFF(regs.r4, SW_R4); + SWOFF(regs.r5, SW_R5); + SWOFF(regs.r6, SW_R6); + SWOFF(regs.r7, SW_R7); + SWOFF(regs.b1, SW_B1); + SWOFF(regs.b2, SW_B2); + SWOFF(regs.b3, SW_B3); + SWOFF(regs.b4, SW_B4); + SWOFF(regs.b5, SW_B5); + SWOFF(regs.f2, SW_F2); + SWOFF(regs.f3, SW_F3); + SWOFF(regs.f4, SW_F4); + SWOFF(regs.f5, SW_F5); + + SI_OFF(arch.start_info_pfn, START_INFO_PFN); + MR_OFF(interrupt_mask_addr, XSI_PSR_I_ADDR_OFS); + MR_OFF(interrupt_collection_enabled, XSI_PSR_IC_OFS); + MR_OFF(ipsr, XSI_IPSR_OFS); + MR_OFF(iip, XSI_IIP_OFS); + MR_OFF(ifs, XSI_IFS_OFS); + MR_OFF(ifa, XSI_IFA_OFS); + MR_OFF(iim, XSI_IIM_OFS); + MR_OFF(iim, XSI_IIM_OFS); + MR_OFF(iipa, XSI_IIPA_OFS); + MR_OFF(isr, XSI_ISR_OFS); + MR_OFF(banknum, XSI_BANKNUM_OFS); + MR_OFF(bank1_regs[0], XSI_BANK1_R16_OFS); + MR_OFF(precover_ifs, XSI_PRECOVER_IFS_OFS); + + return(0); +} diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/ia64.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/ia64.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * + ***************************************************************************** + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + + + +#include "asm.h" +#include "page.h" +#include "ia64_cpu.h" +#include "ia64_fpu.h" +#include "privop.h" +#include "offsets.h" + + + + /* + * Allocate kernel stack area. + * This is used for stack pointer (goes down from kstack+PAGE_SIZE) and + * RSE (goes up from kstack). + */ + .section .data.start,"aw" + .global kstack + .align PAGE_SIZE +kstack: .space KSTACK_PAGES * PAGE_SIZE + + .text + + /* + * Start the kernel. + * r28 points to the address of the boot parameter area, given + * from the bootloader. + * Execution reaches here in physical mode. + */ +ENTRY(_start) + .prologue + .save rp, r0 // terminate unwind chain with a NULL rp + .body + + alloc loc0=ar.pfs,0,1,1,0 + + rsm psr.i | psr.ic + ;; + srlz.i + ;; + + /* + * Initialize mini-os region registers: + * Currently only region registers 5 and 7 are used for addressing. + * rr[5] : virtual kernel address space + * rr[7] : directly mapped physically addresses. + */ + movl r2=0<<IA64_RR_IDX_POS + movl r3=1<<IA64_RR_IDX_POS + ;; + mov rr[r2]=r0 + mov rr[r3]=r0 + ;; + movl r2=2<<IA64_RR_IDX_POS + movl r3=3<<IA64_RR_IDX_POS + ;; + mov rr[r2]=r0 + mov rr[r3]=r0 + ;; + movl r2=4<<IA64_RR_IDX_POS + movl r3=6<<IA64_RR_IDX_POS + ;; + mov rr[r2]=r0 + mov rr[r3]=r0 + ;; + // Wired memory for kernel data and text. + movl r2=IA64_RR_VAL(KERNEL_TR_PAGE_SIZE,0) + movl r3=5<<IA64_RR_IDX_POS // region 5 + ;; + mov rr[r3]=r2 + ;; + /* + * Region 7 addresses are only for directly mapped physically + * addresses. + */ + movl r2=IA64_RR_VAL(PTE_PS_16K,0) + movl r3=7<<IA64_RR_IDX_POS // region 7 + ;; + mov rr[r3]=r2 + ;; + + /* + * Now pin mappings into the TLB for kernel text and data + */ + mov r18=KERNEL_TR_PAGE_SIZE<<2 + movl r17=KERNEL_START + ;; + mov cr.itir=r18 + mov cr.ifa=r17 + mov r16=IA64_TR_KERNEL + mov r3=ip + movl r18=PTE_KERNEL_ATTR + ;; + dep r2=0,r3,0,KERNEL_TR_PAGE_SIZE + ;; + or r18=r2,r18 + ;; + srlz.i + ;; + itr.i itr[r16]=r18 + ;; + itr.d dtr[r16]=r18 + ;; + srlz.i + + /* Switch into virtual mode */ + movl r16=STARTUP_PSR + ;; + mov cr.ipsr=r16 + movl r17=1f + ;; + mov cr.iip=r17 + mov cr.ifs=r0 + ;; + rfi + ;; +1: /* now we are in virtual mode */ + + movl r3=ia64_trap_table + ;; + mov cr.iva=r3 + ;; + + movl r2=IA64_FPSR_DEFAULT + movl r3=IA64_DCR_DEFAULT + ;; + srlz.i + movl gp=__gp + + mov ar.fpsr=r2 + mov cr.dcr=r3 + ;; + movl r2=kstack + movl r5=KSTACK_PAGES * PAGE_SIZE - 16 + mov ar.rsc=0 // place RSE in enforced lazy mode + ;; + loadrs // clear the dirty partition + ;; + mov ar.bspstore=r2 // establish the new RSE stack + add sp=r2,r5 + ;; + mov ar.rsc=IA64_RSE_EAGER // place RSE in eager mode + + ;; + movl r2=ia64_boot_paramP + mov r3=7 // make address virtual region 7. + ;; + dep r28=r3,r28,61,3 + ;; + // save the address of the boot param area + // passed by the bootloader + st8 [r2]=r28 + ;; + + /* Set xsi base. I use here XSI_BASE. */ +#define FW_HYPERCALL_SET_SHARED_INFO_VA 0x600 + mov r2=FW_HYPERCALL_SET_SHARED_INFO_VA + movl r28=XSI_BASE + ;; + break 0x1000 + ;; + /* + * I set up here the pointer to the global start_info structure. + * This structure will be initialized in arch_init(). + */ + movl out0=start_info_union + // Prepare out0 - the pointer to start_info_t. + movl r14=XSI_BASE + ;; + add r15=START_INFO_PFN,r14 // add offset to XSI_BASE + ;; + START_INFO_PFN_ld r14=[r15] // load the start_info_pfn + add r16=7, r0 + ;; +#if defined(BIG_ENDIAN) + mux1 r14=r14,@rev // swap because mini-os is in BE +#endif + ;; + shl r15=r14,PAGE_SHIFT_XEN_16K // pfn << PAGE_SHIFT_XEN_16K + shl r16=r16,IA64_RR_IDX_POS // (7<<IA64_RR_IDX_POS) + ;; + or out0=r16, r15 // make a region 7 address + ;; + + br.call.sptk.many rp=start_kernel + ;; + add r2=3,r0 + ;; + ld8 r3=[r2] + ;; + +self: hint @pause + br.sptk.many self // endless loop +END(_start) + + +ENTRY(do_nop) + nop 0x01 + add r15=1,r15 + br.ret.sptk.many rp +END(do_nop) diff -r 9fe6fe88a6a1 -r 736f2d6d7b09 extras/mini-os/arch/ia64/ivt.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/mini-os/arch/ia64/ivt.S Fri Mar 02 18:05:38 2007 -0600 @@ -0,0 +1,865 @@ +/* + * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> + * Description: ia64 specific trap handling. + * + **************************************************************************** + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + + +#include "asm.h" +#include "page.h" +#include "ia64_cpu.h" +#include "privop.h" +#include "offsets.h" + + +/* General register usage in interrupt handling: + * r16, r17, ... are used for input parameters of sub-routines + * r29: used to access memory which may raise nested TLB fault + * r30: b0 save register + * r31: predicates save register + * p30,p31: used for TLB stuff: (0,1)=data, (1,0)=instruction + */ + + +#define FILL_FP_PAIR(f1, f2, b1, b2) \ + ldf.fill f1=[b1],32 ;\ + ldf.fill f2=[b2],32 ;\ + ;; + +#define SPILL_FP_PAIR(f1, f2, b1, b2) \ + stf.spill [b1]=f1,32 ;\ + stf.spill [b2]=f2,32 ;\ + ;; + +#define FILL_REG_PAIR(r1, r2, b1, b2) \ + ld8.fill r1=[b1],16 ;\ + ld8.fill r2=[b2],16 ;\ + ;; + +#define SPILL_REG_PAIR(r1, r2, b1, b2) \ + .mem.offset 0,0 ;\ + st8.spill [b1]=r1,16 ;\ + .mem.offset 8,0 ;\ + st8.spill [b2]=r2,16 ;\ + ;; + + +/** + * The function does a store of the current processor context + * to the given exception frame address. + * These are some special and the scratch registers for calling + * C-functions later. + * The bspstore will be the same. A clean RSE is made with the + * cover instruction. + * + * The return is done through a jump to the next bundle after ip (r16). + * + * Used register: r16, r18, r19, r20, r21, r22 of bank 0 + * + * @param: r16 ip of the bundle with the jump. + * @param: r18 pointer to the trap frame. + * @param: r23 trap number/err val + * + */ + +ENTRY(save_tf_rse_switch) + movl r21=XSI_IPSR // XEN !! + movl r22=XSI_IIP // XEN !! + ;; + ld8 r21=[r21] // XEN.ipsr + ld8 r22=[r22];; // XEN.iip +#if defined(BIG_ENDIAN) + mux1 r21=r21,@rev // swap because mini-os is in BE + mux1 r22=r22,@rev // swap because mini-os is in BE + ;; +#endif + add r19=TF_IPSR,r18 + add r20=TF_IIP,r18 + ;; + st8 [r19]=r21 // store cr.ipsr + st8 [r20]=r22 // store cr.iip + ;; + //// r16 return jump pointer, r18 - trap frame base, + add r19=TF_UNAT,r18 + mov r20=ar.unat + ;; + st8 [r19]=r20 // store scratch unat + ;; + + add r19=TF_GP,r18 _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |