debuggers.hg

view tools/libxc/xc_core_ia64.h @ 19826:2f9e1348aa98

x86_64: allow more vCPU-s per guest

Since the shared info layout is fixed, guests are required to use
VCPUOP_register_vcpu_info prior to booting any vCPU beyond the
traditional limit of 32.

MAX_VIRT_CPUS, being an implemetation detail of the hypervisor, is no
longer being exposed in the public headers.

The tools changes are clearly incomplete (and done only so things
would
build again), and the current state of the tools (using scalar
variables all over the place to represent vCPU bitmaps) very likely
doesn't permit booting DomU-s with more than the traditional number of
vCPU-s. Testing of the extended functionality was done with Dom0 (96
vCPU-s, as well as 128 vCPU-s out of which the kernel elected - by way
of a simple kernel side patch - to use only some, resulting in a
sparse
bitmap).

ia64 changes only to make things build, and build-tested only (and the
tools part only as far as the build would go without encountering
unrelated problems in the blktap code).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Jun 18 10:14:16 2009 +0100 (2009-06-18)
parents 26ecd1f9e128
children 3ffdb094c2c0 779c0ef9682c
line source
1 /*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program; if not, write to the Free Software
14 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15 *
16 * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp>
17 * VA Linux Systems Japan K.K.
18 *
19 */
21 #ifndef XC_CORE_IA64_H
22 #define XC_CORE_IA64_H
24 #include "ia64/xc_ia64.h"
26 #define ELF_ARCH_DATA ELFDATA2LSB
27 #define ELF_ARCH_MACHINE EM_IA_64
29 struct xc_core_arch_context {
30 size_t mapped_regs_size;
31 int nr_vcpus;
32 mapped_regs_t** mapped_regs;
34 struct xen_ia64_p2m_table p2m_table;
35 };
37 void
38 xc_core_arch_context_init(struct xc_core_arch_context* arch_ctxt);
39 void
40 xc_core_arch_context_free(struct xc_core_arch_context* arch_ctxt);
41 int
42 xc_core_arch_context_get(struct xc_core_arch_context* arch_ctxt,
43 vcpu_guest_context_any_t* ctxt,
44 int xc_handle, uint32_t domid);
45 int
46 xc_core_arch_context_get_shdr(struct xc_core_arch_context* arch_ctxt,
47 struct xc_core_section_headers *sheaders,
48 struct xc_core_strtab *strtab,
49 uint64_t *filesz, uint64_t offset);
50 int
51 xc_core_arch_context_dump(struct xc_core_arch_context* arch_ctxt,
52 void* args, dumpcore_rtn_t dump_rtn);
54 int
55 xc_core_arch_gpfn_may_present(struct xc_core_arch_context *arch_ctxt,
56 unsigned long pfn);
58 #endif /* XC_CORE_IA64_H */
60 /*
61 * Local variables:
62 * mode: C
63 * c-set-style: "BSD"
64 * c-basic-offset: 4
65 * tab-width: 4
66 * indent-tabs-mode: nil
67 * End:
68 */