<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<BR> <BR>
> From: crobinso@redhat.com<BR>> To: libvirt-list@redhat.com<BR>> CC: x_k_123@hotmail.com; crobinso@redhat.com<BR>> Subject: [PATCH] qemu: Check for ia64 kvm<BR>> Date: Wed, 13 Jan 2010 15:50:06 -0500<BR>> <BR>> From: Dustin Xiong <x_k_123@hotmail.com><BR>> <BR>> Ported to current code. Untested, but builds fine.<BR>> <BR>> Signed-off-by: Cole Robinson <crobinso@redhat.com><BR>> ---<BR>> src/qemu/qemu_conf.c | 7 +++++++<BR>> 1 files changed, 7 insertions(+), 0 deletions(-)<BR>> <BR>> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c<BR>> index d3da776..0d970d6 100644<BR>> --- a/src/qemu/qemu_conf.c<BR>> +++ b/src/qemu/qemu_conf.c<BR>> @@ -373,12 +373,19 @@ static const struct qemu_feature_flags const arch_info_x86_64_flags [] = {<BR>> { "apic", 1, 0 },<BR>> };<BR>> <BR>> +static const struct qemu_feature_flags const arch_info_ia64_flags [] = {<BR>> + { "acpi", 1, 1 },<BR>> + { "a!
 pic", 1, 0 },<BR>> +};<BR>> +<BR>> /* The archicture tables for supported QEMU archs */<BR>> static const struct qemu_arch_info const arch_info_hvm[] = {<BR>> { "i686", 32, NULL, "/usr/bin/qemu",<BR>> "/usr/bin/qemu-system-x86_64", arch_info_i686_flags, 4 },<BR>> { "x86_64", 64, NULL, "/usr/bin/qemu-system-x86_64",<BR>> NULL, arch_info_x86_64_flags, 2 },<BR>> + { "itanium", 64, NULL, "/usr/bin/qemu-system-ia64",<BR>> + NULL, arch_info_ia64_flags, 2},<BR>> { "arm", 32, NULL, "/usr/bin/qemu-system-arm", NULL, NULL, 0 },<BR>> { "mips", 32, NULL, "/usr/bin/qemu-system-mips", NULL, NULL, 0 },<BR>> { "mipsel", 32, NULL, "/usr/bin/qemu-system-mipsel", NULL, NULL, 0 },<BR>> -- <BR>> 1.6.5.2<BR>> <BR><BR>
There another problem when you make the libvirt src on the arch of itanium, you need modify the function clone().<BR>
       On IA-64, a different system call is used:<BR>
       int __clone2(int (*fn)(void *),  void *child_stack_base,<BR>                    size_t stack_size, int flags, void *arg, ...<BR>                    /* pid_t *pid, struct user_desc *tls, pid_t *ctid */ );<BR>
       The  __clone2() system call operates in the same way as clone(), except<BR>       that child_stack_base points to the lowest address of the child's stack<BR>       area,  and  stack_size  specifies  the  size of the stack pointed to by<BR>       child_stack_base.<BR><BR>
The function clone() is used in /src/lxc_container.c.<BR>
 <BR>
-Dustin.<BR>                                        <br /><hr />Windows Live:  <a href='http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_3:092010' target='_new'>Friends get your Flickr, Yelp, and Digg updates when they e-mail you.</a></body>
</html>